iptables 将外部 IP 上的 HTTPS NAT 到内部 IP - debian

iptables 将外部 IP 上的 HTTPS NAT 到内部 IP - debian

我一直在尝试根据几个示例/指南将外部 IP(例如 debianIP1)上的 HTTPS 流量 NAT 到内部 IP(例如 debianIP2),例如:

如何在 Debian 上进行端口转发/重定向?

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/4/html/Security_Guide/s1-firewall-ipt-fwd.html

http://jensd.be/343/linux/forward-a-tcp-port-to-another-ip-or-port-using-nat-with-iptables

不幸的是,我无法让它工作。这是我在 debianIP1 上所做的:

/etc/sysctl.conf 文件,net.ipv4.ip_forward = 1(启用 IPv4 端口转发)

命令:

  • iptables -t nat -A POSTROUTING -o venet0:0 -j MASQUERADE

  • iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 443 -j DNAT --to debianIP2:443

  • iptables -A FORWARD -i venet0:0 -p tcp --dport 443 -d debianIP2 -j ACCEPT

当我在 debianIP1 上时,我执行:

  • telnet debianIP2 443 - 我可以看到我已连接

  • telnet localhost 443 - 我收到拒绝连接的消息

使用 venet0:0 是因为这是唯一显示外部 IP 的接口(其他是 venet0 和 lo)。将 venet0 包含在 venet0:0 中可获得相同的结果。

有人能告诉我我错过了什么吗?

答案1

尝试--to-destination不一样--to

解释如下

答案2

根据下面的答案,我添加了 --to-destination 而不是 --to,但不幸的是,这并没有解决问题。连接被拒绝。

相关内容