假设我想将端口443上的2a00:1450:400c:c01::71重定向到localhost端口12345。
怎么用Iptables呢?
好的,它是在端口>=1000上运行SSL中继的Weechat。它可以在这个端口上与IPv4和IPv6建立连接。因此,我想将定义的IPv6 6:端口2a00:1450:400 C:C01:71:443绑定到IPv6本地主机端口*1:12345
发布于 2014-07-01 19:24:50
您可能会造成问题,因为在IPv6中,您不应该使用NAT,但是从Linux3.8内核开始,您可以:
ip6tables -t nat -A PREROUTING -p tcp -m tcp \
-d 2a00:1450:400c:c01::71 --dport 443 -j REDIRECT --to-ports 12345发布于 2014-07-01 18:44:01
这一答案适用于问题的原始版本,在编辑之前。对于更新的问题,@SanderSteffann给出的答案是适用的。
您不能用iptables实现这一点,因为iptables只处理IPv4而不是IPv6。您也不能用ip6tables来完成它,因为ip6tables只处理IPv6而不是IPv4。
现有的协议转换器可以在IPv4和IPv6之间进行转换。但这可能会限制他们可以转换的IP地址,因为IPv4和IPv6的IP地址不一样。
结合协议转换器来改变IP地址和iptables以改变端口号是可能的。但是我不会建议使用这样的组合,尤其是在不知道你的具体需求的细节的情况下。
无论哪种方式,服务器都无法立即访问有关客户端IPv6地址的信息,因为无法将整个IPv6地址嵌入服务器可见的客户机IPv4地址中。
基于所提供的有限信息,我会给出和@MichaelHampton一样的建议,首先在适当的港口运行服务。如果这不是一个选择,那就问一个更好的问题。解释您试图运行的服务,如何让它侦听正确的端口,以及它是如何失败的。
发布于 2017-11-13 14:00:25
这一个为我工作,类似@ Steffann,但没有硬编码的ip地址,只是接口。
ip6tables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 2222https://serverfault.com/questions/609379
复制相似问题