iptables 端口转发到另一个 Web 服务器端口

iptables 端口转发到另一个 Web 服务器端口

是否可以将端口转发到属于另一个 Web 服务器的端口?

我有一个 ec2 实例,它能够连接到位于不属于同一网络的另一台机器上的 mysql db。即 aws-machine:XXXX => internet-website:YYYY

我尝试使用以下配置进行端口转发,但是不起作用。

sudo ufw allow from any to any port XXXX proto tcp
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport XXXX-j DNAT --to-destination internet-website:YYYY
sudo iptables -A INPUT -p tcp --dport XXXX -j ACCEPT
sudo iptables -t nat -A POSTROUTING -p tcp --dport XXXX -j MASQUERADE

这个想法是创建一个隧道来连接到数据库,而无需登录机器或使用 ssh 隧道。我该如何实现它?

答案1

您需要允许流量通过 FORWARD 链,而不是 INPUT 链。

INPUT 是发往本地机器的流量;FORWARD 是通过本地机器的流量。

由于filter表(INPUT 和 FORWARD 链所在位置)是在nat表(PREROUTING 所在位置)之后处理的,因此该filter表正在处理数据包您已将其更改为 DNAT 到远程主机,因此数据包是通过 FORWARD 链发送的,而不是 INPUT 链。

相关内容