目录
四、安装好Docker,并启动nginx和MySQL的Docker容器
项目简介
- 项目名称:基于iptables的SNAT+DNAT与Docker容器发布的项目
- 项目环境:CentOS8,Docker,MySQL(5.7.35),nginx,iptables等
- 项目描述:通过模拟企业的环境,发布内网服务器,让内网服务器实现网络链接;同时采取Docker容器构建自己的web和MySQL应用
- 项目步骤
- 规划整个项目的拓扑结构和IP地址
- 安装好3台服务器系统,根据拓扑图的规划配置IP地址,并安装好Docker软件
- 在网关服务器上实现SNAT让内网的服务器实现上网功能,同时配置内网服务器的ip、网关和dns
- 在内网服务器上启动nginx和MySQL的Docker容器,测试容器是否能正常访问
- 在网关服务器上完成配置DNAT策略,并开启路由功能
- 进行测试,检验项目效果。使用curl或chrome测试web服务是否成功,使用SQLyog的测试MySQL容器是否成功。
- 项目心得
- 明白了项目拓扑图的重要性,依次才能完成好各项步骤
- 进一步加强了对iptables和Docker容器的理解与掌握
- 对于多台服务器的功能实现有了一定的经验
- 增强了自身的网络troubleshooting能力
- 提升了自己shell编程能力,更懂得了shell编程时严谨的重要性
- 遇到的问题
- 网关服务器外的两台客户机连不上XSHELL同时不能ping通外网地址,是由于网关服务器的防火墙功能未关闭
- 在Windows添加路由时,CMD始终是别不了route add命令,是由于未使用管理用方式打开CMD
- 由于不够细致,有时较长的iptables的命令出现漏掉选项等情况,导致命令无法执行,需要进一步提升严谨性
-
项目详细代码如下
-
一、拓扑结构图如下
-
-
二、实现SNAT并配置好服务器的IP
主机:root@server
客户机1:root@web-mysql
客户机2:root@web-mysql-2
-
1.配置好网关服务器的SNAT策略: [root@server /]# cd /lianxi [root@server lianxi]# mkdir 0813 [root@server lianxi]# ls 0813 [root@server 0813]# vim snat.sh snat.sh [root@server 0813]# cat snat.sh #!/bin/bash #open route function echo 1 >/proc/sys/net/ipv4/ip_forward #clear iptables rules iptables -F iptables -t nat -F iptables -P INPUT ACCEPT #start snat #iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j SNAT --tosource 192.168.2.200 iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE [root@server 0813]# vim snat.sh [root@server 0813]# cat snat.sh #!/bin/bash #stop firewalld service service firewalld stop # selinux policy setenforce 0 #open route function echo 1 >/proc/sys/net/ipv4/ip_forward #clear iptables rules iptables -F iptables -t nat -F iptables -P INPUT ACCEPT #start snat #iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j SNAT --tosource 192.168.2.200 iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE [root@server 0813]# bash snat.sh Redirecting to /bin/systemctl stop firewalld.service [root@server 0813]# iptables -L -t nat -n # 查看iptables的规则 Chain PREROUTING (policy ACCEPT) target prot opt source desti