查看: 898|回复: 1

iptables的端口范围映射

[复制链接]
论坛徽章:
6
Excel徽章
日期:2017-04-20 17:17:21知识图谱徽章
日期:2018-06-15 13:47:35机器学习徽章
日期:2018-10-11 15:50:07机器学习徽章
日期:2019-01-24 16:03:30python徽章
日期:2019-01-30 10:33:01Go徽章
日期:2019-08-01 16:32:14
发表于 2019-5-15 09:48 | 显示全部楼层 |阅读模式

端口

单个端口映射
  一般而言要在路由器里实现一条端口映射规则,需要两个iptables规则,一条是目的地址转换一条是源地址转换。 如下(192.168.40.200是wan口地址,10.0.0.150是LAN侧主机地址):
  iptables -t nat -I PREROUTING -p tcp -d 192.168.40.200 --dport 23 -j DNAT --to 10.0.0.150:23
  iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.150 --sport 23 -j SNAT --to 192.168.40.200:23

范围端口映射
  查看man iptables可知,范围端口映射规则也挺简单,匹配源时写为--sport port[ort],target时写为[ipaddr][-ipaddr][:port[-port]]。即上面单个的端口映射规则改为这种形式:
  iptables -t nat -I PREROUTING -p tcp -d 192.168.40.200 --dport 23:100 -j DNAT --to 10.0.0.150:23-100

  重点不在于规则怎么写,而是范围端口映射时是怎么映射?因为它可以少对多也可以多对少。例如配置[10-12]映射到[100-102],我怎么知道端口11会映射到具体那个端口,101吗? [100-200]映射到[10-20]时又会怎么样呢?


回复

使用道具 举报

新浪微博达人勋 hfzy 未实名认证
论坛徽章:
29
R研习者初级
日期:2012-07-19 18:06:05JS课程徽章
日期:2017-07-27 17:25:47Tomcat徽章
日期:2017-09-07 16:21:56比特币徽章
日期:2017-09-28 17:18:05Git徽章
日期:2017-12-25 17:36:00Java徽章
日期:2018-01-04 17:15:14Web课程徽章
日期:2018-08-14 10:40:00股票徽章
日期:2018-11-01 14:04:25股票徽章
日期:2018-11-22 15:36:24金融徽章
日期:2018-11-29 14:52:17股票徽章
日期:2019-01-24 16:03:16mysql徽章
日期:2019-04-11 15:18:42
发表于 2019-5-17 10:53 | 显示全部楼层
单个端口映射
  一般而言要在路由器里实现一条端口映射规则,需要两个iptables规则,一条是目的地址转换一条是源地址转换。 如下(192.168.40.200是wan口地址,10.0.0.150是LAN侧主机地址):
  iptables -t nat -I PREROUTING -p tcp -d 192.168.40.200 --dport 23 -j DNAT --to 10.0.0.150:23
  iptables -t nat -I POSTROUTING -p tcp -s 10.0.0.150 --sport 23 -j SNAT --to 192.168.40.200:23


这个感觉有点怪,
除非绑定不同的网卡,否则岂不是进入后被改了源ip为内网ip,出来时又改回去,像是个循环了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2019-9-20 20:39 , Processed in 0.138025 second(s), 31 queries .