我最近购买了一些便宜的 vps,并且想打开一些端口,我已经在服务器上使用 ufw 完成了这些操作。顺便说一下,我正在连接到一个 VPN,它允许我通过 OpenVPN 将端口转发到我的本地机器,因为我的本地提供商正在阻止端口。
OpenVPN 在我的 PC 上运行良好,所有连接均可正常工作,但当我连接到 VPN 时,它显示只有 TCP 端口是打开的,所有 UDP 端口都关闭,但当我检查某些网站端口检查器并粘贴服务器的 IP 时,它显示其打开。
我猜它与 iptables 或类似的东西有关..?有人能帮我吗?谢谢
编辑。我通过执行以下命令完成了这项工作:
iptables -t nat -A PREROUTING -d SERVERIP -p UDP --dport 1234-j DNAT --to-dest 10.8.0.6:1234
iptables -t filter -A INPUT -p udp -d 10.8.0.6 --dport 3480 -j ACCEPT
10.8.0.6 是 OPENVPN 的 IP
答案1
如果我理解了你想要实现的目标,你正在尝试从 VPS 执行 NAT,并将 TCP 和 UDP 端口转发到可通过 VPN 隧道(OpenVPN)访问的本地网络。由于路由返回问题,这可能不起作用,你的本地网络可能配置为不使用 OpenVPN 连接即可访问互联网,因此来自你的 NAT 的流量不会响应你的 VPS。
您可以尝试通过服务(如 nginx)代理您的流量。这里有一个例子。
安装 Nginx(在你的 VPS 上):
apt install nginx
创建专用于端口规则的新文件夹
mkdir /etc/nginx/ports/
将以下几行添加到文件末尾/etc/nginx/nginx.conf
stream {
include /etc/nginx/ports/*;
}
最后,在这个新文件夹中创建包含规则的任何文件。下面是 tcp 和 udp 重定向的示例。
server {
listen 1234;
proxy_pass <computer-ip>:1234;
}
server {
listen 1234 udp;
proxy_pass <computer-ip>:1234;
}
Of course, port 1234 must be opened in your ufw as your mentioned.