CentOS7 下搭建 HTTP 和 SOCKS5 代理服务

如果你没有不过墙的 IPLC 线路的话,请不要在境外服务器上搭建 HTTP 或 SOCKS5 代理,连上以后流量稍微一大就会使 IP 被墙。


HTTP 和 SOCKS5 代理搭建的方式有很多:使用 Tinyproxy 搭建 HTTP 代理、使用 ss5 搭建 SOCKS5 代理等等……我这里使 GOST 来启动代理服务端,优点是安装方便(只有一个可执行脚本),且同时能启动加密的 HTTP 和 SOCKS5 代理服务。

附上一些我的开源脚本:
HTTP 代理:CentOS7 下一键安装 Tinyproxy 代理
SOCKS5 代理:CentOS7 下一键安装 SOCKS5 代理
同时安装 HTTP 和 SOCKS5 代理:CentOS7 下一键安装 GOST 并启动 HTTP 和 SOCKS5 代理服务

1、下载并安装 GOST
下载 GOST:

wget https://github.com/ginuerzh/gost/releases/download/v2.11.1/gost-linux-amd64-2.11.1.gz

如果境内下载慢的话可以用我 Gitee 上的源:gost-linux-amd64-2.11.1.gz

下载完成后解压出 gost 执行文件,并放在 /usr/bin 等目录下以方便在任何地方调用:

# 解压
gunzip gost-linux-amd64-2.11.1.gz
# 移动
mv gost-linux-amd64-2.11.1 /usr/bin/gost

2、启动 GOST
使用 GOST 开启 HTTP 和 SOCKS5 代理功能的命令比较简单:

gost -L $username:[email protected]:$port

参数说明及样例:

参数 说明 样例
username 代理认证用的用户名。 myusername
password 代理认证用的密码。 mypassword
port 代理服务的端口。 1080

GOST 强大的其他功能可以参考官方文档:GOST v2

启动成功并确定对应端口的防火墙和安全组开放后可以在其他 Linux 服务器上测试一下($host 为你代理服务器的 IP 地址):

curl -x http://$username:[email protected]$host:$port http://ip-api.com/json/?lang=zh-CN  

3、使用 Screen 启动并设置为开机自启动
你会发现 GOST 在你退出终端后就会停止,这里使用 Screen 新建一个窗口并运行 GOST:

# 安装 Screen
yum -y install screen
# 新建 Screen 并在其中运行 GOST
screen -dmS screen-for-gost && screen -S screen-for-gost -X stuff '/usr/bin/gost -L $username:[email protected]:$port\n'

而开机自启动则需要配置 Linux 系统任务:

crontab -e

新加一条任务:

@reboot screen -dmS screen-for-gost && screen -S screen-for-gost -X stuff '/usr/bin/gost -L $username:[email protected]:$port\n'

之后重启 Cron 即可:

service crond restart

结束。