socket5服务器配置
Socks5 服务器配置文档
1. 环境
- 操作系统: Ubuntu 20.04
- 软件包:
dante-server
2. 安装 Dante Server
apt-get updateapt-get install -y dante-server
3. 配置文件检查
查看当前配置文件(去除注释和空行):
cat /etc/danted.conf | grep -v '^#' | grep -v ^$
4. 编辑配置文件
使用 vi
编辑 /etc/danted.conf
文件,配置如下:
logoutput: stderrinternal: eth0 port = 1088external: 192.155.83.176socksmethod: pam.usernameuser.privileged: rootuser.unprivileged: nobodyuser.libwrap: nobody
# 客户端连接规则client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect disconnect}
client block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error}
# Socks5 连接规则socks pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error}
socks block { from: 0.0.0.0/0 to: 0.0.0.0/0 log: connect error}
配置说明:
- logoutput: 日志输出到标准错误 (
stderr
)。 - internal: 监听内部网络接口
eth0
,端口1088
。 - external: 使用外部网络接口的 IP 地址
192.155.83.176
。 - socksmethod: 使用 PAM 进行用户名认证 (
pam.username
)。 - user.privileged: 特权用户设置为
root
。 - user.unprivileged: 非特权用户设置为
nobody
。 - user.libwrap: 使用
libwrap
的用户设置为nobody
。
规则说明:
- client pass: 允许所有客户端连接,并记录连接和断开日志。
- client block: 阻止所有客户端连接,并记录连接错误日志。
- socks pass: 允许所有 Socks5 连接,并记录错误日志。
- socks block: 阻止所有 Socks5 连接,并记录连接错误日志。
5. 启动与检查服务
# 重启 Dante Server/etc/init.d/danted restart
# 检查服务状态/etc/init.d/danted status
6. 添加用户
创建用于认证的用户 u1001
:
# 添加用户,禁止 shell 登录useradd -s /bin/false u1001
# 设置用户密码passwd u1001
# 查看用户信息cat /etc/passwd
7. 客户端连接
在客户端(如 Telegram)中配置代理:
- 进入 高级 设置。
- 配置 Socks5 代理:
- 服务器:
192.155.83.176
- 端口:
1088
- 认证: 使用用户名
u1001
和密码。
- 服务器:
8. 修改规则以允许特定 IP 或网段
-
允许特定 IP 网段: 修改
client pass
规则中的from
和to
字段为允许的网段,例如:Terminal window client pass {from: 192.168.1.0/24 to: 0.0.0.0/0log: connect disconnect}注意: 单个 IP 地址需使用
/32
表示,例如192.168.1.100/32
。 -
规则顺序: 配置文件中的规则是按从上到下的顺序执行的,确保允许规则在阻止规则之前。
9. 保存并重启服务
修改配置文件后,保存并重启 Dante Server 以应用更改:
/etc/init.d/danted restart
10. 完成
至此,Socks5 服务器已配置完成,客户端可以通过配置的代理进行连接和访问。
备注:
- 如果需要更复杂的规则,可以参考 Dante Server 的官方文档。
- 确保防火墙允许
1088
端口的流量通过。