routes - 将局域网流量转发到 VPN IPsec
问题描述
我在 Linux 中使用 docker 容器来设置 IPsec ike 连接,特别是它是一个 stono/ike 容器。
docker run -d --privileged --net=host -v sites:/sites stono/ike:latest site user password
此容器在主机中引发一个 tap0 接口,并为 VPN 的每个子网创建路由。VPN 在 192.168.50.0/24 范围内为我提供了一个 IP 作为客户端,并允许我从中访问这是路由表:
192.168.50.0/24 via 192.168.50.14 dev tap0 proto static
192.168.51.0/24 via 192.168.50.14 dev tap0 proto static
192.168.52.0/24 via 192.168.50.14 dev tap0 proto static
....
如何在我的局域网上共享这些网络?
- IPV4 转发已启用
- 我创建了 iptables 规则来接受流量:
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -o tap0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tap0 -j MASQUERADE
最后,我在局域网中的另一台计算机上创建了静态路由,但我只能 ping ip 192.168.50.14,由 VPN 服务器在 tap0 接口中分配给我的 ip,该网络中的其余主机,或其他的,我无权访问。
sudo ip route add 192.168.50.0/24 via 192.168.1.202
sudo ip route add 192.168.51.0/24 via 192.168.1.202
...
解决方案
如果您使 NAT 规则更明确,会发生什么?(我假设 192.168.1.0/24 是你的局域网范围)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.50.14
推荐阅读
- java - 生成包含两列过滤和汇总数据的新列表
- r-package - 在 Windows 10 上使用 Rtools4.0 构建 R 包
- google-app-engine - 将图像上传到 Google 存储桶
- r - 提取具有 NA 值的给定缓冲区附近的像素值和坐标
- javascript - 这种移动导航菜单的实现是否与 IOS 不兼容?
- angular - 如何让 Angular Universal 等待 API 响应?我使用了 transferState、resolve on route 等
- python - ValueError:加载先前保存的模型时轴与数组不匹配
- sql - oracle 中的 NVL 函数不返回任何记录
- javascript - Kendo-UI MVC Grid Action Delete 路由到 Create 并且 Create 被多次调用
- r - 用 sjPlot 绘制 glmer 模型