使用apt安装Dante
sudo apt update
sudo apt install dante-server
备份配置文件
sudo cp /etc/danted.conf /etc/danted.conf.backup
修改配置文件 /etc/danted.conf
其中internal修改为每行一个,分别是监听的端口, external中的eth0修改为出站流量使用的网卡,可使用命令ip addr查看。
logoutput: stderr
# 开放端口 25981~25983(每行一个)
internal: 0.0.0.0 port = 25981
internal: 0.0.0.0 port = 25982
internal: 0.0.0.0 port = 25983
external: eth0
# 开启 系统用户名密码认证
method: username
user.privileged: root
user.unprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp
command: connect
}
编辑 /etc/sysctl.conf,添加
# 允许绑定到非本地IP的端口(用于SNAT)
net.ipv4.ip_nonlocal_bind = 1
# 启用IP转发
net.ipv4.ip_forward = 1
# 优化TCP参数
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
使用命令sudo sysctl -p保存配置
然后使用下面命令配置出站端口,将25891-25899替换为所需端口
# 创建自定义链
sudo iptables -t nat -N DANTE_OUTBOUND
# 将Dante进程(以nobody用户运行)的TCP出站流量重定向到自定义链
sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner nobody -j DANTE_OUTBOUND
#设置出站端口
sudo sysctl -w net.ipv4.ip_local_port_range="25980 25989"
或者编辑/etc/sysctl.d/99-danted.conf,添加
net.ipv4.ip_local_port_range = 25980 25989
然后使用sudo sysctl --system加载设置
使用sudo cat /proc/sys/net/ipv4/ip_local_port_range查看当前出站端口设置
如果启用了ufw防火墙,则需要使用命令配置防火墙(25981:25989替换为所需端口)sudo ufw allow 25980:25989/tcp
创建专用用户组和用户,可以将danteproxy改为任意用户组名,danteuser,proxy1,proxy2改为用户名,需记住所创建的用户名和密码
# 创建专门用于Dante的用户组
sudo groupadd danteproxy
# 创建Dante运行用户(不创建家目录,禁止登录)
sudo useradd -r -M -s /usr/sbin/nologin -g danteproxy danteuser
#设置密码
sudo passwd danteuser
# 验证用户创建
id danteuser
# 应显示:uid=xxx(danteuser) gid=xxx(danteproxy) groups=xxx(danteproxy)
然后重启danted并查看运行状态
sudo systemctl restart danted
sudo systemctl status danted
在服务器上使用命令测试连接
curl --socks5 127.0.0.1:端口 -U 用户名:密码 https://www.baidu.com -I
如果出现类似HTTP/1.1 200 OK的报文头说明测试成功
可在其他主机使用如下命令测试是否成功连接
curl --socks5 服务器ip或域名:端口 -U 用户名:密码 https://www.baidu.com -I
: