我有一个 NAS 服务器,我应该为其执行端口转发,以便可以从互联网访问其服务。然而我的 ISP 阻止了端口,所以我设法给自己买了一个便宜的 Ubuntu VPS 来在那里运行 OpenVPN 服务器,然后以某种方式将整个 NAS 流量和所需的端口重定向到那里 我的设置如下: |拉斯皮 | (192.168.0.101/24)| |(192.168.1.1/24) (192.168.0.1/24) APwlan0 eth0NAS (192.168.1.102/24) | \ / | |iptables 和路由引擎{tun0} | | 10.8.0.6 | 10.8.0.6 我猜 VPS 端配置正确,因为我可以使用我的 VPS IP 通过 SSH 连接到我的 Raspberry Pi。这就是我在那里所做的,以使其发挥作用: iptables -t nat -A PREROUTING -d A.B.C.D -p tcp --dport 22 -j DNAT --to-dest 10.8.0.6:22 iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 22 - j SNAT --到源 10.8.0.1 我的 OpenVPN 服务器配置: port X proto udp dev tun ca ca.crt cert server.crt key server.key dh dh2048.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt client-config-dir ccd Push "重定向网关 def1 旁路-dhcp"Push "dhcp-option DNS 208.67.222.222"Push "dhcp-option DNS 208.67.220.220"keepalive 10 120 comp-lzo 用户无人组 nogroup persist-key persist-tun 状态 openvpn-status.log 动词 3 我也做过: sysctl -w net.ipv4.ip_forward=1 并把 DEFAULT_FORWARD_POLICY="接受"/etc/default/ufw 并添加 # 启动 OPENVPN 规则 # NAT 表规则 *nat :POSTROUTING ACCEPT [0:0] # 允许从 OpenVPN 客户端到 eth0 的流量 -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE# END OPENVPN 规则 到 /etc/ufw/before.rules OpenVPN 客户端配置: 客户端开发 tun proto udp 远程 A.B.C.D X 解析重试无限 nobind 用户无人组 nogroup persist-key persist-tun ns-cert-type server comp-lzo verb 3 XXX YYY ZZZ 如何将 eth0 流量重定向到 tun0 并通过隧道转发端口 Y 和 Z? 我只知道对于其他端口,我应该相应地重新配置我的 VPS,就像我对端口 22 所做的那样。