我有一个正在运行的 OpenVPN 服务器,并在 OpenWRT 路由器上运行,并且想要使用OpenVPN 客户端作为网关对于连接到我的路由器的一些本地计算机。
我所做的/已经有效的:
- 在 OpenWRT 路由器 (
192.168.0.1
/10.0.0.1
) 上,我可以 ping 和 ssh 到 OpenVPN 客户端 (10.0.0.6
)。 - 我已经设置了一个名为
tunnelpi1
(/etc/iproute2/rt_tables
在路由器上)的新路由表:
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
10 tunnelpi1
192.168.0.217
我已将路由器配置为通过 OpenVPN 客户端路由本地客户端 () 的流量10.0.0.6
,方法是将客户端 IP 添加到tunnelpi1
表中并为此表设置默认路由:
ip rule add from 192.168.0.217/32 table tunnelpi1
ip route add default via 10.0.0.6 dev tun table tunnelpi1
- 在本地客户端 ( ) 上,一旦添加路由,
192.168.0.217
我就无法再 ping 到,并且当我删除它时可以再次 ping 到。所以看起来规则正在做一些事情(其他客户端不受影响,这很好)。8.8.8.8
8.8.8.8
- OpenVPN 客户端 (
10.0.0.6
) 具有完全正常工作的互联网连接(通过其自己的eth0
)。ping 8.8.8.8
工作没有任何问题。它的默认网关不是VPN(tun0
)而是它的eth0
接口,这正是我想要的。 - 在 OpenVPN 客户端上,我启用了 ip 转发并通过 iptables 添加了 NAT 规则,以通过以下方式转发所有内容
eth0
:
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
**什么不起作用:我希望流量192.168.0.217
通过10.0.0.6
.但这似乎不会发生。添加表规则后,我无法 ping 任何内容。我怀疑 OpenVPN 阻止了某些内容,或者 openvpn-client 上的 iptables 设置错误。我不知道如何从这里继续。
有什么建议 ?