基于 Go 语言的高性能 SOCKS5 代理服务器,支持用户认证和配置热重载
- ✅ 用户名/密码认证 - 安全可靠
- ✅ 配置热重载 - 修改用户配置后自动生效,无需重启
- ✅ 系统服务 - systemd 管理,开机自启
- ✅ 用户管理工具 - 命令行工具 + RESTful API
- ✅ API 管理接口 - 支持通过 HTTP API 管理用户
- ✅ Nginx 反向代理 - 生产环境配置示例
- ✅ 安全加固 - systemd 安全选项,专用系统用户
- ✅ 一键部署 - 单条命令完成安装
在 Debian 12 / Ubuntu 20.04+ 服务器上执行:
curl -sSL https://raw.githubusercontent.com/suiyuee/go-socks5/master/scripts/install.sh | sudo bash安装完成!服务将自动启动在 0.0.0.0:8080
| 用户名 | 密码 |
|---|---|
| admin | ChangeMe123! |
⚠️ 重要:安装后必须立即修改默认密码!
# 查看所有用户
sudo socks5-users list
# 添加新用户
sudo socks5-users add newuser mypassword
# 删除用户
sudo socks5-users del olduser
# 修改密码
sudo socks5-users change admin newpassword123
# 查看配置文件
sudo socks5-users show# 获取 API Key
API_KEY=$(sudo cat /opt/socks5-server/.api-key)
# 查看所有用户
curl -H "X-API-Key: $API_KEY" http://127.0.0.1:8081/api/users
# 添加用户
curl -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"newuser","password":"StrongPass123!"}' \
http://127.0.0.1:8081/api/user/add
# 删除用户
curl -X DELETE \
-H "X-API-Key: $API_KEY" \
"http://127.0.0.1:8081/api/user/delete?username=olduser"
# 修改密码
curl -X PUT \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"NewPass123!"}' \
http://127.0.0.1:8081/api/user/change-password📚 完整 API 文档: API-USAGE.md
# SOCKS5 代理服务
sudo systemctl status socks5-server # 查看状态
sudo systemctl restart socks5-server # 重启服务
sudo systemctl stop socks5-server # 停止服务
sudo journalctl -u socks5-server -f # 查看日志
# API 管理服务
sudo systemctl status socks5-api # 查看状态
sudo systemctl restart socks5-api # 重启服务
sudo systemctl stop socks5-api # 停止服务
sudo journalctl -u socks5-api -f # 查看日志# 使用 curl 测试
curl --socks5 admin:ChangeMe123!@your-server-ip:8080 http://httpbin.org/ip
# 或者使用代理
export http_proxy=socks5://admin:ChangeMe123!@your-server-ip:8080
export https_proxy=socks5://admin:ChangeMe123!@your-server-ip:8080
curl http://httpbin.org/ipFirefox:
- 设置 → 网络设置 → 手动配置代理
- SOCKS 主机:
your-server-ip端口:8080 - SOCKS v5
- 勾选"使用 SOCKS v5 代理 DNS"
Chrome/Edge:
使用 SwitchyOmega 扩展配置 SOCKS5 代理
如果需要通过域名访问 API,可以配置 Nginx 反向代理:
# 下载配置示例
sudo curl -sSL https://gitee.com/xpeng888/go-socks5/raw/master/configs/nginx-api.conf \
-o /etc/nginx/sites-available/socks5-api
# 修改配置文件中的域名
sudo nano /etc/nginx/sites-available/socks5-api
# 创建软链接
sudo ln -s /etc/nginx/sites-available/socks5-api /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重载 Nginx
sudo systemctl reload nginx配置后可以通过域名访问:
curl -H "X-API-Key: your-api-key" https://your-domain.com/api/users📝 配置文件: nginx-api.conf
编辑 /etc/systemd/system/socks5-server.service:
ExecStart=/opt/socks5-server/socks5-server -addr 0.0.0.0:1080然后重启服务:
sudo systemctl daemon-reload
sudo systemctl restart socks5-server用户配置:/opt/socks5-server/users.json
格式:
{
"users": {
"username1": "password1",
"username2": "password2"
}
}修改后会在 5 秒内自动重载,无需重启服务。
# UFW
sudo ufw allow 8080/tcp
# iptables
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4- 操作系统: Debian 12 / Ubuntu 20.04+
- 内存: 最低 512MB
- 磁盘: 最低 100MB
- Go: 1.18+ (安装脚本会自动安装)
如果需要手动安装:
# 1. 安装 Go
sudo apt-get update
sudo apt-get install -y golang-go
# 2. 克隆项目
git clone https://github.com/suiyuee/go-socks5.git
cd go-socks5
# 3. 编译
go build -o socks5-server cmd/socks5-server/main.go
# 4. 运行
./socks5-servergo-socks5/
├── cmd/
│ ├── socks5-server/
│ │ └── main.go # SOCKS5 代理服务器
│ └── api-server/
│ └── main.go # RESTful API 服务器
├── scripts/
│ ├── install.sh # 一键安装脚本
│ └── user-manager.sh # 用户管理脚本
├── configs/
│ ├── nginx-api.conf # Nginx 配置示例
│ └── API-USAGE.md # API 使用文档
├── go.mod # Go 模块定义
└── README.md # 项目文档
- 修改默认密码 - 首次安装后立即修改
- 使用强密码 - 密码长度 12+ 字符,包含大小写字母、数字、符号
- 限制访问 - 使用防火墙限制允许连接的 IP
- 定期更新 - 保持系统和软件更新
- 监控日志 - 定期检查
journalctl -u socks5-server
# 查看详细日志
sudo journalctl -u socks5-server -n 100 --no-pager
# 检查端口占用
sudo ss -tlnp | grep 8080
# 检查配置文件
sudo cat /opt/socks5-server/users.json- 检查防火墙是否开放端口
- 检查服务是否运行:
sudo systemctl status socks5-server - 检查用户名密码是否正确
- 查看日志:
sudo journalctl -u socks5-server -f
配置修改后会在 5 秒内自动重载。如果未生效:
# 手动重启服务
sudo systemctl restart socks5-server
# 检查配置文件格式
sudo socks5-users show- ✨ 初始版本发布
- ✅ 支持用户名/密码认证
- ✅ 支持配置热重载
- ✅ 一键安装脚本
- ✅ 用户管理工具
欢迎提交 Issue 和 Pull Request!
基于 MIT 许可证开源。
基础库来自 suiyuee/go-socks5
维护者:suiyuee
项目地址:https://github.com/suiyuee/go-socks5
如果这个项目对您有帮助,请给个 ⭐️ Star 支持一下!