公司改革 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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.