公司改革 VPN ,换上了零信任VPN ,不想在所有电脑上面都装,于是开了一台虚拟机专门用于转发 VPN ,参考了 V 站一篇文章 https://www.v2ex.com/t/877112 ,之前只有单一 VPN 功能的情况下转发成功了,现在换成了这种,转发就没效果了。
家庭内网:192.168.0.0/22
公司 VPN 内网:10.0.0.0/8
公司 VPN DNS 服务器:10.44.X.X 10.95.X.X
左边是 VPN 机器上面的 DNS ,即公司内网 DNS ;右边是主路由 openwrt 的,用于把相关匹配到的公司内网域名引到 DNS 服务器去做解析
openwrt 上面的静态路由,用于定位 DNS 服务器和相关公司内网 IP 流量的转发(这一步实际上可以放到内网需要连 VPN 的机器上面去做,因为我这边内网只有 192.168.0/22 网段,所以直接简单直接放到路由器去做了)
VPN 机器是 192.168.0.104
uos@uos:~$ cat /proc/sys/net/ipv4/ip_forward
1
uos@uos:~$ sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/22 -o tun0 -j MASQUERADE
uos@uos:~$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.0.0/22 anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
# Warning: iptables-legacy tables present, use iptables-legacy to see them
VPN 机器通过 ping 和 nslookup 得到的 IP 竟然不一样,traceroute 和 ping 的结果是一样的,出来一个 198.18 段
uos@uos:~$ ping wiki.xx.com
PING wiki.xx.com (198.18.0.11) 56(84) bytes of data.
64 bytes from 198.18.0.11 (198.18.0.11): icmp_seq=1 ttl=64 time=0.734 ms
uos@uos:~$ nslookup
> wiki.xx.com
;; Got recursion not available from 10.44.X.X, trying next server
;; Got recursion not available from 10.95.X.X, trying next server
Server: fd22:X:X::1
Address: fd22:X:X::1#53
Non-authoritative answer:
wiki.xx.com canonical name = wiki.xx.com.
Name: wiki.xx.com
Address: 10.57.22.11
客户机也无法连接公司内网域名,虽然能 ping 通内网 IP ,但是不知道怎么能得到解析结果为 198.18 的
x@DESKTOP-XXXXX C:\Users\x
# ping wiki.xx.com
正在 Ping wiki.xx.com [10.57.22.11] 具有 32 字节的数据:
Control-C
# ping 198.18.0.11
正在 Ping 198.18.0.11 具有 32 字节的数据:
来自 198.18.0.11 的回复: 字节=32 时间=1ms TTL=63
1
hingle 361 天前 1
198.18.0.0/15 很可能是有 clash
|
2
hanssx OP @hingle 我客户机上面确实有 clash for windows ,其他机器上面是没有的,VPN 机器只有个 QQ 和公司*零*信*任*,多出来的这个 198.18 确实理解不了,可能带*零*信*任*的 VPN 没办法这么搞吧,哎,实在不行只能挨个机器装了。
|
3
joyanhui 361 天前
赞同#1 同样感觉是 fake-ip 惹得祸
|
4
Aurorataro 361 天前
198.18 段 估计是 Clash 给你分配的 Fake ip ,可以设置相关域名绕过 Clash 核心
|
5
hanssx OP @Aurorataro
@joyanhui 老哥们,但是我只有客户机上有 clash for windows ,链路是这样的:家庭内网客户机(192.168.0.100)->VPN 机器(192.168.0.104 当然拨完 VPN 有一个 10.0.0.0/8 的网卡)->公司内网(10.0.0.0/8) 我得到 198.18 段是在 VPN 机器上面得到的,家庭网关是 192.168.0.1 ,它虽然是 openwrt ,但是它的 openclash 我并没有开启,旁路由是 192.168.0.2 上面倒是开了 openclash ,但是它只服务于特定的几台机器,并不在上面的机器里面。 fake ip 起码也要经过 clash 才能得到吧? |
6
nanshaobit 360 天前
qax ?
|
7
hanssx OP 客户机:想通过 vpn 机器上公司内网的机器
验证了一下应该不是 clash fake-ip range ,因为 1 、我把旁路由直接关机了,客户机 clash 也退掉重新启动了电脑,还是那样。 2 、我接通 vpn 之后 ping 的是 198.18 ,断开 vpn 之后 ping 不通。 3 、链路上面不涉及客户机和旁路由的 clash ,是 vpn 那台机器上面就会得到那个 ip 最后发现 转发 IP 层流量是成功的,不过只能用 IP 访问,比如 198.18 访问,因为域名访问得不到正确的 198.18 段 IP ,但是通过 IP 访问依然需要认证 web 端零信任,依然没法正常使用。 最后放弃。 |
8
pagxir 360 天前 via Android
你 openwrt 能 ping 通你们公司的 DNS 么。有可能你需要在 VPN 的机器上安装一下代理转发
|