1
cnbatch 2022-06-24 00:47:01 +08:00 4
如果你用过 wireguard 和 OpenVPN 之类的虚拟网卡 VPN ,并且在这些 VPN 连接完成后看过路由表,就会发现他们的做法跟你的一样,专门针对远程服务器 IP 单独设一条路由,走原先的路径。断开连接后,再恢复回去。
每切换一次远程节点,都要更新一次路由表。 所以,既然选择了虚拟网卡的方式,那么更新路由表并没什么不妥。 |
2
gfreezy 2022-06-24 00:54:37 +08:00 via iPhone
可以用 fakedns 的方法,把需要走 tun 的域名全部解析到一个特殊的网段,这个网段的 IP 在路由到 tun
|
3
kennylam777 2022-06-24 05:34:03 +08:00
Routing table 可以自定義的,不必去動 Main 。
ip route --help 看看 另外還可以用 ip rule 指定網段使用自定義的 routing table |
4
kennylam777 2022-06-24 05:35:57 +08:00
噢,看到了是 Windows ,那沒辦法了,OpenVPN 也是把 remote server 的 IP x.x.x.x/32 via y.y.y.y 加到 routing table 後才加 0.0.0.0/0 的
|
5
nojsja OP @gfreezy #2 这个倒是了解过,考虑加入支持,但只能解决域名访问的问题。另外多级 dns 缓存的情况下好像仍有 dns 污染的问题,虽然已经设置 TTL 为 1 。
|
6
nojsja OP @kennylam777 #4 linux 就没这么多麻烦事儿了😂
|
7
kennylam777 2022-06-24 07:19:39 +08:00
|
9
gfreezy 2022-06-24 08:23:35 +08:00 via iPhone
@kennylam777 每个域名分配唯一 IP 好像就可以了
|
10
lovelylain 2022-06-24 09:04:21 +08:00 via Android 1
本机透明代理是一个难解的难题,之前也折腾过,给局域网内其他 ip 代理或者 bridge 容器内代理都好实现,但是本机或 host 容器把本机路由全导给代理,代理本身又要走原来网关出去,目标 ip 固定还好说,但是我是代理内部做分流,
|
11
Ehco1996 2022-06-24 09:06:38 +08:00 1
可以看一下 clash fake-ip 的实现
|
13
caobug 2022-06-24 11:12:13 +08:00 via iPhone
直接用 wintun
|
14
sslyd 2022-06-24 11:14:05 +08:00
用一条静态路由指定 ss-server??
|
15
ty359 2022-06-24 18:21:12 +08:00
我弱弱的问一句,shadowsocks 图形化客户端的全局代理是怎么实现的么
|
16
nojsja OP @ty359 #15 那个是操作系统提供的 proxy 接口,通过系统设置界面自定义 http 或 socks 代理地址和端口就行。不过一般只能浏览器用,而且只能代理 tcp 流量。
|
18
yaott2020 2022-06-25 09:08:51 +08:00 via Android
没啥好的办法,14 楼算是目前最普遍的方式了。linux 下倒是可以用 uid/gid mark 来规避
|
20
gfreezy 227 天前
@liufengsoft722 fakedns ,需要将需要中转的域名都解析道 10.11.*.* ,然后 10.11.*.* 这个网段的 ip 都路由到 tun 。
自己实现一个 dns 服务器,然后将本机 dns ip 设置为自己服务器启动的地址。 |