前提知识 (某种规则怪谈)
- 大部分情况下,墙是单向的
- 大部分情况下,墙是黑名单制
- 墙是分布式的,且存在地域差异
- 墙是黑盒,且在不断更新
前提准备
要搭建自己的前向代理服务,需要做好以下的准备:
- 至少一台海外 VPS (Virtual Private Server),即虚拟专用服务器,一般装 Linux 系统
- 合适的代理协议,保证不被封
- 服务端软件,用于在 VPS 上部署代理服务
- 客户端软件,用于连接服务端实现代理,安装在需要代理的机器上
下面将对这几个方面进行一一介绍。
1️⃣ 海外 VPS 选择
VPS 的质量参差不齐,价格差异也非常大。选择什么样的 VPS 取决于你的具体需求。一般来说,VPS需要关注以下几点参数:
- 带宽:决定了连接速度的上限,但国内直连的速度还和线路相关。例如一台带宽为 1G 的海外 VPS,从海外网站下载的速度可能有 (1000/8) 125 MB/s,但用它为代理的速度可能只有10 MB/s。
- 线路:主要分为非优化和优化,决定了连接的延迟、稳定性以及速度。三家运营商 (移动、电信、联通)分别有自家的普通网络 (分别为163、CMI、4837) 和优化网络。优化网络又有不同级别。
- IP 质量:和流媒体解锁相关,如看奈飞就对 IP 的要求较高,而看油管就基本无所谓。另外,如果 IP 的风险度较高,在访问网页时可能经常要人机验证。
- CPU 以及内存:1核心 + 1GB 内存 (即1c1g) 即可,512MB 内存勉强也行。
- 磁盘空间:对于搭建节点来说一般不影响,甚至 5GB 都可以。
关于具体的 VPS 挑选,推荐看 DigVPS 这个网站。上面列举了不同 VPS 服务商的不同地区的 VPS,包含了上面提到的各种参数以及对 VPS 的主观评分。
- 一般而言,如果只是简单的浏览网页,一台 100 一年的 Zgo Global VPS (没收广告费) 就足够了。同时它的 IP 质量也不错,原生 IP + 流媒体全解锁,看奈飞、用各种 AI 工具无压力。
- 对于日本 VPS,可以考虑云悠(YUNYOO)200 一年的 TCVM Tokyo (原生 IP,流媒体全解锁) 或者 Akile 100 一年的 JPIIJ (非原生 IP,流媒体全解锁)。
- 香港 VPS 的优点是延迟比较低 (前提是直连不绕路由),但缺点是一般比较贵。魔法入门一般推荐用美西的 VPS。
购买了 VPS 后,可以直接在命令行 (windows 用 cmd 即可) 使用 ssh 登陆。
1 | ssh 系统用户名@公网IP -p 端口号 |
2️⃣ 代理协议选择
正所谓“道高一尺,魔高一丈”,墙和协议都是在不停进化的,所以只推荐使用最新的代理 (下面列举的前两个)。下面列举几种热门的协议:
- ✅ vision 流控 + reality
- ✅ anyTLS
- ❌ vmess + ws + tls (存在 TIT 特征,部分地区容易被封)
- ❌ trojan + tls (存在 TIT 特征,容易被封)
- ❌ shadowsocks (过时,秒封 IP)
- …
3️⃣ 服务端选择
推荐使用 Xray 和 mihomo (原名 Clash.Meta),其中 vision 流控 + reality 可以在 Xray 上部署,anyTLS 可以在 mihomo 上部署。
Xray 部署
推荐使用 x-ui 面板部署。用 root 用户执行以下下载命令:
1 | bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/956bf85bbac978d56c0e319c5fac2d6db7df9564/install.sh) 0.3.4.4 |
由于使用 x-ui 需要域名并配置证书实现 https 访问,否则会有消息泄漏风险,较为麻烦,本文不再赘述。感兴趣可以油管搜“不良林”。如果想要更简单的部署方式,推荐使用下面的 mihomo 部署 anyTLS 节点。
mihomo 部署
首先从 Github Release 下载最新的二进制文件,放到目标文件夹中:
1 | mkdir -p ~/.mihomo |
解压并重命名,赋予可执行权限:
1 | gzip -d mihomo-linux-amd64-compatible-v1.19.11.gz |
生成自签名证书:
1 | openssl req -x509 -newkey ec:<(openssl ecparam -name prime256v1) -keyout "./server.key" -out "./server.crt" -days 36500 -nodes -subj "/CN=bing.com" |
写入配置文件:
1 | cat > config.yaml << 'EOF' |
设置为 systemd 服务实现自动启动:
1 | sudo cat > /etc/systemd/system/mihomo.service << 'EOF' |
4️⃣ 客户端选择
除了 iOS 端,推荐使用 FlClash;iOS 端推荐使用 Shadowrocket (需要非国区 id)。另外对 Windows 端或 Mac 端,还可以使用 V2rayN,但我更偏向于使用 Clash 系 (FlClash 默认使用 mihomo 内核)。
之后导入节点只需要手动编辑配置文件即可。
结语
以上是在实践后得到高性价比魔法方案,如果遇到了什么问题的话也欢迎在评论区留言,我会尽量解答。