对于公司网络环境的代理配置对策

Created
Oct 17, 2019 1:48 AM
文章发布已有
734 天

说明:

本文纯属实验,并不代表实际使用情况;实验虽然在生产环境中进行,但过程中没有使用任何生产相关软件和文件;并且实验中使用的所有节点均为个人服务器,数据流向可控,安全性有保证。

目前公司网络主要存在几个问题:

  1. 对于不少国内站点的无端屏蔽,比如公司屏蔽了 pstatp.com 这个域名,导致查询资料时,部分使用这个域名的图床图片无法加载。对于微信、QQ等软件,无法加载头像或者聊天图片。
  2. 对于国外网站访问,能访问,但是异常缓慢,线路较差。
  3. 对于具体项目中,有的需要远程桌面的,没有对目标地址进行网络加速。

应对思路:

  1. 对于第一点中的网页无法访问的问题,可以直接使用ss解决,配合国内节点即可轻松绕过限制。而对于软件来说,协议可能比较复杂,诸如可能会使用ss不支持的UDP,此时只能使用VPN等其他方式解决问题。
  2. 对于第二点的问题,在域名到达公司内上一级服务器前抢先根据域名对应的策略先行解析,走自己的节点。
  3. 对于第三点,与第二点同理。

具体解决方案

Windows

如果不考虑微信、QQ等软件,一个ss客户端即可解决问题。但是如果需要解决上述软件的问题,就需要仔细配置。有两种常用但不可取的方式,首先是软件内配置代理。QQ和微信软件内都可以配置代理,我们只需要将其连接到ss客户端本地socks5代理端口,但这样首先无法解决诸如UDP等方式传输的数据,其次就是ss客户端无法决定程序连接到本地socks5端口后,走那一条代理线路,只能走默认的Proxy策略,也就是海外线路,这会造成账户登陆的异常,导致账号冻结。另一种是系统全局VPN,这样虽然解决了微信和QQ的使用问题,但无法满足第2、3条的使用需求。

所以此时需要Proxifier这款软件,除此之外,还需要另一个ss客户端。所以我这里采用了三个软件,分别是Proxifier+Clash for Windows+Shadowsocks原版客户端。

Clash for Windows 主要满足第一条的前半条以及2、3两条的需求、Shadowsocks 为满足QQ、微信等的正常使用提供了条件。Proxifier 起的是协调作用。下面具体说下如何配置。

对于 Clash,正常编写规则即可,境外网站走境外代理,被屏蔽的国内网站走国内代理,并且记下Clash 本地 socks5 代理的端口,默认是 7891。Clash 配置好后,正常启动。

对于 Shadowsocks 客户端,只需要添加给微信和QQ使用的国内节点即可,添加完毕后,记下 Shadowsocks 客户端的本地 socks5 代理端口,默认是1080。但不要打开Shadowsocks的开关,保持关闭状态。

image

Proxifier中,关于 Proxifier 的使用,之前有写过一篇教程,可以看看那个,这样对这个软件有个大致的了解。在 Proxifier 中,我们让QQ和微信走 Shadowsocks 客户端的 socks5 的本地代理端口。其他流量走 Clash 的。当然如果你在使用中发现一些需要走国外节点的程序所使用的协议也不被ss支持,比如我这里的远程桌面,不管是RDP还是RDP over UDP,都是不被ss支持的,也可以在这里单独再添加一下(虽然Any那里已经包括了,但实际上用起来还是有差别,可能是玄学)。

image

这样配置完后,你会发现流向Clash的流量都不被Clash的规则识别了,原因是所有的域名在Proxifier这里都被解析掉了,到Clash里只有IP地址,所以以域名形式的规则就失效了。所以要修改 Proxifier 的解析策略。

image

点击这里进行解析设置,在弹出的窗口中,勾选 Resolve hostnames through proxy,这样,流向Proxifier 的域名就会原封不动地交给下一级的代理工具去解析,Clash 里的规则就又可以使用了。

image

macOS

macOS 下,使用 Surge 便可解决所有问题,对于无法访问的网页,除了使用国内节点,还可以选择不同的网络接口,从而使用手机热点,方便直接

新建一个代理,选择“特定网络接口”,这里填入 Wi-Fi 的 BSD Name

image

BSD Name 可以在 活动 选项卡里的 网络接口 里看到

image

之后,将所有屏蔽的规则弄到一个策略组里,然后策略组可选使用 Direct 和 4G 即可

此外,公司的 DNS 问题也比较多,对此,可以在设置里选择不使用公司的 DNS,但是对于内网的一些域名,还是要添加一些例外,仍然使用 DHCP 的 DNS 地址

image