给无密码的socks5代理套一层加密

给无密码的socks5代理套一层加密

如果搭建了一个socks5代理,在内网情况下,为了方便使用,是无需输入账号密码的。但是如果需要将socks5代理开放到公网环境,例如:访问家庭nas、访问局域网其他服务等等,无密码会带来安全隐患

所以需要socks5代理具备以下特点:

  • 局域网内连接无需密码
  • 公网连接必须验证密码后才可使用

前提

假设已经搭建完成一个 socks5 代理。例如借助 clash 、ss或者其他工具在路由器中搭建好了 socks5代理

此代理无需设置密码,也就是供局域网内连接使用

假设此代理的端口是 7890 ,后续3proxy将转发代理到此端口

安装3proxy 代理工具

现在需要使用 3proxy ,为局域网内 socks5代理添加一层密码授权功能

安装 3proxy

此工具需要编译安装,并没有被添加到 apt 源

mkdir -p ~/3proxy
cd ~/3proxy
wget https://github.com/3proxy/3proxy/releases/download/0.9.4/3proxy-0.9.4.tar.gz
tar -xzf 3proxy-0.9.4.tar.gz
cd 3proxy-0.9.4
make -f Makefile.Linux
mkdir -p ~/3proxy/bin
cp src/3proxy ~/3proxy/bin/

编译完成后,可执行二进制文件在 bin 目录下。复制到自己的运行环境即可

配置文件

此配置文件为 3proxy 创建了一个端口,同时设置了密码授权验证,然后将代理请求转发到上游 socks5

3proxy.cfg 配置文件内容 :


# 日志文件,存储在用户目录
# log ./3proxy.log

allow *

fakeresolve

# 注意添加了 fakeresolve  和  socks5+ ,将域名转发到上游
parent 1000 socks5+ 127.0.0.1 7890


# 认证设置:外部用户需要用户名/密码
auth strong
# auth none
users root:CL:123456

# -a 参数,需要验证
# 转发代理:外部连接到 7890 端口,转发到 127.0.0.1:1080

# proxy -i0.0.0.0 -p7889 -a -n
# proxy -i0.0.0.0 -p7889 -a -n

socks -i0.0.0.0 -p7889 -a -n

运行即可: 3proxy ./3proxy.cfg

需要注意的是,fakeresolve 和 socks5+ 是推荐功能, 避免 3proxy自己去解析域名,通过将域名转发到上游socks5代理,可以在上游socks5代理中,提供更灵活的 域名策略。而 3proxy 仅仅充当 密码授权的功能

结语

通过3proxy 可以为已有的 socks5 代理添加一层密码授权,最终实现局域网内端口无需密码,公网访问需要授权

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2025/10/04/给无密码的socks5代理套一层加密

Buy me a cup of coffee ☕.