首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ipv6地址端口转发到本地主机端口的iptables

ipv6地址端口转发到本地主机端口的iptables
EN

Server Fault用户
提问于 2014-07-01 18:23:26
回答 3查看 13.5K关注 0票数 5

假设我想将端口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

EN

回答 3

Server Fault用户

回答已采纳

发布于 2014-07-01 19:24:50

您可能会造成问题,因为在IPv6中,您不应该使用NAT,但是从Linux3.8内核开始,您可以:

代码语言:javascript
复制
ip6tables -t nat -A PREROUTING -p tcp -m tcp \
          -d 2a00:1450:400c:c01::71 --dport 443 -j REDIRECT --to-ports 12345
票数 9
EN

Server Fault用户

发布于 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一样的建议,首先在适当的港口运行服务。如果这不是一个选择,那就问一个更好的问题。解释您试图运行的服务,如何让它侦听正确的端口,以及它是如何失败的。

票数 3
EN

Server Fault用户

发布于 2017-11-13 14:00:25

这一个为我工作,类似@ Steffann,但没有硬编码的ip地址,只是接口。

代码语言:javascript
复制
ip6tables -t nat -I PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j REDIRECT --to-ports 2222
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/609379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档