[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录
实验准备工作:
网关服务器安装:dhcp bind (yum install -y dhcp bind bind-utlis)
server1安装:httpd (yum install -y httpd)
没有网络就搭建本地yum仓库或者配置网卡使其能够上网。
( 1)网关服务器:ens36:12.0.0.254/24,ens33:192.168.80.11/24;Server1:192.168.80.7/24;PC1和server2:自动获取IP;交换机无需配置。要求能够使用Xshell等远程工具登录Server1和网关服务器。
首先,原本虚拟机是192.168.66.0网段,严格按照题目修改,先修改真机的 VM8 和 VM1 的环境设置
然后,VMWARE软件的虚拟编辑器修改,统一网段
网关服务器处理:
第一步:2张网卡设置,网关服务器的网关就是自己,所以可以不用设置,但是DNS服务器指向自己,这个后面题目有要求,所以需要注意添加;
[root@wg ~]#cd /etc/sysconfig/network-scripts[root@wg network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.80.11
NETMASK=255.255.255.0
DNS1=192.168.80.11
#如果未安装实验要用的软件可以尝试搭建本地yum仓库。[root@wg network-scripts]#cp ifcfg-ens33 ifcfg-ens36
[root@wg network-scripts]#vim ifcfg-ens36TYPE=Ethernet
BOOTPROTO=static
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.254
NETMASK=255.255.255.0
DNS1=12.0.0.254[root@wg network-scripts]#systemctl restart network
[root@wg network-scripts]#ip a s ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:fe:04:29 brd ff:ff:ff:ff:ff:ffinet 192.168.80.11/24 brd 192.168.80.255 scope global ens33valid_lft forever preferred_lft forever[root@wg network-scripts]#ip a s ens36
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:fe:04:33 brd ff:ff:ff:ff:ff:ffinet 12.0.0.254/24 brd 12.0.0.255 scope global ens36valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fefe:433/64 scope link valid_lft forever preferred_lft forever[root@wg network-scripts]#cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.80.11
nameserver 12.0.0.254
server1:网卡配置
[root@server1 ~]#cd /etc/sysconfig/network-scripts[root@server1 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.80.7
NETMASK=255.255.255.0
GATEWAY=192.168.80.11
DNS1=192.168.80.11[root@server1 network-scripts]#systemctl restart network
server2:网卡配置
[root@server2 ~]#cd /etc/sysconfig/network-scripts/
[root@server2 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes[root@server2 network-scripts]#systemctl restart network
server2虚拟机网卡设置NAT模式
pc1:网卡配置
[root@pc1 ~]#cd /etc/sysconfig/network-scripts[root@pc1 network-scripts]#vim ifcfg-ens33TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens33
DEVICE=ens33
ONBOOT=yes[root@pc1 network-scripts]#systemctl restart network
pc1虚拟机网卡设置 仅主机模式
( 2 )网关服务器提供DHCP服务给PC1和server2分配对应网段的IP地址和DNS服务器地址(注意后面题目的需求)。
网关服务器搭建DHCP服务器
[root@wg ~]#rpm -qc dhcp
/etc/dhcp/dhcpd.conf
##找到原配置文件[root@wg ~]#cat /etc/dhcp/dhcpd.conf
# see /usr/share/doc/dhcp*/dhcpd.conf.example
##复制配置案例覆盖原本的配置文件[root@wg ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
##添加dhcp的分配规则[root@wg ~]#vim /etc/dhcp/dhcpd.confsubnet 192.168.80.0 netmask 255.255.255.0 {range 192.168.80.50 192.168.80.60;option routers 192.168.80.11;
}subnet 12.0.0.0 netmask 255.255.255.0 {range 12.0.0.50 12.0.0.60;option routers 12.0.0.254;
}[root@wg ~]#systemctl start dhcpd
查看server1:192.168.80.0段的ip地址
查看pc1:12.0.0.0段的ip地址
( 3 )server1服务器上创建密钥对并上传给网关服务器,并使server1的root用户可以使用root用户免交互登录网关服务器。
##生成密钥
[root@server1 ~]#ssh-keygen
##将生成的公钥传给网关服务器
[root@server1 ~]#ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.11
#输入yes回车后再输入网关服务器的密码即可。##测试完成免密登录
[root@server1 ~]#ssh 192.168.80.11
Last login: Sat Feb 17 12:11:51 2024 from 192.168.80.1
[root@wg ~]#exit
登出
Connection to 192.168.80.11 closed.
( 4 )server1服务器安装和启动httpd服务搭建Web网站,首页内容自定,但需要把server2的/share目录中的首页文件index.html,通过NFS挂载到server1的/var/www/html目录下使用。
server2配置:
[root@server2 ~]#mkdir /share
[root@server2 ~]#cd /share
[root@server2 share]#vim index.html
#输入任意内容即可。[root@server2 share]#cat index.html
akjbjkb[root@server2 share]#vim /etc/exports #书写共享规则/share *[root@server2 share]#systemctl start nfs #开启文件共享,如若没有需要安装nfs-utils
server1配置:
[root@server1 ~]#showmount -e 192.168.80.50
Export list for 192.168.80.50:
/share *注意需要安装httpd
[root@server1 ~]#rpm -q httpd
httpd-2.4.6-99.el7.centos.1.x86_64[root@server1 ~]#mount 192.168.80.50:/share /var/www/html/
#把共享文件挂载到/var/www/html/目录下。[root@server1 ~]#systemctl start httpd
[root@server1 ~]#curl 192.168.80.7 #验证结果
akjbjkb
( 5 )网关服务器:搭建DNS分离,局域网解析www.benet.com 为server1的IP地址,外网解析为12.0.0.254,并且实现SNAT和DNAT 转换成ens36接口地址,PC1可以使用域名www.benet.com解析12.0.0.254直接访问Web网站。
在搭建DNS分离之前要先安装两样 bing 主包 和 bind 工具包
bind是DNS服务器软件
yum install bind bind-utlis -y
安装完软件之后 , 要能 找到
1.配置文件的位置 使用右边命令查找 rpm -qc 安装包的名字
网关服务器DNS配置:
修改主配置文件:
vim /etc/named.conf
修改域名配置文件:
vim /etc/named.rfc1912.zones
view "lei" {
match-clients { 192.168.80.0/24; };
zone "benet.com" IN {type master;file "benet.com.lei";
};
zone "." IN {type hint;file "named.ca";
};
};view "wai" {
match-clients { any; };
zone "benet.com" IN {type master;file "benet.com.wai";
};
zone "." IN {type hint;file "named.ca";
};
};
注意!除了 // 后面和上图配置保留,其它都的删除。
编辑数据库文件:
命令:
[root@wg network-scripts]#cd /var/named/
[root@wg named]#cp -a named.localhost benet.com.lei
#保留权限复制named.localhost 为 benet.com.lan到当前目录
#这个 数据库文件 要跟 域名配置文件 中 file 后面的文件名相同。
[root@wg named]#cp -a named.localhost benet.com.wai
#保留权限复制named.localhost 为 benet.com.wan到当前目录
[root@wg named]#vim benet.com.lei
[root@wg named]#vim benet.com.wai
最后启动named服务,进行检验:
内网解析结果:
外网解析结果:
下面将实现SNAT和DNAT 转换成ens36接口地址,PC1可以使用域名www.benet.com解析12.0.0.254直接访问Web网站。
我们先看看未配置的情况:
内网sever2无法ping通外网的pc1
内网server2可以server1的80端口
外网的pc1无法访问内网。需要内网server1做端口映射到网关和DNS服务器上
网关服务器 添加 iptables 规则且 开启路由转发。
##SNAT策略
[root@wg named]#iptables -t nat -A POSTROUTING -o ens36 -s 192.168.80.0/24 -j SNAT --to 12.0.0.254
##DNAT策略
[root@wg named]#iptables -t nat -A PREROUTING -i ens36 -d 12.0.0.254 -p tcp --dport 80 -j DNAT --to 192.168.80.7[root@wg /var/named]#sysctl -a |grep “ip_forward"
net.ipv4.ip_forward = 0
##添加永久开启路由转发功能
[root@wg /var/named]#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@wg /var/named]#sysctl -p
net.ipv4.ip_forward = 1
SNAT策略详解:
内网访问外网时源ip转换为网关服务器的公网ip
DNAT策略详解:
外网客户端访问 网关服务器的公网ip 的 80 端口 时跳转至 内网 server1 的80 端口
验证效果:
实现内网可访问外网
pc1 可以 访问 server1 的 80 端口。
相关文章:

[ linux网络 ] 网关服务器搭建,综合应用SNAT、DNAT转换,dhcp分配、dns分离解析,nfs网络共享以及ssh免密登录
实验准备工作: 网关服务器安装:dhcp bind (yum install -y dhcp bind bind-utlis) server1安装:httpd (yum install -y httpd) 没有网络就搭建本地yum仓库或者配置网卡使其能够上网。 ( 1)网关服务器…...
MySQL全量备份
一、实验素材 1.创建student和score表 (1) student表 create database school; use schoolCREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) );(…...

【Linux系统化学习】动静态库 | 软硬链接
目录 硬链接和软链接 硬链接 软链接 动态库和静态库 静态库 静态库的生成 静态库的使用 将库打包和使用 动态库 动态库的生成 动态库的使用 库搜索路径 硬链接和软链接 硬链接 上篇文章我们说到真正找到磁盘上的文件并不是文件名,而是inode。其实在…...

linux-firewalld防火墙端口转发
目的:通过统一地址实现对外同一地址暴露 1.系统配置文件开启 ipv4 端口转发 echo "net.ipv4.ip_forward 1" >> /etc/sysctl.confsysctl -p 2.查看防火墙配置端口转发之前的状态 firewall-cmd --statefirewall-cmd --list-all 3.开启 IP 伪装 firewall-cm…...

adobe软件提示This non-genuine Adobe app will be disabled soon【软件版本】
因为电脑上级路由器装了小飞机,导致本机电脑ps等adobe的系列软件出现了 This non-genuine Adobe app will be disabled soon,烦人的狠,之前有写过一篇通过更改host的教程,现在已经失效了,今天为大家分享一个用软件来屏…...

python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数
相关推荐 python coding with ChatGPT 打卡第12天| 二叉树:理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树:翻转…...

Stable Diffusion——基础模型、VAE、LORA、Embedding各个模型的介绍与使用方法
前言 Stable Diffusion(稳定扩散)是一种生成模型,基于扩散过程来生成高质量的图像。它通过一个渐进过程,从一个简单的噪声开始,逐步转变成目标图像,生成高保真度的图像。这个模型的基础版本是基于扩散过程…...
Python自动化部署与配置管理:Ansible与Docker
Ansible 和 Docker 是两种常用于自动化部署和配置管理的工具。Ansible 是一个基于 Python 的自动化运维工具,可以配置管理、应用部署、任务自动化等。而 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&…...

《摔跤吧爸爸》19岁女星突患皮肌炎离世
从确诊到离世仅10天……罕见病“皮肌炎”! 曾凭借在知名电影《摔跤吧!爸爸》中饰演童年时期“小芭比塔”一角而广受喜爱的年轻演员苏哈尼巴特纳格尔不幸离世,年仅19岁。她的突然逝世引发了全球关注,据苏哈妮的家人表示࿰…...
用结构体数组,完成宠物信息登记管理。
管理宠物的名字,品种,年龄。 实现功能如下: 1.插入宠物信息 2.遍历宠物信息 #include <stdio.h> #define N 100 typedef struct chongwu { char name[20]; char pingz[10]; int age; }cw; void intset_cw(cw *ptr,int *pnum) { printf("请…...
频率主义线性回归和贝叶斯线性回归
整体概述 频率主义(Frequentist)线性回归和贝叶斯(Bayesian)线性回归是统计学中用于数据分析和预测的两种主要方法,特别是在建模关于因变量和自变量之间线性关系的上下文中。尽管两种方法都用于线性回归分析ÿ…...
【感知算法】Dempster-Shafer理论(下)
尝试DS理论应用到自动驾驶地图众包更新。 地图特征变化判断 a mass function is applied to quantify the evidence of the existence. existence state: existenct、non-existent、tenative、conflict ∃ ∄ Ω ϕ \exist \\ \not\exist \\ \Omega \\ \phi ∃∃Ωϕ ma…...
通过conda安装cudatoolikit和cudnn
通过conda安装cudatoolikit和cudnn 安装cudatoolkit安装cudnn安装cudatoolkit-dev 安装cudatoolkit conda install cudatoolkit11.3 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ 安装cudnn conda install cudnn8.5 -c https://mirrors.tuna.tsinghua.edu.…...
vue中使用jsx语法
请注意,在 Vue 中使用 JSX 时,你仍然需要通过 h 函数(通常是一个别名,对应于 createElement 函数)来创建虚拟 DOM 元素。在下面的例子中,h 函数作为 render 函数的参数传入,但在 JSX 语法中你通…...

我的NPI项目之Android USB 系列(一) - 遥望和USB的相识
和USB应该是老朋友了,从2011年接触Android开发开始,就天天和USB打交道了。那时候还有不 对称扁头的usb/方口的usb,直到如今使用广泛的防反插USB3.0 type-C。 但是,一直有一个不是很清楚的问题萦绕在心头,那就是。先有…...

K8s进阶之路-命名空间级-服务发现 :
服务发现: Service(东西流量):集群内网络通信、负载均衡(四层负载)内部跨节点,节点与节点之间的通信,以及pod与pod之间的通信,用Service暴露端口即可实现 Ingress&#…...

智慧公厕管理系统:让城市智慧驿站更加智慧舒适
智慧公厕管理系统是城市智慧驿站中不可或缺的一部分,它通过全方位的信息化解决方案,为公共厕所的使用、运营和管理提供了一种智能化的方式。作为城市智慧驿站的重要组成部分,智慧公厕管理系统发挥着重要的作用,为城市社会民生提供…...

图形渲染基础学习
原文链接:游戏开发入门(三)图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门(三)图形渲染笔记: 渲染一般分为离线渲染与实时渲染,游戏中我们用的都是…...

每日学习总结20240219
每日总结 20240219 1.文件类型.csv CSV文件是一种以逗号分隔值(Comma-Separated Values)为标记的文本文件,它可以用来存储表格数据。每一行表示一条记录,而每一条记录中的字段则使用逗号或其他特定的分隔符进行分隔。 常用场景…...

K8s进阶之路-安装部署K8s
参考:(部署过程参考的下面红色字体文档链接就可以,步骤很详细,重点部分在下面做了标注) 安装部署K8S集群文档: 使用kubeadm方式搭建K8S集群 GitBook 本机: master:10.0.0.13 maste…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...