Appearance
代理设置指南
前言
提前配置一个良好的网络环境是受益良多的。 对于开发者来说,我们不需要在关心如何设置各种语言或者库的国内镜像; 不需要研究 git,docker 各种软件如何应用上系统代理; 不会需要注意到代理的存在,在访问国内外网站时开启或者关闭代理软件。 总之就是,我们不需要为设备无法访问外网而选择一系列折中方案,影响自己的效率。
获得订阅链接
我在用的是 渡口。 从前面的链接注册,你的消费我可以获得返利。
Windows
Windows 用户请使用 clash for windows 或者 Clash Verge。
以前者为例,我们可以按照如下步骤设置好代理:
下载软件
在 release 页面下载最新软件包并安装。 请注意区分选择软件版本,Windows 用户最常见是下载如下两种类型。 前者为压缩包,后者为 exe 安装文件。
TIP
如果你侥幸进入 GitHub release 页面但是网页链接下载缓慢,可以考虑使用 GitHub 加速 edge 浏览器插件
INFO
如果你在最新的 release 中没有看到 exe 文件,请向下找到最新的安装文件。
后续步骤
- 从订阅链接导入配置文件
- 请点击侧边的 Proxies 一栏,确保最上方一排选项选择为 Rule
- 这表示我们按照规则进行分流处理国内外网页
- 下方的 Proxy 选择,请首先进行测速(点击右侧的按钮),确保选择可以连接的节点
- 通常,我们选择台湾或者新加坡地区的节点
- 访问 speedtest.net 进行网络测速
- 如果你只是需要代理来在浏览器访问网页,到这里就已经可以了
- 如果需要更完美的配置,你无需开启文档中设置最后一步的系统代理
- 请点击侧边的 Proxies 一栏,确保最上方一排选项选择为 Rule
- 安装和开启 Service Mode,开启 TUN Mode
- (可选)设置开机启动
- (可选)处理 uwp 应用
- 使用首页的 UWP Loopback 工具来处理 Windows uwp 应用可能存在的无法链接网络的问题
WARNING
Windows 预览版用户或者每次大版本更新需要重新安装 Service Mode。 同时,如果你发现突然无法访问网络,也首先检查 Service Mode 是否失效。
配置预处理
为何需要配置预处理?
机场预置的规则判断不足以处理全部情况,需要通过自定义规则来选择是否使用代理
参考 cfw 文档 和 Clash Verge 文档,可以添加或者覆盖原本订阅链接中的配置。
下面以一个例子介绍如何判断到需要添加规则,以及如何添加规则。
- 当我在 vscode 中下载插件时,它转圈转的很慢
- 我打开 cfw 的 Connections 一栏
- 显示的信息告诉我,获取 vscode 插件信息的请求走的是
DIRECT
而非我此前选择的代理节点 - 基于此,我知道应该添加规则,来让这个连接走代理
- 选择 Profiles,右键配置信息,点击 Parsers,添加或者编辑
- 以如下的格式来编写规则
- 更多可以配置的规则参考 规则编辑
- 创建规则完成后,请更新你的订阅来应用规则变化
yml
parsers:
- url: 你的订阅链接
yaml:
prepend-rules:
- DOMAIN-SUFFIX,visualstudio.com,Proxy
- DOMAIN-SUFFIX,microsoft.com,Proxy
对于 ssh 连接服务器的场景,如果你不想关闭 clash 的话,我们需要手动添加一些规则来绕开。 比如如下指定直连的 ip。
yaml
- IP-CIDR,x.x.x.x/32,DIRECT
对于本校的校园网,需要添加对应的 DNS 才能解析到正确的 ip,并不是通过域名规则来进行过滤(因为先验证才会有网)。 cfw 在 tun 模式设置中可以添加额外的 dns,后者可以通过覆提供覆盖规则的方式来添加,如:
yaml
# Merge Template for clash verge
# The `Merge` format used to enhance profile
dns:
nameserver:
- 223.5.5.5
- 223.6.6.6 # 以上为原本配置文件的 dns
- 202.204.24.35
prepend-rules:
- DOMAIN,ip.ncut.edu.cn,DIRECT
prepend-proxies:
prepend-proxy-groups:
append-rules:
append-proxies:
append-proxy-groups:
Ubuntu
推荐使用图形化界面来设置,软件选择和 Windows 一致。 下载解压后,运行 cfw
即可。
WARNING
设置 TUN 模式需要手动修改系统的 nameserver 保持设置一致,修改方法可以参考 how to change DNS server permanently on Ubuntu 20.04?
WSL
对于 WSL,我们无需手动设置代理。 因为按照此前的设置,它的网络已经被 Windows 接管下来,自动获得代理访问能力。
macOS
安装配置 clashx pro 增强模式,clashx 没有这个功能。 如果你不在意软件是否是原生程序,同样可以使用 Clash For Windows。
处理 ssh 问题
需要注意,TUN 模式会使得本不认代理设置的 ssh,经过代理服务器。 如果你的代理机禁止了 ssh 的 22 端口的话,在 git push 时就会报错。
kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository.
你可以在 .ssh/config
设置 github 使用 443 端口连接,可以解决 git push 时的报错。
Host github.com
Hostname ssh.github.com
Port 443
User git
手动配置代理
如果你需要更多手动设置代理相关的参考,请看 package-manager-proxy-settings
丰富你的规则
有时候,你的机场提供的规则不够多,会需要通过 DNS 解析来判断走代理还是直连, 通过补充 预设规则 改善这一情况。