Docker部署 Gost 开启 Socks and Http Proxy
一、背景
emm, 其实日常中大部分人很少会用到 代理 这个东西,对于我们这些爱折腾的人来说,代理就是一个非常重要的东西。
二、代理协议
此处的协议指的是网络传输协议。
主要是两种:
- Socks
- HTTP
当然代理形式也有区分
正向代理
- 访问被禁止的资源 通过代理服务器访问
- 突破网络审查(比如谷歌、油管 、脸书、推特 等等)
- 隐藏客户端的地址
- 加速访问资源
- 过滤内容
反向代理
- 负载均衡(当需要横向扩展的时候就起作用了)
- 提升服务器安全性
- 加密/SSL加速
- 缓存
- 统一的访问控制
- 突破互联网的封锁
正向代理与反向代理的区别
- 正向代理是代理客户端。
- 反向代理是代理服务器。
三、使用
其实有很多方法去实现代理,关于代理也有很多加密方式,咱们这里不讲科学上网,当然我的需求也不是为了科学上网,我的刚需其实是 IP
代理池作为一个爬虫爱好者,我比较喜欢去爬取各个网站的数据。
例如 4k壁纸网站,大姐姐网站,音乐网站 等等,有的网站就比较轻松,可能开发者比较偷懒也觉得必要上限流算法,套个CF
的CDN
就ok,例如 360
的壁纸网站,图片质量不咋样也没做什么反爬虫的手段 。
也有例外的,例如我之前爬取 https://wallhaven.cc/
的时候,虽然 Test
方法写的很舒服 测试的时候也没什么反爬虫的手段,但是在我上多线程加快速率的时候,就发现了问题 ,开发者针对 请求做了限流,请求速度过快会对网站的服务器造成很大的压力。在此对 wallhaven.cc
抱歉。虽然请求被限流 ,过快就会返回 429 EROOR
。但是这种方法是无法针对代理的,因为大部分思路应该是针对IP做流控。那如果我有很多 IP
岂不是能绕过这个限制,而刚刚好,我的吃灰服务器多的要命,并且海内外的服务器都有。那这就好了,是时候造一个轮子来实现这个功能了,就当我准备新建文件夹的时候,诶 ? 为什么不去 github 找开源的轮子。不搜不知道一搜吓一跳,squid ,gost ,socks5, shadowsocks ,等等都能实现这个功能 。我找了一个非常简单的库 也就是 Gost 作为代理方案
wget https://pan.dnslin.com/d/cn/file/soft/gost-linux-amd64-2.11.2.gz
nohup ./gost -L=User:[email protected]:3727 &
#这样就能在 3727上开启一个 Socks and Http的代理服务了
但是实际上这样运行有点蠢,因为不方便看日志也就算了,关机以后就无了,写个 service
然后用 systemctl
进行开机自启? 那也太麻烦了
于是我在仓库找到了它的 docker
镜像 通过容器开启 always
选项就能开机自启了
docker run -d \
--name gost \
--restart=always \
--net=host \
ginuerzh/gost -L=User:[email protected]:3727
此处评论已关闭