![Openvpn 不通过 tun 接口路由到互联网](https://linux22.com/image/555344/Openvpn%20%E4%B8%8D%E9%80%9A%E8%BF%87%20tun%20%E6%8E%A5%E5%8F%A3%E8%B7%AF%E7%94%B1%E5%88%B0%E4%BA%92%E8%81%94%E7%BD%91.png)
我已经使用 tun 设置了 openvpn。我可以在客户端和服务器之间双向 ping。但我无法从客户端 ping 到 8.8.4.4(作为测试)。
我已经添加了 nat:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
但事情似乎并没有从 tun0 接口路由到 eth0。
tcpdump
ontun0
表示数据包正在进入(在本例中对 8.8.4.4 进行 ping 测试):
12:21:55.956564 IP 10.8.0.10 > google-public-dns-b.google.com: ICMP echo request, id 512, seq 17153, length 40
但除了我的 ssh 流量之外没有显示任何其他内容tcpdump
。eth0
我有一个来自 vpn 客户端的 ping 循环,我在我的tcpdump
上看到了它,但我在我的上tun0
没有看到任何“google” 。tcpdump
eth0
有什么想法吗?我可以从 openvpn 主机顺利运行此 ping。除了 MASQUERADE 操作外,iptables 为空,默认为接受。
答案1
啊哈,这是本指南中将 Linux 配置为路由器的第一步...打开 IP 转发。
http://www.cyberciti.biz/tips/linux-as-router-for-dsl-t1-line-etc.html
答案2
Iptables -A 转发 -j 接受?
答案3
为什么-j MASQUERADE
@-o eth0
如果你说的是我已经使用 openvpn 设置了屯?
您需要验证:路由(实际上是转发)已启用(sysctl),路由已正确设置(所需的路由已安装),NAT 已正确设置(如果需要)。