MENU

网络代理

July 17, 2020 • 技术

什么是网络代理?

网络代理 (Proxy) 又称代理服务器,它可以用来转发网络请求以及相应,在这个过程中代理服务器可以对数据进行处理实现不同的功能。它被广为人知的名字叫做 VPN(virtual privacy network),使用网络代理更为大众的说法是翻墙。

网络代理的用途

网络代理的常见应用主要为以下几种方面:

  1. 保持用户匿名:使用网络代理可以让用户隐藏自己的 IP 地址,使得应用无法正确获取到用户 IP 信息从而避免用户大致地理位置被泄露,保护用户隐私。
  2. 规避网络审计:中国以及伊朗等国家有着广泛的网络审计,使用代理服务器可以将网络请求加密从而实现访问相关网站。
  3. 绕过社媒以及流媒体平台内容地区限制:大型的流媒体平台会对不同国家的用户提供不一样的视频内容,拿 Netflix 举例,不少的中文资源只对香港以及新加坡的用户开放,这时候除了到相应的地区旅行,使用网络代理也是访问到这些内容的较为便捷的手段。
  4. 广告过滤:这其实是较为不常见的应用场景,但是我们确实可以通过关键字匹配以及 DNS 过滤的方式在代理服务器上配置好广告过滤。

怎么获取网络代理

通常情况下人们通过三种方式来获取网络代理:

  1. 在手机的应用商店下载 XXVPN、XX 加速器
  2. 在代理提供商(俗称机场)处购买订阅
  3. 购买服务器自行搭建

这几种方式获取代理的安全性和可控性层层递进,最推荐的当然是自行搭建,但这需要一定的计算机技能。图省事的话购买机场订阅也是一种不错的选择,但是市面上的机场良莠不齐,跑路的风险也比较大。在我看来使用应用商店的某某免费加速器是最愚蠢的行为,数据安全得不到保障不说,还容易给查水表。

购买机场订阅时应尽量选择月付的方式,防止服务商跑路造成大量经济损失

自建代理

看到这里我们就要说到最理想的代理手段:自建代理了,要想大概看懂下面的内容就得先看看等等会提及的一些名词的解释

名词解释

Trojan:代理协议的一种类似的协议还有Shadowsocks、Vmess等等

Xray:一个代理协议“平台”,支持包括Trojan在内的多种协议

V2Board:一个用于节点用户、节点以及订阅管理的WEB应用

XrayR:Xray的服务器后端 用来对接V2Board

客户端:用户在使用代理时用到的图形界面,客户端可以说是五花八门,但本质上就分为V2系和Clash系

自建代理能为你带来更安全的加密。只要服务器的控制权还在你的手上那么大部分的中间人攻击 (mitm) 都可以被杜绝,你还可以根据自己的喜好选择加密方式、流控以及是否存留日志。想要搭建自己的代理那你就要有自己的境外的服务器以及一个用作 TLS 加密的域名。购买服务器后我们做好域名解析并在服务器上填好配置安装好服务端,这样一个代理节点就搭建完成了,在要使用代理的电脑手机等设备的客户端上将节点导入即可愉快使用。

境外服务器和域名

域名购买

购买服务器以及购买域名是自行搭建代理的第一步,在购买域名时我们应该在 GODADDY 或者 Google Domain 上面注册域名,在中国的域名注册商上实名制注册域名用作代理伪装是愚蠢的事情。

服务器配置以及线路

对于用作网络代理的服务器而言,服务器的配置高低并不重要,只要符合安装代理软件的最低要求即可。因此购买服务器时我们更应该注意它的线路,这就跟高速公路和国道一个道理,一个好的线路能让你观看 Youtube 以及 Netflix 时无需等待加载。当然啦就就跟常识一样,高速公路收费会比国道高,购买优质线路的服务器要付出的金钱也更多。

如果你只是日常上上 Twitter 偶尔看看 Youtube ,那么最普通的 163 骨干网线路也能满足你的需求。但是如果你想看在晚高峰看 4K 清晰度的 Netflix 以及各种流媒体,那么在不考虑成本的情况下购买 IPLC 专线当然是最好的选择,但是 IPLC 并不对个人开展业务,我们普通人只能通过其下游购买,而且高昂的价格也让人萌生退意。考虑到预算,我们可以根据自己家里的ISP(网络提供商)来选择自己要购买的服务器的优化线路,联通用户可以购买 AS9929 线路,移动用户可以选择 CMI 线路电信用户则可以选择 CN2 GIA 线路。

为了匿名性请不要使用自己真实身份的 Credit/Debit Card 进行域名注册及服务器购买的付款。(使用支付宝等支付方式更是弱智行为)

代理协议

在有了服务器和域名后我们就要开始选择我们的代理协议了,尽管现阶段我们能用的代理协议有很多,但是使用近两年出现的协议是比较明智的选择。

新兴协议的开发者们可能号称自己能完美避开监管,但事实上这决无可能。翻墙这件事情本身就是猫鼠游戏,无论你使用的协议有多么“优秀”你都会留下很多特征,这种特征是不可避免的。使用网络代理加密流量后你的流量就一定会和正常的上网流量有区别,典型的例子就像 Trojan 和 VMESS 的 TLS in TLS 特征。

而过于老旧的协议其流量特征已经被监管部门摸清楚了,搭建后很会就会被封禁。像 shadowsocks 这种非 TLS 加密的流量特征过于明显大概率会在搭建后不久就被封禁。

在选择协议时我们也应该注意客户端支持,一些新的协议固然有其优势,但是客户端支持差的话用户体验会很差,毕竟你不能指望用户们都用命令行开启代理。

就我个人而言我偏好于使用 Trojan 作为代理协议,客户端支持丰富以及轻量是我选择这个协议的原因。由于服务器较多我偏好于使用 V2board+Xrayr 来搭建管理节点。具体搭建步骤以及节点对接方法可以看他们的官方文档。在搭建代理时我们应该避免使用来路不明的 Github 项目或者是某些博客提供的一键脚本。

分流规则

这是一个进阶选项,我们在使用 Clash内核的客户端时我们可以在V2board的服务端写好customer.clash.yaml 文件来为客户端下发带有流量规则的订阅,这样我们便可以控制我们的网络流量,让该走代理的流量走代理,该直连的流量直连。让用户有更好的体验。毕竟我们并不需要让我们访问百度等境内网站的流量也经过代理。

可以翻阅一下Clash文档,在了解clash配置写法后结合规则集我们就能轻松的写出自己的分流配置。PS:V2board上的proxy group支持正则写法。

流媒体服务

DNS解锁

我们可以通过修改服务器的nameserver来为代理服务器配置不同区域的流媒体解锁,解锁器上搭建好sniproxy以及dnsmasq我们即可轻松的为所有的节点配置DNS解锁。具体方法请看:DNS 解锁流媒体

二级代理解锁

二级代理也是比较方便的方法,在服务器不多的时候用起来是比较方便的。针对不同的服务端有不同的配置方法,但本质上其实大同小异,只要你熟悉Xray的配置文件那么配置起来都很简单。

x-ui配置方法:X-ui 二级代理解锁流媒体

XrayR配置方法:XrayR 二级代理解锁流媒体

如何使用搭建好的代理

要使用代理只需在电脑手机等设备的客户端上将节点导入即可愉快使用,这句话听起来很容易但是对于小白而言并不是简单的一件事情,首先代理客户端鱼龙混杂他们的界面、节点导入方式以及对协议的支持都不相同。

我个人比较推荐使用 Clash 内核的代理客户端,原因很简单相较于 V2 系 clash core 的客户端可以在服务端写好带分流的配置文件导入即可使用。

如果你使用的是安卓系统那么你可以安装 Clash for Android。

Windows 用户可以使用 Clash for Windows

mac 以及 IOS 用户可以选择 Stash(付费软件)

结语

或许很多人觉得自建代理多简单事情,找个脚本对着输入就完事了,完全犯不着写这么一大堆东西。可正因为这种态度才会让那些想自建代理的小白一头雾水,甚至在相关的论坛内大部分用户都依赖于一键脚本,而这些脚本的用户自己都弄不明白很多概念,在这个领域要投入大量的时间才能达到自己的目的(或许他们就是想看个流媒体但是苦于解锁的机器速度太慢但又不会写二级代理配置)。

能用和好用从来都是两回事,一个好用的代理应该从搭建难易度、配置分发、分流以及客户端上都相对便捷,而目前我能看到的教程普遍内容离散,很少有人能把一整个流程理清楚。

本文也仅仅是记录自己在自建代理的一些流程以及思路,如有错误欢迎指出。

Last Modified: October 9, 2023