如何在 ubuntu vps 远程服务器上使用 openvpn 端口转发到特定端口

如何在 ubuntu vps 远程服务器上使用 openvpn 端口转发到特定端口

我正在努力解决这个问题,我尝试了两种不同的方法,第一种方法是使用 UFW,第二种方法是使用 iptables,使用 grep 命令后,服务器正在侦听端口 1194 上的 UDP。我的问题是,当我的客户端设备尝试通过 vpn 连接到我的 vps 服务器时,它会在尝试连接时停止。我认为这与路由表有关,我找不到与设置 openvpn 服务器相关的正确信息。如果我没有设置任何 iptables,openvpn 可以正常工作。我只要求打开 1 个端口,即 44158。因此,我希望我的客户端通过远程 vps 服务器连接到 openvpn 服务器,并将所有入站和出站流量转发到端口 44158。

我使用的命令如下:

iptables -t nat -I PREROUTING -p udp --dport 1194 -j REDIRECT --to-port 44158

iptables -I INPUT -p udp --dport 44158 -j ACCEPT

添加上述内容导致 openvpn 服务器在客户端尝试连接时停止,如果我恢复默认设置,它就可以工作,但显然端口 44158 已关闭。

我不知道该在 openvpn 服务器上配置什么,这一切都是由 iptables 完成的吗?我对服务器有一些基本经验,但我从未尝试过端口转发或打开端口。我使用的是 Road warrior openvpn,它很容易设置,虽然似乎不是完整版。Vps 服务器正在运行完全更新的 ubuntu 18.04 lts。任何帮助或建议都将不胜感激。

以下是我添加的 iptables。其中一些可能不是必需的,但我尝试了各种方法

iptables -I FORWARD 1 -d 10.8.0.2 -p tcp --dport 44158 -j ACCEPT

iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p tcp --dport 44158 -j SNAT --to-source 10.8.0.1

iptables -t nat -A PREROUTING -d (vps.server.ip) -p tcp --dport 44158 -j DNAT --to-dest 10.8.0.2:44158

iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 44158 -j SNAT --to-source 10.8.0.1

iptables -I FORWARD 1 -d 10.8.0.2 -p udp --dport 44158 -j ACCEPT

iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.8.0.2 -p udp --dport 44158 -j SNAT --to-source 10.8.0.1

iptables -t nat -A PREROUTING -d (vps.server.ip) -p udp --dport 44158 -j DNAT --to-dest 10.8.0.2:44158

iptables -t nat -A POSTROUTING -d 10.8.0.2 -p udp --dport 44158 -j SNAT --to-source 10.8.0.1

iptables -A 输出 -p tcp --dport 44158 -j 接受

iptables -A OUTPUT -o eth0 -p tcp --dport 44158 -m state --state NEW,ESTABLISHED -j ACCEPT

我还启用了端口转发 sysctl net.ipv4.ip_forward=1

我在安装了 openvpn 客户端软件的笔记本电脑上测试了这一点。openvpn 为笔记本电脑分配的 IP 是 10.8.0.2

我的目标是将氦矿工连接到 VPN,这需要通过 VPN 隧道打开 44158,以便与氦网络上的其他氦矿工“闲聊”。这是可以做到的,但并不简单,我遵循了许多指南,但都没有奏效。我网络上笔记本电脑的 LAN IP 地址是 192.168.0.3,我现在对使用 iptables 非常有信心,如果我需要删除任何内容,我可以这样做。

任何建议都将不胜感激。谢谢。

相关内容