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服务,能访问到,测试成功: