/gus-proxy

"打一枪换一个地方" 一个HTTP代理

Primary LanguageGoGNU General Public License v3.0GPL-3.0

Gus-Proxy

"gus - 绝命毒师里的大毒枭"

Build Status Go Report Card

README.English


运行

# prepare the proxies
mkdir -p data
touch data/proxies.txt
# put your proxies in data/proxies.txt
# the format could be:
# socks5://127.0.0.1:1080
# http://user:pass@127.0.0.1:1081
# socks4://127.0.0.1:1082
# direct://0.0.0.0
# ss://AEAD_CHACHA20_POLY1305:passw0rd@127.0.0.1:1083

# then:
sudo docker run --rm -ti --name gus-proxy \
    -p 8080:8080 \
    -v `pwd`/data:/data \
    wrfly/gus-proxy

思路

打一枪换一个地方

  1. 每次请求都从代理池中选取一个代理
  2. 但是这样会不会触发server端的验证,即session与IP匹配
  3. 但是如果server端有这种IP验证的话,就没必要用这东西了
  4. 要解决的是server限制某一IP访问频率的问题

没问题。

设计

  1. 程序对上层表现为一个HTTP代理
  2. 程序加载一个代理列表(HTTP/Socks5) [或者默认配置一个代理列表]
  3. 每次的请求都从代理列表中选取一个
  4. 选取的算法可能是轮询、随机、或其他目前没想到的
  5. 要验证proxy的可用性
  6. 每次请求替换UA
  7. 请求资源的时候,查询目标资源地址全部的IP,随机

效果

Gus-Running Curl-test