You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.4 KiB
4.4 KiB
Wormhole SOCKS5 Client 使用指南
概述
Wormhole SOCKS5 Client 是一个功能强大的代理客户端,支持多种代理模式,可以将 SOCKS5 代理转换为 HTTP 代理,并提供全局代理和透明代理功能。
功能特性
- ✅ HTTP 代理模式: 将 SOCKS5 代理转换为 HTTP/HTTPS 代理
- ✅ 全局代理模式: 自动配置系统级代理设置
- ✅ DNS 代理: 提供 DNS 请求代理和缓存
- ✅ 系统集成: 支持 macOS 系统代理自动配置
- ⚠️ 透明代理模式: 计划实现(需要 root 权限)
安装
从源码编译
git clone http://101.34.16.52:3000/huyinsong/wormhole-client.git
cd wormhole-client
make build
使用预编译二进制
# 下载并安装到 /usr/local/bin
make install
配置文件
配置文件位于 configs/client.yaml
,包含以下主要配置:
# SOCKS5 服务器设置
server:
address: 127.0.0.1
port: 1080
username: admin
password: secure_password_123
# 代理模式设置
proxy:
mode: http # http, global, transparent
localPort: 8080
# 全局代理设置
globalProxy:
enabled: false
dnsProxy: true
dnsPort: 5353
# 分流规则
routing:
bypassLocal: true
bypassPrivate: true
bypassDomains:
- "*.local"
- "*.lan"
forceDomains:
- "*.google.com"
- "*.github.com"
# 日志级别
logLevel: info
timeout: 30s
使用方法
1. HTTP 代理模式
最简单的使用方式,将 SOCKS5 代理转换为 HTTP 代理:
# 使用默认配置
./bin/wormhole-client -mode http
# 指定配置文件
./bin/wormhole-client -mode http -config /path/to/config.yaml
启动后,在浏览器中配置 HTTP 代理:
- 代理地址:
127.0.0.1
- 代理端口:
8080
(或配置文件中指定的端口)
2. 全局代理模式
自动配置系统级代理,所有应用程序都将通过代理访问网络:
# 需要管理员权限 (macOS)
sudo ./bin/wormhole-client -mode global
注意:
- macOS 系统需要管理员权限
- 程序退出时会自动恢复原始代理设置
- 可以使用 Ctrl+C 安全退出
3. 透明代理模式 (计划实现)
# 需要 root 权限
sudo ./bin/wormhole-client -mode transparent
命令行选项
./bin/wormhole-client [选项]
选项:
-config string
配置文件路径 (默认 "configs/client.yaml")
-mode string
客户端模式: http, global, transparent (默认 "http")
-version
显示版本信息
使用场景
场景 1: 浏览器代理
- 启动 HTTP 代理模式
- 在浏览器中配置 HTTP 代理为
127.0.0.1:8080
- 访问被墙网站
场景 2: 全局科学上网
- 以管理员权限启动全局代理模式
- 系统所有网络请求自动通过代理
- 支持 DNS 代理,解决 DNS 污染问题
场景 3: 开发调试
- 使用 HTTP 代理模式
- 配置开发工具使用代理
- 调试网络请求和响应
故障排除
连接失败
- 检查 SOCKS5 服务器地址和端口
- 验证用户名和密码
- 确认网络连通性
权限问题
# macOS 全局代理需要管理员权限
sudo ./bin/wormhole-client -mode global
# 检查系统代理设置
networksetup -getwebproxy Wi-Fi
日志调试
# 启用详细日志
./bin/wormhole-client -mode http -config configs/debug.yaml
在配置文件中设置 logLevel: debug
获取详细日志信息。
安全注意事项
- 配置文件安全: 保护好包含密码的配置文件
- 管理员权限: 仅在需要时使用管理员权限
- 网络安全: 确保 SOCKS5 服务器的安全性
- DNS 泄露: 使用 DNS 代理防止 DNS 泄露
开发和贡献
编译和测试
# 编译
make build
# 运行测试
make test
# 检查代码质量
make lint
# 清理构建文件
make clean
代码结构
├── cmd/wormhole-client/ # 主程序入口
├── internal/ # 内部模块
│ ├── client/ # 客户端核心逻辑
│ ├── config/ # 配置解析
│ ├── proxy/ # SOCKS5 代理实现
│ └── system/ # 系统代理管理
├── pkg/ # 公共模块
│ ├── dns/ # DNS 代理
│ └── logger/ # 日志模块
└── configs/ # 配置文件
许可证
本项目采用 MIT 许可证,详情请参见 LICENSE 文件。