加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 带有Iptables的不同内部端口范围的DNAT端口范围

发布时间:2020-12-13 16:53:10 所属栏目:Linux 来源:网络整理
导读:将单个端口DNAT到内部网络上的不同端口的标准方法是这样的: ip(6)表-t nat -A PREROUTING -i wan0 -p tcp –dport 80 –to-destination 10.0.0.1:8080 如果你需要一个端口范围,你可以将-m multiport与–dports一起使用: ip(6)表-t nat -A PREROUTING -i wa
将单个端口DNAT到内部网络上的不同端口的标准方法是这样的:

ip(6)表-t nat -A PREROUTING -i wan0 -p tcp –dport 80 –to-destination 10.0.0.1:8080

如果你需要一个端口范围,你可以将-m multiport与–dports一起使用:

ip(6)表-t nat -A PREROUTING -i wan0 -p tcp -m multiport –dports 1000:2000 –to-destination 10.0.0.1

现在我想知道你是否可以将两种技术结合起来将端口范围(例如1000-2000)映射到相同大小的不同端口(例如12000-13000). Iptables是否可以在不晚于Linux 4.1的情况下使用内核?

解决方法

要回答你的问题,是的.

我在Debian盒子上运行了一个示例规则……

iptables -t nat -A PREROUTING -i xenbr0 -p tcp --dport 64000:65000 -j DNAT --to 172.16.10.10:61000-62000

……没有输出,表明成功.我正在运行内核3.16.0-4-amd64.

通过iptables -t nat -vnL PREROUTING检查NAT规则,我看到列出了规则…

DNAT       tcp  --  xenbr0 *       0.0.0.0/0            0.0.0.0/0            tcp dpts:64000:65000 to:172.16.10.10:61000-62000

MadHatter是正确的,您不需要-m multiport用于端口范围,仅用于以逗号分隔的端口列表. :为了指定–dport选项的端口范围,需要:但需要a – 以指定DNAT目标中的端口范围.

这个规则在实践中如何运作我不能说,但理论上它应该实现你的目标.

有关DNAT目标的更多信息,请参见here.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读