我一直在寻找问题的解决方案,但我不确定我是否提出了正确的问题,或者这是否可能。
我有一个运行 openwrt 的 linksys 路由器。当我和我的一些同事出差时,我会随身携带路由器。在我们必须工作的场所,我可以将路由器的 WAN 端口插入场所的本地网络,然后我和同事将我们的计算机插入我的 openwrt 路由器。
这非常有效。但有时我们需要通过 VPN 访问公司计算机,在这种情况下,每个人都必须进行自己的 VPN 连接。我宁愿在我的 openwrt 路由器上建立 VPN 连接并将其分享给我的同事。在VPN上建立VPN连接不是问题,共享它就更困难了。
我不想路由全部通过 VPN 的流量,我只希望 NAT 后面的人能够访问公司的网络,就像他们自己进行 VPN 连接一样。我还配置了我的openvpn
配置文件,以便整个流量不会通过 VPN 路由(因为这非常慢),我只想访问公司网络。
在我的电脑上:
$ openvpn myconfig.vpn
...
/sbin/ip link set dev tun0 up mtu 1500
/sbin/ip addr add dev tun0 192.168.30.2/24 broadcast 192.168.30.255
/sbin/ip route add <company's IP>/32 via 192.168.25.1
/sbin/ip route add 192.168.0.0/24 via 192.168.30.1
Initialization Sequence Completed
192.168.25.1
是我的默认网关。该公司的网络是192.168.0.0/24
.
在我的笔记本上我安装了isc-dhcp-server
.我添加了
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface in0 -j ACCEPT
in0
其他计算机将连接到的网络接口在哪里。in0
配置为192.168.15.1/24
.
我以桥接模式创建了一个 VirtualBox VMin0
并启动了该 VM。它从我的 dhcp 服务器获取 IP ( 192.168.15.100
),我可以毫无问题地从虚拟机访问互联网。在我的笔记本电脑中,我可以做ping 192.168.0.9
这件事,这是我公司网络上的一台计算机。如果我在虚拟机上执行相同的操作,ping
则会阻塞。
这就是我不知道如何继续的地方。我发现了很多线程,人们希望通过 VPN 路由所有流量。另一方面,我不想这样做,我只想192.169.0.9
从我的虚拟机访问。我想要的是,当对 IP 的请求192.168.0.0/24
传入时in0
,我想将其路由到 vpn 隧道而不是我的网关192.168.25.1
。这可能吗?如果可能的话,如何实现?