1.写在前面的
本次文章内容需要准备:一台动态 ADSL 拨号服务器,一台普通服务器,一个公网 redis 环境(可以直接部署在前面普通服务器上)。
首先介绍一下 ADSL,ADSL是一种新的数据传输方式。它因为上行和下行带宽不对称,因此称为非对称数字用户线环路。它采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰。
它有个独有的特点,每拨一次号,就获取一个新的IP。也就是它的IP是不固定的,不过既然是拨号上网嘛,速度也是有保障的,用它搭建一个代理,那既能保证可用,又能自由控制拨号切换(抄自知乎)。
借助 ADSL 拨号服务器特点,我们可以获取一个公网 IP,然后借助第三方工具/软件在服务器上搭建 HTTP 代理就行了。关于搭建 HTTP 代理有很多推荐,比如说 Squid。但是 Squid 这些需要配置信息,对于个人来讲有些麻烦,所以在这篇文章里,我们尝试用 gost 来搭建 HTTP 代理(https://github.com/ginuerzh/gost)。
2.拨号服务器基操
在搭建 HTTP 代理之前,还是先说一下拨号服务器常用操作:
pppoe-start # 拨号
pppoe-stop # 断开拨号
pppoe-status # 拨号连接状态
一般购买拨号服务器之后,使用 ssh 连接上使用pppoe-start
命令先进行拨号(不同平台命令可能不一样),成功后可以尝试使用curl ip.sb
查看当前获取的新 IP:
[root@localhost ~]# curl ip.sb # 检查当前ip
171.41.86.191
[root@localhost ~]# pppoe-stop # 停止当前拨号
[root@localhost ~]# pppoe-start # 开始拨号
[root@localhost ~]# curl ip.sb # 检查当前ip
171.41.85.191
[root@localhost ~]#
3.搭建 HTTP 代理
上面提到使用 gost 搭建 HTTP 代理,现从 GITHUB 上下载对应的平台 / 版本的 gost。我这里下载的是:gost-linux-amd64-2.11.1
,你们可以根据自己需要下载合适的版本。下载之后解压之后得到一个可执行文件:
[root@localhost ~]# ll
total 31508
-rw-------. 1 root root 1319 Sep 29 2019 anaconda-ks.cfg
-rw-r--r-- 1 root root 8784858 Dec 14 11:50 file.zip
-rw-r--r-- 1 root root 16830464 May 23 2020 gost-linux-amd64 # 就这个这个
-rw-r--r-- 1 root root 6643001 Dec 8 22:46 proxy_client # 等会用
[root@localhost ~]#
确定当前拨号成功后直接执行:
[root@localhost ~]# mv gost-linux-amd64 gost # 重命名(可有可无)
[root@localhost ~]# chmod 777 gost # 修改权限,必须,不然无法执行
[root@localhost ~]# ./gost -L=admin:123456@:8123 # 设置代理认证信息
2020/12/14 13:52:44 route.go:650: auto://:8123 on [::]:8123
这里可以使用 systemctl
给 gost 做个进程守护,在 /etc/systemd/system/
路径新建文件 gost.service
内容:
[Unit]
Description=Gost Proxy
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/root/gost -L=http://admin:123456@:8123 -L=socks5://admin:123456@:8125 # socks5 根据自己需要设置
Restart=always
[Install]
WantedBy=multi-user.target
之后可以直接使用 systemctl
命令控制 gost :
systemctl daemon-reload
systemctl enable gost
systemctl rest