如何在 Raspbian 上从 OpenVPN 中排除端口?

如何在 Raspbian 上从 OpenVPN 中排除端口?

我在我的 RaspberryPI 上全天候运行 OpenVPN 隧道,但也想通过端口 25565 使用我的真实公共 IP 地址访问它。
我已经使用路由器转发了端口,并且没有启用 OpenVPN,端口已打开并正常工作。

ncat -l 25565通过和进行测试https://www.yougetsignal.com/tools/open-ports/

但如果我再次启用VPN,它显然不起作用,由此我得出结论,我需要25565从OpenVPN隧道中排除端口。

通过谷歌搜索我找到了 iptables,但它似乎不起作用。

  • 网关是 192.168.1.1
  • Raspberry 是 192.168.1.103

我试过:

  • 添加 iptables:
sudo iptables -A FORWARD -j ACCEPT -p udp --dport 25565 --sport 1024:65535 -d 192.168.1.1 -m state --state NEW<br>
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport 25565 --sport 1024:65535 -d 192.168.1.1 -m state --state NEW<br>
sudo iptables -t nat -A PREROUTING -i pppoe_dsl -p udp --dport 25565 -j DNAT --to-destination 192.168.1.103:25565<br>
sudo iptables -t nat -A PREROUTING -i pppoe_dsl -p tcp --dport 25565 -j DNAT --to-destination 192.168.1.103:25565
  • 在 OpenVPN 配置文件末尾添加以下内容:
route 192.168.1.1 255.255.255.0 net_gateway

我就是无法让它工作。有人能帮我吗?

我的 VPN 提供商是 PIA,这是我的配置文件(.... = 证书):

client
dev tun
proto udp
remote czech.privateinternetaccess.com 1198
resolv-retry infinite
nobind
persist-key
persist-tun
cipher aes-128-cbc
auth sha1
tls-client
remote-cert-tls server

auth-user-pass /etc/openvpn/login.conf
compress
verb 1
reneg-sec 0
<crl-verify>
-----BEGIN X509 CRL-----
 ....
-----END X509 CRL-----
</crl-verify>

<ca>
-----BEGIN CERTIFICATE-----
 .... 
-----END CERTIFICATE-----
</ca>

disable-occ

答案1

找到了解决方案:将其添加到我的 openvpn 配置文件中:

script-security 2
route-up /etc/openvpn/route-up.sh

route-up.sh 包含:

ip route flush table 100
ip route flush cache

sudo ip rule add from 192.168.1.103 table 100
sudo ip route add table 100 to 192.168.1.0/24 dev eth0
sudo ip route add table 100 default via 192.168.1.1

相关内容