背景:
首先我要说的是,网络不是我的强项,所以我可能会遗漏一些细节,如果需要的话我很乐意提供。
我的公司使用 Zscaler VPN 软件,该软件目前仅适用于 Windows,不适用于 Linux。
我一直尝试在我的 Linux 主机和 Windows 客户机之间建立一座桥梁,以便访问 Linux 中的 VPN,但到目前为止还没有成功。
设置:
我的主机运行的是 Kubuntu 19.10 和 VirtualBox 6.0,并连接到 wifi 网络。客户虚拟机运行的是 Windows 10 Home,并设置为使用桥接连接连接到网络。
Windows VM 设置:
Adapter 1:
Type: Bridged
Name: wlp2s0
Adapter 2:
Type: Host-Only
Name: vboxnet1
Windows 网络配置:
- 以太网是主机与互联网连接的默认适配器
以太网 2 是我在 VirtualBox 中设置的仅主机适配器
以太网 3 是 Zscaler VPN 适配器
路由步骤:
在 Ubuntu 中,我运行以下命令来设置路线:
添加本地IP别名:
sudo ip a add 192.168.100.2/24 dev vboxnet1
添加路由(192.168.150.71是我想要通过VPN访问的地址):
sudo ip route add 192.168.150.0/32 via 192.168.100.1 dev vboxnet1
输出ip route
:
default via 192.168.1.1 dev wlp2s0 proto dhcp metric 600
169.254.0.0/16 dev wlp2s0 scope link metric 1000
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.8 metric 600
192.168.100.0/24 dev vboxnet1 proto kernel scope link src 192.168.100.2
192.168.150.0 via 192.168.100.1 dev vboxnet1
输出ip addr
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 5c:80:b6:30:a4:76 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.8/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp2s0
valid_lft 83279sec preferred_lft 83279sec
inet6 fe80::6792:aa03:5551:9b72/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: br-6926c7d5e0a0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:d4:3c:61:43 brd ff:ff:ff:ff:ff:ff
inet 172.22.0.1/16 brd 172.22.255.255 scope global br-6926c7d5e0a0
valid_lft forever preferred_lft forever
inet6 fe80::42:d4ff:fe3c:6143/64 scope link
valid_lft forever preferred_lft forever
6: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 02:42:ab:02:07:3b brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
2823: veth4b520eb@if2822: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-6926c7d5e0a0 state UP group default
link/ether 42:f7:df:30:3c:16 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 fe80::40f7:dfff:fe30:3c16/64 scope link
valid_lft forever preferred_lft forever
2112: enx9cebe8755d5b: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 9c:eb:e8:75:5d:5b brd ff:ff:ff:ff:ff:ff
2275: vboxnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 0a:00:27:00:00:01 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.2/24 brd 192.168.100.255 scope global vboxnet1
valid_lft forever preferred_lft forever
inet6 fe80::800:27ff:fe00:1/64 scope link
valid_lft forever preferred_lft forever
连接测试:
在 Windows 中:
$ nc -vz 192.168.150.71 30845
Connection to 192.168.150.71 30845 port [tcp/*] succeeded!
在 Ubuntu 中:
$ nc -vz -w 10 192.168.150.71 30845
nc: connect to 192.168.150.71 port 30845 (tcp) timed out: Operation now in progress
我可以通过新的虚拟适配器成功 ping 我的 Windows VM:
$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=128 time=0.297 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=128 time=0.322 ms
我遗漏了什么?:S