# GoProxy 测试脚本 本目录包含用于测试 GoProxy 代理服务的脚本。所有脚本都采用**持续运行模式**(类似 `ping` 命令),按 `Ctrl+C` 停止并显示统计。 ## 📝 脚本列表 | 脚本 | 语言 | 依赖 | 运行模式 | 推荐度 | |------|------|------|----------|--------| | `test_proxy.sh` | Bash | curl + Python3 | 持续运行 | ⭐⭐⭐ | | `test_proxy.go` | Go | `golang.org/x/net/proxy` | 持续运行 | ⭐⭐ | | `test_proxy.py` | Python | `requests`, `pysocks` | 持续运行 | ⭐⭐ | ## 🚀 快速使用 ### Bash 脚本(推荐) ```bash # 从项目根目录运行(持续测试 HTTP) ./test/test_proxy.sh # 测试 HTTP 协议 ./test/test_proxy.sh http # 测试 SOCKS5 协议 ./test/test_proxy.sh socks5 # 按 Ctrl+C 停止并查看统计 ``` ### Go 脚本 ```bash # 安装依赖 go get golang.org/x/net/proxy # 运行测试 go run test/test_proxy.go # 或编译后运行 cd test go build -o test_proxy test_proxy.go ./test_proxy ``` ### Python 脚本 ```bash # 安装依赖 pip install requests pysocks # 运行测试 python test/test_proxy.py ``` ## 📊 测试内容 所有脚本都会: 1. 通过指定端口代理发送请求(默认 `127.0.0.1:7777`) 2. 访问 `http://ip-api.com/json` 获取出口 IP 和国家信息 3. **持续发送请求**,间隔 1 秒(类似 `ping` 命令) 4. 实时显示国旗 emoji、出口 IP 和延迟 5. 按 `Ctrl+C` 停止并显示统计摘要 ## 📖 详细文档 完整的测试指南、故障排查、高级用法,请查看: 👉 [TEST_GUIDE.md](./TEST_GUIDE.md) ## 🔀 测试不同端口策略 ```bash # 对比两个端口的行为差异: # 随机轮换模式 - IP 高度分散 ./test/test_proxy.sh 7777 # 最低延迟模式 - 固定使用最快代理 ./test/test_proxy.sh 7776 ``` **观察要点**: - **7777 端口**:每次请求的出口 IP 应该不同(证明在轮换) - **7776 端口**:连续多次请求的出口 IP 基本相同(证明固定使用最优代理) ## 🔍 预期输出 ``` PROXY 127.0.0.1:7777 (http://ip-api.com/json/?fields=countryCode,query): continuous mode proxy from 🇺🇸 203.0.113.45: seq=1 time=1234ms proxy from 🇩🇪 198.51.100.78: seq=2 time=987ms proxy from 🇬🇧 192.0.2.123: seq=3 time=1567ms proxy #4: request failed (timeout) proxy from 🇯🇵 198.51.100.12: seq=5 time=890ms proxy from 🇫🇷 192.0.2.234: seq=6 time=1456ms ... (持续运行,按 Ctrl+C 停止) ^C --- 50 requests transmitted, 47 received, 3 failed, 6.0% packet loss ``` **输出风格**: - 简洁清晰,类似 `ping` 命令 - 一行一个结果 - 显示国旗 emoji、出口 IP、序号、延迟 - 统计信息简洁明了 **观察要点**: - 每次请求的出口 IP 应该不同(证明代理轮换) - 延迟应该在合理范围(< 2000ms) - 丢包率应该 < 10% - 可以长时间运行观察稳定性 ## 📝 注意事项 1. 确保 GoProxy 服务已启动:`./goproxy` 2. 首次启动需等待代理池就绪(约 30-60 秒) 3. 可配合 WebUI (http://localhost:7778) 查看实时状态