我的网络使用 192.168.100.0/24
路由器网关是192.168.100.1
我有一台 Windows 电脑,地址是 192.168.100.15
我在 SBC 上全新安装了 ubuntu 20.04,ip 为 192.168.100.207 lan0
在此 sbc 上,我在 192.168.1.0/24 vpn_mom 上配置了一个 vpn 客户端
DHCP 已为 vpn 适配器分配了 ip 192.168.1.166
我可以毫无问题地 ping 该远程子网上的其他机器,包括 192.168.1.1
我还为chris.com(34.174.225.83)设置了一条路由,如下所示:
ip route add 34.174.225.83 via 192.168.1.1 dev vpn_mom
使路线看起来像:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 lan0
83.225.174.34.b 192.168.1.1 255.255.255.255 UGH 0 0 0 vpn_mom
link-local 0.0.0.0 255.255.0.0 U 1000 0 0 lan0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 vpn_mom
192.168.100.0 0.0.0.0 255.255.255.0 U 100 0 0 lan0
如果我从 sbc 执行到 chris.com 的跟踪路由,它就会按照我希望的方式工作,来自 vpn 网络的出站和入站流量都会得到处理,而所有其他互联网流量则会继续按预期从 lan0 工作。
然后我用这个命令设置转发:
sysctl net.ipv4.ip_forward=1
然后我将 Windows 机器上的网关更改为 192.168.100.207 (sbc) 在 Windows 机器上进行测试表明,除 chris.com 外,所有互联网流量均运行正常
检查 tcpdump 显示请求通过 sbc 上的 vpn 发送,但响应没有发送回 windows 机器 (192.168.100.15)
我已经在互联网上搜索了几个星期,但毫无收获。
答案1
尝试在 VPN 接口上添加 NAT,问题可能是目标服务器/来自另一个 VPN 端的网络不知道 192.168.100.0/24,请尝试在 VPN 接口上添加 nat。
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o vpn_mom -j MASQUERADE
答案2
远端需要一条到达的路线192.168.100.0/24
。
这条路线将是通过VPN 服务器。请记住,路由是双向的,不需要对称;数据包是一个离散单元,回复不需要遵循与前一个相同的跳数。