Linux(ubuntu)如何用iptables实现端口映射

た 入场券 2024-04-19 16:09 105阅读 0赞

主机1:(用来转发的连接公网的服务器)

  1. 内网: 192.168.0.101 //内网IP
  2. 公网:202.102.1.3 //公网IP

主机2:(服务器分发的局域网的主机)

  1. 内网:192.168.0.102 //内网IP

拓扑图如下图所示:
在这里插入图片描述

(在转发服务器上进行设置)

首先,必须开启linux的数据转发功能,具体开启步骤如下:

  1. vim /etc/sysctl.conf

在这里插入图片描述

  1. 2 net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1 ,并取消掉前面的注视符“#”

在这里插入图片描述

  1. 3 sysctl -p(这条命令是使数据转发功能生效)

现在就可以更改iptables了,使之实现nat映射功能:

例如:你要将外网访问本地IP(192.168.0.102)的80端口转换为访问192.168.0.101的8000端口,你可以用如下命令:

  1. 1iptables -t nat -A PREROUTING -d 192.168.0.101 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.102:8000
  2. 2iptables -t nat -A POSTROUTING -m tcp -p tcp --dport 8000 -d 192.168.0.102 -j SNAT --to-source 192.168.0.101

说明:

  1. iptables -t nat -A PREROUTING -d "对外公网ip" -p tcp --dport "对外端口" -j DNAT --to "内部实际提供服务的ip":"实际提供服务的端口"
  2. iptables -t nat -A POSTROUTING -d "内部实际提供服务的ip"-p tcp --dport "实际提供服务的端口" -j SNAT --to-source "运行iptables机器的内网ip"

可以使用命令:iptables -t nat —list检查nat列表信息:
在这里插入图片描述
Nat列表信息删除:

  1. iptables -t nat -D PREROUTING 1 //序号从1 开始,后边以此+1.
  2. iptables -t nat -D POSTROUTING 1 //序号从1 开始,后边以此+1.

最后把/bin/iptables.sh脚本加入开机运行

  1. echo "/bin/iptables.sh" >> /etc/rc.local

重启网络服务

  1. /etc/init.d/network restart

介绍两个实用的博客地址:
https://icewing.cc/post/25-iptables-policy.html\#toc-492
https://blog.csdn.net/zzhongcy/article/details/42738285

发表评论

表情:
评论列表 (有 0 条评论,105人围观)

还没有评论,来说两句吧...

相关阅读

    相关 iptables端口转发

    什么是NAT 在传统的标准的TCP/IP通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除