IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 基于Docker与iptables的SNAT+DNAT服务器发布项目 -> 正文阅读

[系统运维]基于Docker与iptables的SNAT+DNAT服务器发布项目

项目名称

基于Docker与iptables的SNAT+DNAT服务器发布项目

项目描述

模拟企业的环境发布内网的服务器或者由于业务扩大服务器不足,增加镜像服务器的方式来维护企业业务,同时也让内网服务器可以上网,采取docker容器技术构建自己的web和MySQL等应用

项目设备

centos7(两台),Ubuntu20.04,docker20.10.8,mysql5.7.35,nginx1.21.1

项目步骤

1、规划整个网络拓扑图,为每个机器规划网络,配置ip地址等基础信息
请添加图片描述

2、安装3台虚拟机,根据拓扑图配置ip和网关等基本配置和规划

3、在router服务器上添加SNAT规则让内网的两个服务器可以上网,为了方便管理,我们写成脚本
添加snat

#!/bin/bash

#打开路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward

#清除防火墙规则
iptables -F
iptables -t nat -F
iptables -P INPUT ACCEPT

#snat规则
ptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o ens33 -j SNAT --to-source 192.168.10.99
ptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j SNAT --to-source 192.168.10.99

4、在内网服务器上下载docker容器,下载MySQL和nginx镜像,启动nginx和MySQL的docker容器,测试容器是否能正常访问

docker的安装步骤
https://docs.docker.com/engine/install/centos/

#启动nginx的容器
[root@web-server ~]# docker run  -d --name nginx-1  -p 80:80  nginx
af5d6e5f2a71adb5b10802764965ba9b572bcb6ccc5cb647ae24eb165bd84f3f
[root@web-server ~]# docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                               NAMES
af5d6e5f2a71   nginx     "/docker-entrypoint.…"   4 seconds ago   Up 3 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   nginx-1

启动MySQL容器
[root@web-server ~]# docker run -d --name mysql-1 -e MYSQL_ROOT_PASSWORD='123456' -p 3306:3306  mysql:5.7.35
0eed9c4219f7744d9203dd5e8be221f858a50a0a705f64fec38e2e7c3eafd599
[root@web-server ~]#
[root@web-server ~]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                  NAMES
0eed9c4219f7   mysql:5.7.35   "docker-entrypoint.s…"   34 seconds ago   Up 32 seconds   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   mysql-1
af5d6e5f2a71   nginx          "/docker-entrypoint.…"   3 minutes ago    Up 3 minutes    0.0.0.0:80->80/tcp, :::80->80/tcp                  nginx-1

5、在网关服务器上的snat脚本去添加好DNAT策略

#dnat web
iptables -t nat -A PREROUTING -i ens33 -d 192.168.10.99 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.37:80

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

#dnat mysql ubuntu docker
iptables -t nat -A PREROUTING -i ens33 -d 192.168.10.99 -p tcp --dport 3307 -j DNAT --to-destination 192.168.3.23:3306

##dnat web ubuntu docker
iptables -t nat -A PREROUTING -i ens33 -d 192.168.10.99 -p tcp --dport 81 -j DNAT --to-destination 192.168.3.23:80

6、在其他的机器上测试发布的web和MySQL服务,分别使用curl和chrome对服务进行测试,SQLyog的测试工具进行数据库连接测试请添加图片描述
请添加图片描述

注意:

数据库部分docker 容器起的mysql,可以使用root用户直接去连接,ruguo要添加新用户,授权等,操作直接进入容器操作

mysql -uroot -p123456

#授权

MySQL [(none)]> grant all on *.* to 'xulun'@'%' identified by '123456'

2、在编写dnat时我们就要考虑数据库有多个(但是在不同的容器里面),要设置不同的目的端口转发过去(路由器服务器只有一个唯一端口)如nginx可以一个80,一个81

项目心得

1、做一个项目第一步的规划是非常重要,无论在排错,还是设计上都非常重要,才能保证思路清晰
2、加深了对iptables和docker容器的理解,需要有较强的网络功底,尤其配置的内容更加复杂时
3、提升了对网络的认知,增加了我们的网络排除错误能力,一步步,范围一点点扩大的排除
4增加了对一个项目流程的认识,更加认识到操作需要非常细心和有耐心

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:33:10  更:2021-08-14 14:35:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 23:36:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码