Docker部署 Gost 开启 Socks and Http Proxy

一、背景

emm, 其实日常中大部分人很少会用到 代理 这个东西,对于我们这些爱折腾的人来说,代理就是一个非常重要的东西。

二、代理协议

此处的协议指的是网络传输协议。
主要是两种:

  • Socks
  • HTTP

当然代理形式也有区分

  • 正向代理


    • 访问被禁止的资源 通过代理服务器访问
    • 突破网络审查(比如谷歌、油管 、脸书、推特 等等)
    • 隐藏客户端的地址
    • 加速访问资源
    • 过滤内容
  • 反向代理


    • 负载均衡(当需要横向扩展的时候就起作用了)
    • 提升服务器安全性
    • 加密/SSL加速
    • 缓存
    • 统一的访问控制
    • 突破互联网的封锁
正向代理与反向代理的区别
  • 正向代理是代理客户端。
  • 反向代理是代理服务器。

三、使用

其实有很多方法去实现代理,关于代理也有很多加密方式,咱们这里不讲科学上网,当然我的需求也不是为了科学上网,我的刚需其实是 IP 代理池作为一个爬虫爱好者,我比较喜欢去爬取各个网站的数据。

例如 4k壁纸网站,大姐姐网站,音乐网站 等等,有的网站就比较轻松,可能开发者比较偷懒也觉得必要上限流算法,套个CFCDN就ok,例如 360 的壁纸网站,图片质量不咋样也没做什么反爬虫的手段 。

也有例外的,例如我之前爬取 https://wallhaven.cc/ 的时候,虽然 Test方法写的很舒服 测试的时候也没什么反爬虫的手段,但是在我上多线程加快速率的时候,就发现了问题 ,开发者针对 请求做了限流,请求速度过快会对网站的服务器造成很大的压力。在此对 wallhaven.cc 抱歉。虽然请求被限流 ,过快就会返回 429 EROOR 。但是这种方法是无法针对代理的,因为大部分思路应该是针对IP做流控。那如果我有很多 IP 岂不是能绕过这个限制,而刚刚好,我的吃灰服务器多的要命,并且海内外的服务器都有。那这就好了,是时候造一个轮子来实现这个功能了,就当我准备新建文件夹的时候,诶 ? 为什么不去 github 找开源的轮子。不搜不知道一搜吓一跳,squidgostsocks5shadowsocks ,等等都能实现这个功能 。我找了一个非常简单的库 也就是 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
最后修改:2023 年 10 月 05 日
如果觉得我的文章对你有用,请随意赞赏