Clash
Clash copied to clipboard
请问下增强模式是做了什么处理
最近使用过程中发现,虚拟机无法连接外网,打开了增强模式
后才能访问外网,就算程序退出了虚拟机也无法访问.
然后个人发现:
发现1:不开增强模式,ping百度的延迟在40ms左右,开了增强模式延迟在1ms左右
发现2:开了增强模式后,终端不用再额外配置http_proxy和https_proxy也能直接访问谷歌了
所以想搞明白增强模式
的原理以及到底做了些什么事情,下次出现网络问题我好排查
正常来说,代理只是对你浏览器生效了。但是你其他应用没生效,比如 使用idea下载部分github或者某些别的官方仓库依赖会失败,这时候都是开增强模式下载依赖。简单来说,开增强模式下idea自带terminal 使用ping www.google.com可以ping通,反之不通。其他应用也是一样。
增强模式创建了TUN虚拟网卡(需要root权限,macOS下可以通过HelperTools的方式处理,比如ClashX-Pro的Helper文件位于 /Library/PrivilegedHelperTools/com.west2online.ClashXPro.ProxyConfigHelper
),并配置路由表,目的是将数据转发到TUN设备上,但是由于TUN模式处于网络层,需要通过gVisor/System网络栈来获取传输层的数据,经过本地端处理后,将数据转发到服务节点。
不过由于使用了TUN模式,一般需要设置本地的DNS服务器,目的是使用FakeIP地址......具体的细节可以看clash源码 :)