Ubuntu服务器搭建SOCKS5代理服务
本文将分享基于Ubuntu服务器搭建SOCKS5代理的方案,涵盖安装配置、安全加固、性能优化和监控告警全流程。
方案选型
在评估多种SOCKS5实现后,选择Dante Server作为核心组件,主要因为:
- 开源且持续维护
- 支持用户名/密码认证
- 低资源消耗(内存<10MB)
- 完善的日志系统
- 支持IPv4/IPv6双栈
环境准备
# 系统更新
sudo apt update && sudo apt upgrade -y
# 安装必要组件
sudo apt install -y dante-server
详细配置
主配置文件
/etc/danted.conf
# 日志配置
logoutput : /var/log/danted.log
# 网络接口配置
internal : eth0 port = 1080
external : eth0
# 认证方式
method : username
# 用户权限
user.privileged : root
user.notprivileged : nobody
# 访问控制规则
client pass {
from : 0.0.0.0/0 to: 0.0.0.0/0
log : connect disconnect error
}
pass {
from : 0.0.0.0/0 to: 0.0.0.0/0
command : bind connect udpassociate
log : connect disconnect error
method : username
}
internal 和 external 根据实际网络环境调整,确保监听正确的接口和端口。
创建代理用户
# 创建系统用户(禁止登录)
sudo useradd -r -s /bin/false proxyuser
# 设置密码(会提示输入)
sudo passwd proxyuser
安全提示
proxyuser 是代理认证使用的用户名,密码请设置复杂且安全,建议密码长度至少16位,包含大小写字母、数字和特殊字符。安全加固
防火墙配置
注意:
如果服务器直接暴露在公网,强烈建议配置防火墙规则限制访问来源。
如果使用比如阿里云等云服务商,可以不使用
如果服务器直接暴露在公网,强烈建议配置防火墙规则限制访问来源。
如果使用比如阿里云等云服务商,可以不使用
ufw,建议在安全组中添加相应的入站规则。# 安装UFW防火墙
sudo apt install -y ufw
# 仅允许指定IP段访问
sudo ufw allow from 192.168.1.0/24 to any port 1080
# 或者仅允许特定IP:203.0.113.45
sudo ufw allow from 203.0.113.45 to any port 1080
系统级防护
# 禁止密码暴力破解
sudo apt install fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
在jail.local中添加:
[danted]
enabled = true
filter = danted
logpath = /var/log/danted.log
maxretry = 3
性能优化
调整系统限制
# 修改文件描述符限制
echo "ulimit -n 65535" >> /etc/default/danted
# 调整内核参数
echo "net.core.rmem_max = 16777216" >> /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" >> /etc/sysctl.conf
sudo sysctl -p
高并发配置建议
对于超过1000并发连接的场景:
# 在danted.conf中添加
io-timeout : 60
client-limit : 2048
启动与验证
# 启动服务
sudo systemctl enable --now danted
# 验证服务状态
sudo systemctl status danted
# 测试连接
curl --socks5 username:password@server_ip:1080 http://example.com
常见问题排查
Q1: 客户端连接超时
- 检查UFW防火墙规则
- 验证服务监听状态:
ss -tulnp | grep 1080
Q2: 认证失败
- 检查用户是否存在:
getent passwd proxyuser - 测试本地认证:
sudo -u proxyuser -s
Q3: 高负载下连接断开
- 检查ulimit设置
- 查看系统内存:
free -h