Closed babyyouyou closed 2 years ago
没有写回去,通过WinTun的都会被处理,通过添加路由规则处理哪些进入WinTun,哪些不进入WinTun
我主要看的过滤器部分的代码流程,但是我在Windows平台测试使用,无论是按域名还是应用过滤,都没有生效,相关的过滤代码也没有执行,请问是需要加什么tags吗(我对golang不太熟悉)? 另外,您有考虑过使用lwIP替换gvisor的功能,以及使用TAP替换Tun网卡吗?我很想参与这个开源项目并提交这些优化,但是我对golang仅限于了解了基础语法。
操作系统: Windows 10 构建命令: shadow主目录下执行 go build -tags socks 执行方式: 以管理员权限运行 执行结果:与V2Ray搭配,能正常访问google、youtube等国外网站,但是按域名和应用代理规则无效(json配置文件中配置了域名和应用过滤项),所有流量都走了代理,例如baidu。 发现问题:每次执行shadow.exe,程序大概率会卡在创建WinTun阶段,猜测应该是之前安装过,没有卸载干净,该问题我看项目issue中也有其他人提出过,并且我看WireGuard-Windows源码也印证了这一点,但是我并没有深入去了解背后原因,它调用了driver.UninstallLegacyWintun方法。
WinTun 模式不支持应用规则,域名应该是可以用的,我现在手头没有 Window 设备,没办法测试
您的意思是只有通过WinDivert方式才能实现按应用代理吗?另外,按照这种思路,WinTun方式应该只能实现按IP代理,因为可以通过将需要走代理的IP设置到系统路由表中,达到只将需要走代理的流量导入到WinTun中,而其他流量则直连。而按您所说,按域名也可以,我不太明白,域名对应的IP不是会经常变化吗,例如通过同一个域名查询IP,十分钟前和十分钟后的查询结果都可能不相同?
使用 FAKE IP 把要代理的域名解析成 198.18.0.0/16
的 IP 就行了
使用Fake IP方式,只需在路由表中添加DNS服务器IP以及198.18保留网段条目,将该部分流量导入tun中,当收到域名查询流量,就通过Fake IP池返回198.18网段的IP是吗?
差不多
你好,在Windows平台使用WinTun虚拟网卡接管流量,在过滤器处理阶段,需要走代理的流量写入协议栈,而如果是不需要走代理的流量,我看你又写回了WinTun,那么该流量会按照什么路径出去呢?