感谢您花时间帮助我。我正在尝试在从 PPTP VPN 服务 (ppp0) 获得的流量之间设置路由,并将其路由到我的 OpenVPN (tun0) 接口。过去几天,我尝试了各种答案中的多种解决方案,但到目前为止都无法使其正常工作。
我想要实现的目标
My Device -> ppp0 -> tun0 -> Internet
OpenVPN 客户端配置
我已添加route-noexec
以确保我可以通过 SSH 进入服务器,而无需客户端覆盖 IP 表。
client
dev tun
proto tcp
remote 185.244.215.195 443
resolv-retry infinite
remote-random
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ping 15
ping-restart 0
ping-timer-rem
reneg-sec 0
comp-lzo no
verify-x509-name CN=us-ca90.nordvpn.com
remote-cert-tls server
auth-user-pass
route-noexec
我当前的 IP 表设置
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE && iptables-save
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.1/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface tun0 -j ACCEPT
更多调试信息
使用上述方法,我可以继续在10.0.0.50
服务器的 DHCP 分配 IP 上 ping 我的服务器,我可以继续执行此操作,curl --interface tun0 ipinfo.io
并且它可以与 OpenVPN 隧道一起工作。
网关:10.0.0.1 本地 IP:10.0.0.50
ip route show
default via 10.0.0.1 dev enp0s6 proto dhcp src 10.0.0.50 metric 100
10.0.0.0/24 dev enp0s6 proto kernel scope link src 10.0.0.50 metric 100
10.0.0.1 dev enp0s6 proto dhcp scope link src 10.0.0.50 metric 100
10.0.0.100 dev ppp0 proto kernel scope link src 10.0.0.1
10.7.0.0/16 dev tun0 proto kernel scope link src 10.7.0.7
169.254.0.0/16 dev enp0s6 scope link
169.254.0.0/16 dev enp0s6 proto dhcp scope link src 10.0.0.50 metric 100
169.254.169.254 via 10.0.0.1 dev enp0s6 proto dhcp src 10.0.0.50 metric 100
iptables-save
输出
root@instance-20231012-1109:/home/ubuntu# ./build-tun0.sh
# Generated by iptables-save v1.8.7 on Fri Oct 13 05:33:11 2023
*filter
:INPUT ACCEPT [103:10600]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [64:53484]
COMMIT
# Completed on Fri Oct 13 05:33:11 2023
# Generated by iptables-save v1.8.7 on Fri Oct 13 05:33:11 2023
*nat
:PREROUTING ACCEPT [5796:1077692]
:INPUT ACCEPT [3072:143043]
:OUTPUT ACCEPT [247:17909]
:POSTROUTING ACCEPT [40:3581]
-A POSTROUTING -o tun0 -j MASQUERADE
COMMIT
# Completed on Fri Oct 13 05:33:11 2023