跳转至

使用 Clash 代理 VPS 科学访问

预计阅读时长 : 6 分钟

前言

作为一名“尊贵”的腾讯云 VPS 用户,由于网络环境的限制,经常会无法顺畅访问 Github、Docker 和 CDN,导致源码、依赖、镜像等必须的工具无法正常使用。

为了解决这个使用国内 VPS 的用户都会遇到的头疼问题,我们可以使用 Clash 来代理 VPS 的科学访问。

安装 Clash

首先,我们需要在 VPS 上部署 Clash 代理服务,为了安全和便捷起见,强烈推荐使用 Docker 方案。

version: '3'

services:
  clash:
    image: dreamacro/clash:latest
    container_name: hsalc #(1)
    volumes:
      - ./config.yaml:/root/.config/clash/config.yaml
    ports:
      - "27890:7890/tcp" #(2)
      - "27890:7890/udp"
      - "27891:7891/tcp"
      - "27891:7891/udp"
    network_mode: bridge
    restart: always
  1. 这里的容器名称建议自行进行修改,不要使用默认的名称规避风险。
  2. 这里的端口号也建议自行进行修改,不要使用默认的端口规避风险。

配置 Clash

在 VPS 上部署好 Clash 之后,我们需要配置 Clash 的配置文件,以便指定所需要的访问代理。

一般的机场都提供了 Clash 订阅链接,可以直接下载链接指向的文件内容,保存到映射的 config.yaml 中。或者使用订阅转换服务,将其它订阅转换为 Clash 订阅。

这里推荐使用订阅转换服务(如该链接 ⧉,也可以自行搭建,可参考该文章 ⧉),转换后的配置文件可添加更为强大的分流规则,实现自动分流和自动择优,提升科学上网的速度。

配置 VPS 代理

Clash 服务运行后,将在后台监听容器中指定的端口。要在 Ubuntu 下使用代理,需要通过 export 命令设置系统代理。

export https_proxy=http://127.0.0.1:27890 http_proxy=http://127.0.0.1:27890 all_proxy=socks5://127.0.0.1:27890

也可以将该命令添加到 .bashrc 或者 .zshrc 中,登陆后对应用户的终端将自动开启代理。

如果不需要使用代理,则可以通过以下的命令取消:

unset http_proxy https_proxy all_proxy

验证效果

配置好代理之后,我们可以通过以下的命令来验证代理是否生效。如果代理生效,那么返回的 IP 地址应该是代理节点的 IP 地址。

curl ip.gs
108.222.30.190

安全防护

为了防止腾讯云的自动监控发现 Clash 服务导致 VPS 被封禁,我们需要对 Clash 服务进行安全防护。建议考虑采用以下的策略来提升安全性:

  • 不要用来做任何“违法”的事情,在腾讯云做这个就是找死。
  • 干掉腾讯云的云服务器安全监控组件,不仅没用还有“安全”隐患。
  • 修改配置文件存储的路径名,修改 Clash 容器的默认名称和端口,避免被可能的安全扫描发现关键特征。
  • 开启 UFW 防火墙,关闭外部 IP 对相应端口的访问,只允许 VPS 内部访问。
  • 如果可能,尽量使用国内中转服务提供的代理,相当于 VPS 只访问国内 IP,过墙的操作交由中转服务负责。

参考文档