Linux配置VPN

less than 1 minute read

Published:

在笔记本上配置vpn很方便,只需要一个科学账号(飞机)与一个配置软件(机场)。但在没有可视化界面的linux服务器上,很难通过交互界面操作配置软件。本文提供了一个在linux服务器上配置vpn的通用方式。

租用飞机

第一步,即掏钱购买连接外部的飞机账号。这个账号通常只是一串url订阅链接。务必确保该链接内有足够的流量,且不能外传。本文不提供租用飞机的网站和联系方式。

下载机场

机场即为一个软件,比如shadowrocket和clashX。当然,这些机场也可以用于连接学校的内网,因此机场并不是一类禁止下载的软件。但是国内没有比较好的自研机场,所以用本文推荐的这两款软件之一即可。

在linux服务器上配置

这里需要用到ClashX的官方代码仓库。(注1:代码作者似乎跑路了,读者自求多福吧;注2:疑似代码存在恶性后台软件,会偷跑飞机流量,不用的时候请及时关闭软件,或者改用镜像站获取所需外部资源!)下载该仓库,并在其中的.env文件内编辑并保存订阅链接以用于计费:

CLASH_URL=<订阅链接>

下一步,在该目录中运行

bash start.sh

配置全局代理:

source /etc/profile.d/clash.sh
proxy_on

在路径【~/clash-for-linux/conf/config.yaml】中,可以找到并修改rules下url走代理的规则。

检查服务端口:

netstat -tln | grep -E '9090'

检查环境变量:

env | grep -E 'http_proxy|http'

关闭服务需要同时关闭软件+关闭系统代理:

bash shutdown.sh
proxy_off

检验是否连通外网,可以输入以下命令:

curl https://scholar.google.com.hk/

若没有连通外网,则该命令会卡死。也可以直接查当前的公网IP:

curl ipinfo.io

注意:有时【bash start.sh】启动时会报错【配置文件错误】,此时需要登录网站【<订阅地址>&client=clash】,复制所有内容,替换conf/config.yaml文件内容。替换之后,重新启动服务即可【bash restart.sh】,重启不会从网站下载配置文件。

除此之外,在使用非root用户时,需要先sudo,将/etc/profile.d/clash.sh的own和grp改为用户的名称;在下载订阅地址的配置文件后,要将allow-lan参数设置为True