本文仅针对开源软件配置进行技术交流,与“翻墙”(未经批准擅自使用非法工具或服务绕过国家防火墙,访问境外互联网的行为)无关。我们应当自觉遵守网络管理法规,共同维护良好的网络秩序,鼓励大家积极利用国内资源,享受健康、积极的网络生活。本文也仅旨在与其他网友进行技术交流,满足其他网友的交流学习需要。

配置clash时的一大难题就是:你需要先有一个能访问外网的渠道才能配置clash,但是你需要先配置clash才有访问外网的渠道。

本文将针对“本地主机能访问外网,但是云服务器不能”的情况作出一些经验分享。

下载

首先为了保证软件源头的纯洁性,我们当然是使用从GitHub上clone下来的clash-for-linux,但是云服务器目前还是访问不到GitHub的,所以我们选择在WSL中clone一个,然后通过scp传输到服务器上。将Windows上的clash-verge开到TUN模式(从更底层截获请求,确保WSL中也能享受到代理),然后WSL随便开一个Linux系统,执行

1
git clone https://github.com/wnlen/clash-for-linux.git

接下来用

1
scp -r ./clash-for-linux <user name>@<server ip>:/path/to/clash
进行传输。注意加-r确保递归。

安装

传输完成之后我们cd到对应的路径,由于是scp过来的而非直接git clone下载,所以有些文件属性可能会不对,也许需要chmod +x install.sh为安装脚本添加执行权限,接着sudo bash install.sh进行安装,安装过程中会提示你输入订阅的URL。

终端命令

安装完成之后会将一个clash-for-linux.sh放到/etc/profile.d/下,所以我们直接重新打开bash会话就可以使用其中的命令——其实也就三条:

  • proxy_on 启动代理
  • proxy_off 关闭代理
  • proxy_status 查看代理状态

控制面板

更加详细的控制在控制面板中,默认是运行在9090端口上。

首先我们需要找到访问终端所需的秘钥(在这一步卡了我好久,被可恶的deepseek误导了喵)。打开路径/opt/clash-for-linux/opt/查看里面的yaml配置文件中的secret字段并记录下来。

接下来我们在本地终端启动一个ssh隧道将这个端口代理出来:

1
ssh -N -L 9090:127.0.0.1:9090 <user name>@<server ip> &
然后浏览器访问127.0.0.1:9090/ui,按提示输入后端地址和密钥就可以访问控制面板啦。