SOCKS 协议
SOCKS(Socket Secure)是一种网络代理协议标准,广泛应用于各种网络应用中。sing-box 提供了完整的 SOCKS 代理支持,包括 SOCKS4、SOCKS4a 和 SOCKS5 版本。
协议特点
- 📜 协议标准:RFC 1928 标准的代理协议
- 🔄 双向代理:支持客户端到代理服务器的双向连接
- 🌍 通用性强:几乎所有应用都支持 SOCKS 代理
- 📡 TCP/UDP 支持:SOCKS5 支持 TCP 和 UDP 代理
- 🔐 身份验证:SOCKS5 支持多种身份验证方式
配置示例
SOCKS5 代理
json
{
"outbounds": [
{
"type": "socks",
"tag": "socks5-out",
"server": "proxy.example.com",
"server_port": 1080,
"version": "5",
"username": "your-username",
"password": "your-password"
}
]
}无认证 SOCKS5
json
{
"outbounds": [
{
"type": "socks",
"tag": "socks5-no-auth-out",
"server": "proxy.example.com",
"server_port": 1080,
"version": "5"
}
]
}SOCKS4 代理
json
{
"outbounds": [
{
"type": "socks",
"tag": "socks4-out",
"server": "proxy.example.com",
"server_port": 1080,
"version": "4",
"username": "your-username"
}
]
}TLS 加密的 SOCKS5
json
{
"outbounds": [
{
"type": "socks",
"tag": "socks5-tls-out",
"server": "proxy.example.com",
"server_port": 1080,
"version": "5",
"username": "your-username",
"password": "your-password",
"tls": {
"enabled": true,
"server_name": "proxy.example.com"
}
}
]
}协议版本对比
SOCKS4
- 特点:最早的版本,仅支持 TCP 代理
- 认证:无认证或用户名认证
- 域名解析:客户端负责域名解析
- 兼容性:老旧系统兼容
SOCKS4a
- 特点:SOCKS4 的扩展版本
- 域名解析:代理服务器负责域名解析
- 兼容性:老旧系统支持
- 限制:仍不支持 UDP
SOCKS5(推荐)
- 特点:最新版本,功能最完整
- 认证方式:
- 无认证(00)
- GSSAPI 认证(01)
- 用户名/密码认证(02)
- 协议支持:TCP 和 UDP 代理
- 域名解析:代理服务器负责域名解析
- 地址类型:
- IPv4 地址
- 域名地址
- IPv6 地址
高级配置
代理链(Proxy Chain)
json
{
"outbounds": [
{
"type": "socks",
"tag": "socks5-first",
"server": "proxy1.example.com",
"server_port": 1080,
"version": "5",
"username": "user1",
"password": "pass1"
},
{
"type": "socks",
"tag": "socks5-second",
"server": "proxy2.example.com",
"server_port": 1080,
"version": "5",
"username": "user2",
"password": "pass2"
},
{
"type": "urltest",
"tag": "auto",
"outbounds": ["socks5-first", "socks5-second"],
"url": "http://www.gstatic.com/generate_204",
"interval": 300
}
]
}UDP 代理配置
json
{
"inbounds": [
{
"type": "socks",
"tag": "socks5-in",
"listen": "127.0.0.1",
"listen_port": 1080,
"version": "5",
"users": [
{
"username": "your-username",
"password": "your-password"
}
],
"udp_forward": {
"enabled": true,
"listen": "127.0.0.1",
"listen_port": 1081
}
}
]
}使用场景
应用代理
- 网页浏览器代理设置
- 邮件客户端代理
- 下载工具代理
- 游戏加速(部分游戏)
系统代理
- 全局系统代理
- 特定应用代理
- 分应用代理规则
网络调试
- 网络测试和分析
- 防火墙穿透
- 网络调试工具
优缺点
优点
- 协议标准化程度高
- 通用性强,支持广泛
- 配置简单,使用方便
- 支持 TCP 和 UDP 代理
- 具备身份验证功能
缺点
- 流量特征相对明显
- 缺乏内置加密(需要额外配置)
- 在严格网络环境下可能被阻断
- 不具备抗检测能力
- 容易被识别为代理流量
配置指南
浏览器配置
- Chrome/Edge:设置 → 高级 → 系统 → 打开代理设置
- Firefox:选项 → 常规 → 网络设置 → 手动代理配置
- Safari:系统偏好设置 → 网络 → 高级 → 代理
系统配置
Windows
bash
# 使用 netsh 配置系统代理
netsh winhttp set proxy proxy-server="socks5=127.0.0.1:1080"macOS
bash
# 使用 networksetup 配置代理
networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 1080Linux
bash
# 设置环境变量
export http_proxy=socks5://127.0.0.1:1080
export https_proxy=socks5://127.0.0.1:1080应用程序配置
- 大多数网络应用都支持 SOCKS 代理设置
- 部分应用需要特殊配置或插件支持
- 游戏应用可能需要 UDP 代理支持
安全性考虑
加密传输
- 使用 TLS 包装 SOCKS 流量
- 配置 HTTPS 或其他加密隧道
- 避免明文传输敏感数据
身份验证
- 使用强用户名和密码
- 定期更换认证信息
- 启用适当的认证方式
访问控制
- 限制可访问的 IP 范围
- 实施流量监控和限制
- 配置防火墙规则
性能优化
连接优化
- 使用连接池减少连接建立开销
- 配置合适的超时时间
- 优化 DNS 解析
负载均衡
- 使用多个 SOCKS 代理服务器
- 配置故障转移机制
- 监控服务器健康状态
故障排除
连接失败
- 检查服务器地址和端口
- 验证认证信息
- 确认网络连通性
- 检查防火墙设置
认证错误
- 验证用户名和密码
- 检查支持的认证方式
- 确认账户状态
- 重置认证信息
性能问题
- 检查服务器负载
- 优化网络路由
- 调整超时设置
- 使用负载均衡