15、iptables_nat目标地址转换(外网访问内网)

15.1、环境说明:

1、架构图:


2、架构图说明:

局域网中的两台计算机只能有一台能够访问外网,而这两台计算机之间能相互通信,那么可以配置能访问外网的

那台服务器通过端口映射的方式,实现外网访问内网的WEB服务。


3、在"linux架构_02-1(14、iptables_nat源地址转换(内网共享上网))"文档的基础上配置即可实现B(slave-node1)

服务器既可以访问外网,外网又可以访问B(slave-node1)服务器上的web服务。


15.2、外网服务器A(controller-node1)配置:

1、配置进站规则:

[root@controller-node1 ~]# iptables -A INPUT -p tcp --dport 8090 -j ACCEPT

# 开放8090端口


2、添加 nat 规则(目标地址转换):

[root@controller-node1 ~]# iptables -t nat -A PREROUTING -d 10.0.0.90 -p tcp --dport 8090 -j DNAT --to-destination 172.16.1.91:80

# -d 10.0.0.90:目标地址,外网地址。

# --dport 8090:目标地址开放的端口号。

# -j DNAT:将目标地址进行转换变更。

# --to-destination 172.16.1.91:80:将目标地址映射为内网ip地址和开放的端口号。

#[root@controller-node1 ~]# iptables -t nat -A POSTROUTING -d 172.16.1.91 -p tcp --dport 80 -j SNAT --to-source 172.16.1.90

# 用SNAT作源地址转换,以使回应包能正确返回,网上的文章说需要添加此配置,但是我在实验时没有添加也是可以的。


3、保存防火墙规则并重启:

[root@controller-node1 ~]# service iptables save

[root@controller-node1 ~]# systemctl restart iptables.service


4、查看防火墙规则:

1)查看默认表规则:

2)查看nat表规则:


15.3、内网服务器B(slave-node1)配置:

1、配置进站规则:

[root@slave-node1 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 开放80端口


2、保存防火墙规则并重启:

[root@slave-node1 ~]# service iptables save

[root@slave-node1 ~]# systemctl restart iptables.service


3、查看防火墙默认表规则:


15.4、测试:

在浏览器中通过外网ip及设定的端口号访问内网的apache服务,能访问到,测试成功:













猜你喜欢

转载自www.cnblogs.com/LiuChang-blog/p/12342596.html
今日推荐