Linux 科学上网

虚拟机、服务器等我主要用到的还是 Linux 系统,但是 github 下个代码都费劲,之前尝试了很多 Linux 科学上网的方法,有时能成功有时候失败,这次总结一个比较好用的方法。

该方法特点

  • 使用 clash-core
  • 不需要管理员权限,不需要图形化界面(命令行操作即可)

配置方法

首先下载 clash-core

在 github 等途径下载【传送门

如果有一天路径找不到了,请发挥一下主观能动性,在广袤的互联网上搜索一下。

如下图,我下载的是 clash-linux-amd64-v1.18.0.gz

下载好后,放在 linux 系统用户文件夹下就好,使用如下命令解压:

1
gunzip clash-linux-amd64-v1.18.0.gz

重命名解压后的文件:

1
mv clash-linux-amd64-v1.18.0 clash

给该文件可执行权限:

1
chmod +x clash

然后各显神通,获取到 clash 节点,如果是其他类型的节点格式可以通过节点转换工具转换成 clash 节点格式,修改节点配置文件名称为 config.yaml

此时可以通过如下命令实现科学上网:

1
./clash -f ./config.yaml

如果显示如下提示,表示目前为止都是顺利的,可以通过 7890 端口来科学上网。

此时再打开一个终端,使用如下命令将终端的 http 和 https 访问端口绑定到 7890 从而实现科学上网:

1
2
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890

此时,用如下命令检测是否成功:

1
curl -i google.com

出现下图说明成功从 google.com 获取了报文,科学上网成功。

此时在 clash 监听界面也能看到提示:

至此以及可以实现科学上网了,如果你觉得麻烦,不想每次都这样重复操作,可以继续往下看,可以稍微简化一下步骤。

操作友好处理

1. 启动 clash

启动 clash 的过程可以写成一个 shell 脚本方便运行:

run.sh 放在 clash 可执行文件的同级目录下

1
2
# run.sh
./clash -f config.yaml

给该脚本执行权限:

1
chmod +x run.sh

之后运行 clash 只需要进入该目录下:

1
./run.sh

2. 启用代理

打开一个新的终端,

添加环境变量:

1
vim ~/.bashrc

.bashrc 中添加如下变量:

1
2
alias proxy='export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890'
alias unproxy='unset http_proxy;unset https_proxy;'

保存并退出:

1
:wq

然后在终端中重新加载环境变量:

1
source ~/.bashrc

此时启用代理,只需命令行输入:

1
proxy

退出代理,只需命令行输入:

1
unproxy