首先,这里讨论的VPN技术是用于个人在常规网络下,连接单位/公司的内部网络的应用场景,并且都是合理单位/公司允许的情况下,不是违规或者非法技术,下面正式开始了。
你的使用场景是,你家庭的路由器A,下面连有电脑B、手机C,其他客户端D,
正常来说,你想用电脑B,或者手机C,访问特殊网络到单位/公司,一般会让你装程序、插件、应用,这些无非都是打包带壳的EasyConnect、aTrust等东西,
而这些混合VPN有一个问题,就是关掉/停掉之后可能还会影响你正常网络,非常的烦,技术上的原因包括但不仅限于:DNS残留、路由残留、系统代理/PAC残留、虚拟网卡仍启用、WFP/NDIS过滤驱动仍在工作、Winsock/LSP或证书残留等。
我一般喜欢用一种更干净的方案,就是在电脑B、手机C的同网段下,也就是路由器下放一个客户端D,全部都代理都用客户端D去开,然后用HTTP、SOCKS5等方式分享给同网段的电脑B、手机C,
这样做的好处是完全不会改变电脑B、手机C的网络。电脑B、手机C上没有任何代理,却可以随时用HTTP、SOCKS5通过客户端D访问单位/公司的内部网络。
想把客户端D的网络分享给内网,从最小到最大化有几个层次:
应用内代理 < 系统 HTTP 代理 < WireGuard < 网关/透明网关/AP
应用内代理:比如浏览器、Foxmail客户端、微信/QQ等任何支持填写代理的程序,是一种最小化的代理,只影响该应用的上网途径,不影响电脑/手机上的其他任何程序;
系统HTTP代理:也就是Windows/手机系统层面填写的代理,你可以理解为批量填写应用内代理,尤其是对一些没提供填写代理位置的应用就得这么填,但是这个也并不能算全局代理,虽然看起来是网络层设置,实质上通常只是向应用提供一个系统级HTTP代理参数,应用是否遵守这个参数,由应用自己决定。通常会使用系统 HTTP 代理的包括:浏览器、系统 WebView、一部分遵循系统网络框架的应用、一部分应用商店和系统服务;还有一些可能完全无视系统的HTTP代理设置,会直连,主要包括:自己实现网络栈的应用、游戏、部分视频软件、部分即时通信软件、使用 QUIC/HTTP/3 的程序、直接使用 UDP 的程序、自带代理/VPN逻辑的应用、直接连接 IP 或采用特殊协议的程序;
WireGuard:很强,已经接近最底层,电脑PC因为没有有分流功能,所以要么全局梭哈,要么关闭代理;手机端倒是非常适合,因为手机端可以按应用分流;
网关/透明网关/AP:这个就不用说了,这是真·全局代理,无论是在路由器上游、在路由器本机做网关,或者在路由器下级做透明网关,还是客户端D直接用WLAN做AP发射信号,所有的流量都可以全部过代理,绝对不会漏掉。
以上只是技术层面,实际操作的话,电脑B上,建议只用应用内代理,也就是给浏览器/所需要代理的应用设置HTTP/SOCKS5代理就好;手机C上,用WireGuard合适,分流给浏览器以及需要过代理的流量用就行。
之所以这么选,就两个字,干净,因为这样做不会影响任何本机其他网络。
HTTP以及SOCKS5代理有一定的区别,总结如下:
| 项目 | HTTP代理 | SOCKS5 |
|---|---|---|
| 工作层次 | 理解 HTTP/HTTPS | 更通用的 TCP/UDP 转发协议 |
| 浏览器支持 | 非常好 | 通常也很好 |
| HTTPS | 通过 CONNECT 隧道 |
直接转发 TCP |
| 普通 TCP 程序 | 通常不适用 | 程序支持 SOCKS5 即可 |
| UDP | 通常不支持 | 协议支持,但客户端未必实现 |
| DNS | HTTP 域名通常交给代理解析 | 可远程解析,也可能本地解析,取决于客户端 |
| 兼容性 | 操作系统“系统代理”通常指它 | 更多见于浏览器和专业软件 |
| 配置难度 | 最简单、兼容系统代理 | 需要应用明确支持 SOCKS |
嫌麻烦的话一句话结论:Windows系统代理、Wifi网络链接代理,必须是HTTP,只支持这个协议;浏览器或者应用代理可HTTP和SOCKS5,都可以;明确要求SOCKS5的应用必须SOCKS5。

| 使用需求 | 推荐方式 |
|---|---|
| 浏览器使用 | HTTP 或 SOCKS5 |
| Windows 大部分普通软件 | 系统 HTTP 代理 |
| 明确支持 SOCKS5的软件 | SOCKS5 |
| 手机大部分普通 App | Wi-Fi HTTP 代理可先尝试 |
| 手机游戏、UDP、特殊 App | AP 或网关 |
| 不允许客户端安装软件 | AP 或网关 |
| 客户端可安装 WireGuard | WireGuard |
最后,简单说一下怎么用干净的代理吧,手机端用Wireguard,电脑端用HTTP/SOCKS5就好了,
浏览器的话,Windows建议用Google Chrome
因为Google Chrome设置代理极其丝滑,它可以不影响主程序都情况下创建独立的一套参数,也就是说可以有两个快捷方式,一个是直连,一个是过代理的快捷方式,这个是其他浏览器做不到的,无论是edge、Firefox还是其他,代理和直连都要手动去开启或者关闭的。
Chrome设置方法如下:
Google Chrome在 Windows 下常见两种安装路径,取决于是“仅为当前用户安装”还是“为所有用户安装”。
当前用户安装(最常见,不需要管理员权限)
C:\Users\你的用户名\AppData\Local\Google\Chrome\Application\chrome.exe
全用户安装(通常需要管理员权限)
64 位 Chrome:
C:\Program Files\Google\Chrome\Application\chrome.exe
少数旧版或 32 位 Chrome:
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
你也无需困扰,有一个简单办法,打开Chrome,地址栏输入chrome://version

就会找到,然后拿到这个路径就很简单,例如你的路径是
C:\Program Files\Google\Chrome\Application\chrome.exe
那你直接在桌面空白地方右键-新建快捷方式-直接粘贴(冒号也要带)
"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="C:\Users\你随意命名\Profiles\ProxyChrome" --proxy-server="socks5://客户端D的IP:SOCKS5端口"
然后确定,就会出现一个快捷方式,然后就可以使用了,所有这个快捷方式内的,都过SOCKS5代理。

MAC系统的话,我没这么玩过,那就用两个浏览器,一个直连,另一个设置代理,像用代理的就用设置代理的浏览器就好了,比如直连用Safari,代理的用Firefox,
不过Firefox设置代理比较坑,不只是填代理服务器的IP和端口这两个参数这么简单,它不会像Chrome一样默认用远程DNS,甚至还用什么DoH,这些都是会导致无法联网的,所以直接在地址栏输入,然后把这几个改成这个样子,就可以了。

