CentOS搭建NAT和DHCP服务,实现共享上网
什么是NAT?
NAT(Network address translation)即网络地址转换,作为一种过渡解决手段,可以用来减少对全球合法IP地址的需求。简单的说,NAT就是在内部专用网络中使用内部地址,而当内部节点要与外界网络发生联系时,就在边缘路由器或者防火墙处,将内部地址转换成全局地址,从而使得在外部公共网(Internet)上使用一个和数个合法IP地址正常传输数据。
其中,这里的外网和内网是相对来讲的,下面假设能够访问互联网的网络为外网。
什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
实验环境
- VMware Workstations
- 一台最小化安装的CentOS7,外网IP(NAT模式):192.168.204.133,内网网卡vmnet10(相当于仅主机模式,且不自动获取IP)
- 一台Windows7,内网网卡vmnet10(相当于仅主机模式,且不自动获取IP)

检查网络连通性
CentOS上执行以下命令:
# 检查centos到互联网的网络连通性
ping -c 4 www.baidu.com
ifconfig

查看linux上的网卡配置信息,本文中默认ens33为外网网卡,ens37为内网网卡
关闭防火墙
setenforce 0
systemctl stop firewalld
systemctl disable firewalld
配置内网网卡
vim /etc/sysconfig/network-scripts/ifcfg-ens37
添加如下内容
TYPE="Ethernet"
BOOTPROTO="static"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
DNS1="223.5.5.5"
重启网卡
systemctl restart network
开启Linux路由功能
iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
解释(ens37为内网网卡,ens33为外网网卡):
第一条命令:让发送至内网网卡的数据全部通过
第二条命令:修改数据报头信息
第三条命令:开启Linux的路由功能
第四条命令:查看是否启用了路由功能,1代表启用,0代表禁用
具体命令需要根据自己的网卡名称进行修改
执行以下命令,设置开机自动配置 Linux路由功能
echo -e "
iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
" >> /etc/rc.local
chmod +x /etc/rc.local
安装配置DHCP服务
安装DHCP服务
yum install -y epel*
yum install -y dhcp
复制DHCP配置文件
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
编辑并修改dhcpd.conf配置文件
vim /etc/dhcp/dhcpd.conf
查找并修改option domain-name项,修改为vmnet.com
查找并修改option domain-name-servers项,修改为223.5.5.5, 114.114.114.114
配置文件内容如下

# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.10 192.168.0.100;
option domain-name-servers 223.5.5.5, 114.114.114.114;
option domain-name "vmnet.com";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
逐行进行解释
#subnet后跟子网网段,netmask后跟子网掩码
subnet 192.168.0.0 netmask 255.255.255.0 {
#地址池
range 192.168.0.10 192.168.0.100;
#DNS服务器地址(多个地址用","隔开)
option domain-name-servers 223.5.5.5, 114.114.114.114;
#为所分配的域分配域名
option domain-name "vmnet.com";
#为所分配的主机分发子网掩码
option subnet-mask 255.255.255.0;
#分发默认网关
option routers 192.168.0.1;
#分发广播地址
option broadcast-address 192.168.0.255;
#默认租期时间(秒)
default-lease-time 600;
#最大租期时间(秒)
max-lease-time 7200;
}
启动DHCP服务
systemctl restart dhcpd
systemctl enable dhcpd
查看启动状态
systemctl status dhcpd
netstat -uap | grep dhcpd
查看Windows7上的网络信息
禁用网卡,重新启动,查看网卡信息


检查访问互联网的连通性

可以正常访问百度

本文链接:https://www.cnblogs.com/connect/p/linux-service-nat.html
CentOS搭建NAT和DHCP服务,实现共享上网的更多相关文章
- 基于centos搭建微信小程序服务,配置及数据库等
基于centos搭建小程序, ps:请提前20天准备将域名备案,申请ssl证书 实验上机地址:https://cloud.tencent.com/developer/labs/lab/10004 准备 ...
- CentOS搭建V~P~N服务,实现虚拟专用网络
什么是V-P-N V-P-N即虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯. V-P-N网关通过对数据包的加密和数据包目标地址的转换实现远程访问.V-P-N有多种分类方式,主要是按 ...
- 基于CentOS搭建VNC远程桌面服务
系统要求:CentOS 7.2 64 位操作系统 安装.启动 VNC VNC 远程桌面原理 名词解释: Xorg:在 Linux 用户中非常流行,已经成为图形用户程序的必备条件,所以大部分发行版都提供 ...
- 基于 CentOS 搭建 WordPress 个人博客
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 腾讯云提供了开发者实验室帮助用户搭建 WordPress 个人博客,教程内容如下,用户可以点击开发者实验室快速上机完成实验. 准备 LNMP ...
- CentOS下搭建DHCP服务
DHCP的原理这里就不多说了,这里直接贴配置加解说 1.安装dhcp yum -y install dhcp-4.1.1-63.P1.el6.centos.x86_64 2.编辑/etc/dhcp/d ...
- Linux 之dhcp服务搭建
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议 dhcp服务器端监控端口67 涉及的配置文件:/etc/dhcp/dhcpd ...
- 复制虚拟机vmware centos搭建集群节点过程中网络配置eth0和eth1遇到的问题以及NAT模式下虚拟机静态IP配置方法
在centos中安装完第一个虚拟机后,一般习惯通过克隆的方式创建其它虚拟机,开后vmware无法发现网卡信息,系统认为这是重新安装,所以重新创建了一个新的网卡叫eth1. 并且用IFCONFIG-a查 ...
- centos 搭建 git 服务端和客户端
centos 搭建git需要设置远程服务端和客户端.远程代码存放在服务端,多个客户端可以共享和维护服务端代码. 一.服务端主机 1.创建ssh,大部分默认已经安装,有ssh就跳过 yum instal ...
- DHCP协议格式、DHCP服务搭建、DHCP协商交互过程入门学习
相关学习资料 http://www.rfc-editor.org/rfc/rfc2131.txt http://baike.baidu.com/view/7992.htm?fromtitle=DHCP ...
随机推荐
- [20171221]利用rman实现2台机器文件拷贝.txt
[20171221]利用rman实现2台机器文件拷贝.txt --//昨天使用rman duplicate建立dg,我看到执行如下代码: RMAN> duplicate target datab ...
- python写一个双色球彩票计算器
首先声明,赌博一定不是什么好事,也完全没有意义,不要指望用彩票发财.之所以写这个,其实是用来练手的,可以参考这个来预测一些其他的东西,意在抛砖引玉. 啰嗦完了,马上开始,先上伪代码 打开网址 读取内容 ...
- sysfs_create_group创建sysfs接口
在调试驱动,可能需要对驱动里的某些变量进行读写,或函数调用.可通过sysfs接口创建驱动对应的属性,使得可以在用户空间通过sysfs接口的show和store函数与硬件交互: Syss接口可通过sys ...
- kettle 合并记录步骤中的 关键字段和 比较字段的说明
该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配.比较.合并. 需要设置的参数: 旧数据来源:旧数据来源的步骤 新数据来源.新数据来 ...
- 关于数据库不适合docker的原因(摘抄)
所有的服务都开始了容器化升级,在一切皆容器的主流思想下,无状态的服务采用容器化已经是大势所趋,常常困扰架构师的一个问题是,数据库是否需要容器化? 数据库不适合容器化的七大原因 1. 数据不安全 即使你 ...
- 个人技术博客(α)------javaweb的学习路程
该博文大致内容是学习的一个过程,心得,并不是以技术博客为主,在此说明. 关于javaweb的学习开始的时间大概是从大二下(2017年6.7月份)的暑假开始的,在学长的介绍下加入了实验室进行学习,由于是 ...
- 17秋 软件工程 第六次作业 Beta冲刺 Scrum4
17秋 软件工程 第六次作业 Beta冲刺 Scrum4 各个成员冲刺期间完成的任务 世强:完成APP用户签到模块.群发短信模块前端界面: 陈翔:恢复Github项目,完成Scrum博客: 树民:和超 ...
- JDBC学习笔记之建立连接
1. 引言 在一个JDBC应用程序中,如果想建立和数据源的连接,那么可以使用以下两个类: DriverManager:通过数据源的URL,我们可以建立与指定的数据源的连接.如果使用 JDBC 4.0 ...
- Java设计模式之三 ----- 建造者模式和原型模式
前言 在上一篇中我们学习了工厂模式,介绍了简单工厂模式.工厂方法和抽象工厂模式.本篇则介绍设计模式中属于创建型模式的建造者模式和原型模式. 建造者模式 简介 建造者模式是属于创建型模式.建造者模式使用 ...
- 【学习笔记】python 进阶特性
__slots__魔法 在Python中,每个类都有实例属性.默认情况下Python用一个字典来保存一个对象的实例属性.这非常有用,因为它允许我们在运行时去设置任意的新属性. 然而,对于有着已知属性的 ...