VPS 手动搭建 Socks5 协议(Dante)—— 完整技术教程 - W不懂安全的文章 - 知乎https://zhuanlan.zhihu.com/p/1963650776472744216
多用户dài lǐ服务(分配账号) 测试网络连通性与透传(TCP/UDP) 作为链路中的一段dài lǐ,结合其他dài lǐ实现链式跳转。
VPS:Ubuntu 20.04 或 22.04 推荐:1 vCPU / 1GB RAM 起步 系统包索引已更新:sudo apt update
uname -a # 查看内核与系统信息lsb_release -a # 查看 Ubuntu 版本sudo apt update && sudo apt upgrade -y
工作层次:S5 位于应用层,为客户端提供一个通用的dài lǐ隧道,支持 TCP/UDP。
认证方式:可无认证或用户名/密码认证(Dante 支持多种方式)。
握手流程(简化):客户端 -> dài lǐ 握手(协商认证方式) -> 验证 -> dài lǐ建立目标连接 -> 数据转发。
与 HTTP dài lǐ差异:HTTP dài lǐ理解 HTTP 协议;S5 是通用的字节流转发,适合任意 TCP(甚至 UDP)流量。
sudo apt updatesudo apt install dante-server -y

主配置: /etc/danted.conf 日志:/var/log/danted.log systemd 服务单元:/lib/systemd/system/danted.service
# /etc/danted.conf# 日志输出logoutput: /var/log/danted.log# 监听接口:internal 为 客户端连接的接口internal: 0.0.0.0 port = 1080# external 指对外连接出站使用的网络接口(替换为你的网卡名)external: eth0# 认证方法:username 表示使用操作系统用户作为认证来源method: username# 非特权进程运行用户(降低风险)user.notprivileged: nobodyuser.privileged: rootuser.libwrap: nobody# 客户端访问控制(允许来自任意 IP 的客户端)client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error}# 允许 Socks 代理转发(connect 命令)socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: connect disconnect error}# 默认拒绝所有其他未匹配规则block { log: connect error}sudo adduser --disabled-login --gecos "" proxyuser# 或者更简单的:# sudo useradd -m proxyuser# sudo passwd proxyuser
--disabled-login 会创建用户但不允许交互式登录(如果需要可去掉),你依然可以为用户设置密码用于 S5 认证。
用户名是:proxyuser,密码就是在设置完成之后,执行:passwd proxyuser后输出的两次密码,输入的密码不会显示,默认都是不显的,不要误以为没有输进去。启动服务并验证运行状态 ▶️启动服务:sudo systemctl enable dantedsudo systemctl start dantedsudo systemctl status danted

# /etc/danted.conf# 监听的内部接口(即接收 socks5 请求的网卡)internal: eth0 port = 1080# 外部出口网卡(用于访问外网)external: eth0# SOCKS 版本socksmethod: username # 需要用户名密码登录user.notprivileged: nobody# 客户端访问控制clientmethod: noneclient pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error}# 服务端访问控制socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect error}curl -x socks5://用户名:密码@你的VPS_IP:1080 https://ipinfo.io


sudo apt install fail2ban -y
/etc/fail2ban/filter.d/danted.conf,复制粘贴以下配置内容:[Definition]failregex = .*authentication from <HOST>.*failed.*ignoreregex =
[danted]enabled = trueport = 1080filter = dantedlogpath = /var/log/danted.logmaxretry = 3bantime = 3600
sudo systemctl restart fail2ban
stream 模块把流量做 TLS 封装,客户端需要使用 stunnel 或类似工具连接到 Nginx,再由 Nginx 转发到 Dante。
本文链接:https://kinber.cn/post/5727.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:

支付宝微信扫一扫,打赏作者吧~
