前言
dante轻量占用资源少,但是功能太少上限不高。
来源于一年前配合ai和查询文档完成的脚本
站群dante设置sk5关键在于配置文件中
external.rotation: same-same功能
- 更新系统并安装 dante-server
- 自动获取所有 IPv4 地址
- 用户输入用户名和密码
- 随机分配端口并生成配置(已检测不会冲突)
- 输出ip:port:usr:pwd到/root/danted_config.txt
不足之处
- hostname -I 获取到的ip地址有时是内部私有IP,并不是公网ip
- 没有禁用ipv6或者调低ipv6的优先级,导致出站为ipv6而不是对应的v4
- 可以根据使用情况自行修改
一键配置脚本
#!/bin/bash# 1. 更新系统并安装 dante-server# echo "更新系统并安装 dante-server..."apt update && apt install -y dante-server || { echo "安装失败,请检查网络连接"; exit 1; }# 2. 获取所有 IPv4 地址# echo "获取所有 IPv4 地址..."IP_LIST=$(hostname -I | tr ' ' '\n' | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}")if [[ -z "$IP_LIST" ]]; then echo "未找到有效的 IPv4 地址,请检查网络配置" exit 1fi# 3. 用户输入用户名和密码read -p "请输入用户名: " USERNAMEread -sp "请输入密码: " PASSWORDecho# 检查用户是否已存在if id "$USERNAME" &>/dev/null; then echo "用户 $USERNAME 已存在,退出。" exit 1fi# 添加系统用户echo "添加用户 $USERNAME..."useradd -r -s /bin/false "$USERNAME" || { echo "用户添加失败"; exit 1; }echo "$USERNAME:$PASSWORD" | chpasswd || { echo "密码设置失败"; exit 1; }# 4. 随机分配端口并生成配置# echo "生成 danted 配置文件..."PORT_LIST=()DANTED_CONF="/etc/danted.conf"OUTPUT_FILE="/root/danted_config.txt"> "$DANTED_CONF"> "$OUTPUT_FILE"# 写入 danted.conf 标头cat > "$DANTED_CONF" <<EOF# 日志文件logoutput: stderr# 定义代理运行的用户和组user.privileged: rootuser.unprivileged: nobodyEOF# 分配 IP 和端口for IP in $IP_LIST; do PORT=$(shuf -i 1024-65535 -n 1) while [[ " ${PORT_LIST[@]} " =~ " $PORT " ]]; do PORT=$(shuf -i 1024-65535 -n 1) done PORT_LIST+=("$PORT") echo "internal: $IP port = $PORT" >> "$DANTED_CONF" echo "external: $IP" >> "$DANTED_CONF" echo "" >> "$DANTED_CONF" echo "$IP:$PORT:$USERNAME:$PASSWORD" >> "$OUTPUT_FILE"done# 写入 danted.conf 规则cat >> "$DANTED_CONF" <<EOF# 设置 external.rotation 为 same-sameexternal.rotation: same-same# 客户端认证方式clientmethod: nonesocksmethod: username# 允许规则client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error}socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 protocol: tcp udp log: connect error}EOF# 5. 重启 danted 服务# echo "重启 danted 服务..."systemctl restart danted && systemctl status danted || { echo "danted 服务启动失败"; exit 1; }echo "配置完成!"echo "IP:端口列表已输出到 $OUTPUT_FILE"echo "danted 配置文件已更新到 $DANTED_CONF"
评论 (0)