![使用特定网络设备到达子网](https://linux22.com/image/198470/%E4%BD%BF%E7%94%A8%E7%89%B9%E5%AE%9A%E7%BD%91%E7%BB%9C%E8%AE%BE%E5%A4%87%E5%88%B0%E8%BE%BE%E5%AD%90%E7%BD%91.png)
我的设置如下:
本地网络
192.168.1.1/16
:FritzBox 7530 作为路由器/调制解调器192.168.1.100/16
:我的开发机器(Ubuntu 20.04)
FritzBox 创建 VPN 隧道来通过 Internet 连接远程计算机。
远程网络
192.168.0.254/16
:远程路由器/调制解调器192.168.0.10/16
:我的远程计算机的 eth0 地址(Ubuntu 20.04)192.168.1.200/24
:VPN 连接后我的远程计算机的 tun0 地址(由我的 FrtizBox 分配)192.168.1.30/16
:我要连接的目标设备
什么有效
如果我禁用 VPN 连接 (tun0) 并使用 VNC 软件远程登录到我的计算机 (192.168.0.10/16),我可以到达目标设备 (192.168.1.30/16),因为(我猜)两者都有相同的网络掩码。
什么不起作用
如果我从本地计算机 (192.168.1.100/16) 启用 VPN 连接,我不能通过 tun0 (192.168.1.200/24) 到达目标设备 (192.168.1.30/16),因为该设备的网络掩码错误。
不幸的是,我还不知道如何更改 FritzBox 中 VPN 连接的网络掩码。
在远程计算机 (192.168.1.200/24) 上,这是路由表:
$ ip r
default dev tun0 proto static scope link metric 50
default via 192.168.0.254 dev enp2s0 proto dhcp metric 100
<public ip> via 192.168.0.254 dev enp2s0 proto static metric 100
192.168.0.0/16 dev enp2s0 proto kernel scope link src 192.168.0.10 metric 100
192.168.0.254 dev enp2s0 proto static scope link metric 100
192.168.1.0/24 dev tun0 proto kernel scope link src 192.168.1.200 metric 50
问题
是否可以创建一个规则,允许我从本地开发计算机 (192.168.1.100/16) 通过远程计算机 (192.168.1.200/24) 上的 tun0 到达目标设备 (192.168.1.30/16) eth0 接口(192.168.0.10/16)?
这样它应该可以工作,因为两条腿都是有效的:
- 第 1 条:本地开发机 (192.168.1.100/16) <---> 远程 tun0 (192.168.1.200/24)
- 第 2 条:远程 eth0 (192.168.0.10/16) <---> 目标设备 (192.168.1.30/16)
请注意,我没有对远程计算机的物理访问权限,因此在更改网络设置时必须小心,否则我将无法再登录!