基于iptables的SNAT,DNAT和docker的服务器发布项目

目录

项目步骤:

1.构建整个项目的拓扑结构

2.先安装好3台服务器系统,根据网络拓扑图配置好相应的IP地址

3.在网关服务器上实现SNAT功能,让nginx服务器和MySQL服务器能够上网

4.在nginx服务器的MySQL服务器上,安装docker软件,并且通过docker启动nginx容器和MySQL容器

 5.在网关服务器上实现DNAT功能

6.在PC机上测试发布的web服务和MySQL服务


项目名称:docker的服务器发布

项目环境:3台centos8服务器,docker20.10.8,MySQL,nginx,iptables

项目描述:采取docker容器技术创建web和MySQL服务,模拟企业发布内网的服务器,同时让内网的服务器能够上网

项目步骤:

1.构建整个项目的拓扑结构

2.先安装好3台服务器系统,根据网络拓扑图配置好相应的IP地址

网关server的配置:

vim ifcfg-ens33
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBBOOT="yes"
IPARRR=192.168.0.200
PREFIX=24
#NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=114.114.114.114
DNS2=192.168.0.1
vim ifcfg-ens37
BOOTPROTO="none"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR=192.168.50.200
PREFIX=24
#NETMASK=255.255.255.0

nginx server的配置:

vim ifcfg-ens33
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT=yes
IPADDR=192.168.50.100
PREFIX=24
GATEWAY=192.168.50.200
DNS1=114.114.114.114
DNS2=192.168.50.200

MySQL server的配置:

vim ifcfg-ens33

BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.50.110
PREFIX=24
GATEWAY=192.168.50.200
DNS1=114.114.114.144
DNS2=192.168.50.200

3.在网关服务器上实现SNAT功能,让nginx服务器和MySQL服务器能够上网

在网关服务器上执行脚本,实现SNAT:

vim snat.sh
#!/bin/bash
#stop firewalld
sevice firewalld stop

#open routing
echo 1 >/proc/sys/net/ipv4/ip_forward

#clear iptables rules
iptables -F
iptables -t nat -F

#snat policy
#iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j SNAT --to-source 192.168.0.200

4.在nginx服务器的MySQL服务器上,安装docker软件,并且通过docker启动nginx容器和MySQL容器

nginx容器启动的界面:

 MySQL容器启动的界面:

 5.在网关服务器上实现DNAT功能

在网关服务器上执行脚本,实现DNAT:

vim dnat-snat.sh

#!/bin/bash

#stop firewalld
service firewalld stop

#open routing
echo 1 >/proc/sys/net/ipv4/ip_forward

#clear iptables rules
iptables -F
iptables -t nat -F

#snat policy
#iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o ens33 -j SNAT --to-source 192.168.0.200

#dnat policy
#dnat web
iptables -t nat -A PRETOUTING -i ens33 -d 192.168.0.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.50.100:80

#dnat mysql
#iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.200 -p tcp --dport 3306 -j DNAT --to-destination 192.168.50.100:3306

$dnat mysql
iptables -t nat -A PREROUTING -i ens33 -d 192.168.0.200 -p tcp --dport 3306 -j DNAT --to-destination 192.168.50.110:3306

6.在PC机上测试发布的web服务和MySQL服务

项目心得:

1.做一个项目首先需要由明确的规划,才能有条不紊的进行

2.在进行linux的操作时,需要非常的细心,思路必须清晰

3.加深了对docker和iptables的理解,更加熟练的使用

4.提升了对网络故障排查的能力

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值