LINUX的网络配置

1.关于网络的基础知识

(1)不同计算机是通过多点接入的方式连接在一起,采用的协议是:CSMA/CD:载波侦听多路访问/冲突监测。

CSMA/CD的工作原理为:发送数据前 先侦听信道是否空闲 ,若空闲,则立即发送数据。若信道忙碌,则等待一段时间至信道中的信息传输结束后再发送数据;若在上一段信息发送结束后,同时有两个或两个以上的节点都提出发送请求,则判定为冲突。若侦听到冲突,则立即停止发送数据,等待一段随机时间,再重新尝试。

其原理简单总结为:先听后发,边发边听,冲突停发,随机延迟后重发。

(2)网络是有网络位和主机位组成。
比如:
子网掩码:254.254.254.254=11111110.11111110.11111110.1111110
每段都是8位二进制数,总共有4段。
IPADDRESS:172.25.254.11/24=172.25.254.11/255.255.255.0
其中172.25.254是网络位,11是主机位

2.网络的设定

本文中所有关于动态ip的获取,需要用到dhcp服务,关于dhcp服务的开启,查看文章的第7小节,只有在dhcp服务开启后才能够获得动态ip。

(1)图形化
图形化有两种方式

nm-connection-editor
nmtui

第一种方式之前的博客中已经详细写过,第二中方法为:device后面写eth0

LINUX的网络配置_第1张图片

(2)文件的方式

a.动态ip设定

cd /etc/sysconfig/network-scripts
vim ifcfg-eth0

里面编写:

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

然后重启

systemctl restart nerwork

b.静态ip设定

cd /etc/sysconfig/network-scripts
vim ifcfg-eth0

可以同时使一个网卡拥有两个ip,文件里面编写:

		DEVICE=eth0
		BOOTPROTO=none		
		IPADDR0=172.25.254.100
		PREFIX0=24
		IPADDR1=1.1.1.100
		NETMASK1=255.255.255.0

然后重启:

systemctl restart network

LINUX的网络配置_第2张图片

注意:ifcfg的文件在启动时都会被读取,应该删除除了ifcfg-lo和编辑的文件之外(一个网卡的情况下)的所有文件。

(3)命令的方式

命令 说明
nmcli device show eth0 查看网卡信息
nmcli device statius eth0 查看网卡服务接口信息
nmcli device disconnect eth0 关闭eth0网卡
nmcli device connect eth0 启用eth0网卡
nmcli connection show 查看网卡的链接
nmcli connection down westos 关闭
nmcli connection up westos 打开
nmcli connection reload 重新加载(很少用)
nmcli connection delte name 以name的方式删除
nmcli connection delete uuid xxxx 以uuid的方式删除

LINUX的网络配置_第3张图片
创建动态ip(dhcp)

nmcli connection add type ethernet ifname eth0 con-name westos autoconnect yes

创建静态ip(static)

nmcli connection add type ethernet ifname eth0 con-name westos ip4 172.25.254.100/24

从静态修改为动态

nmcli connection modify westos ipv4.method auto

从动态修改位静态

nmcli connection modify westos ipv4.addresses 172.25.254.100/24 ipv4.method manual

LINUX的网络配置_第4张图片

注意:使用nmcli命令时,必须开启NetworkManager。

3.网络的设定工具

命令 说明
ping ip 检测网络是否通畅
ping -c 1 ip ping1次(count)
ping -w 1 ip 等待1秒(wait)
ping -c1 -w1 ip ping1次等待1秒
ifconfig 查看网络接口(interface)
ifconfig device ip/24 设定ip
ifconfig device down 关闭(就会ping不通)
ifconfig device up 开启
ip addr show 查看所有的网络接口
ip addr add ip/24 dev device 设定ip(如果之前有ip的话,就会有两个ip)
ip addr del ip/24 dev device 删除ip
ip addr flush device 刷新(临时设定的ip就会消失)

ifconfig设定临时IP:
LINUX的网络配置_第5张图片

当重启网络后,设定的ip会自动失效。

LINUX的网络配置_第6张图片
ip addr add 设定ip后会有两个ip。
LINUX的网络配置_第7张图片

注意:ifconfig和ip addr show 命令都是临时的。当网络重启(systemctl restart network)后,设定的ip就会自动消失。

4.非同网段之间的通信

实验目的:使1.1.1.100和172.25.254.75可以通信。
实验环境:
server(单网卡)ip:1.1.1.100
desktop(双网卡)ip:172.25.254.100(eth0),1.1.1.200(eth1)
真机:ip:172.25.254.75
当设置完成网络后,检测相同网段的ip可以直接通信。

实验原理:两块网卡都连接到内核上,具备内核路由功能(接到同一内核上的两个不同网段上的网卡可以直接通信),从一个网卡到另一个网卡上进行地址伪装,ip变成可以和目标直接通信的ip网段。

网关:路由器上和当前主机在同一网段的ip叫网关。
路由器:把不可以到达目的地的地址转换成可以到达目的地的主机叫路由器。

注意:双网卡不一定是路由器,路由器必须有数据转换策略。

实验步骤:
(1)把desktop变成路由器
a.打开路由功能

sysctl -a | grep ip_forward #查看内核的路由功能,如果net.ipv4.ip_forward=1,则表示路由功能开启,如果为0,表示路由功能关闭,需要打开路由功能。

编辑路由的配置文件:

vim /etc/sysctl.conf

编写:

		net.ipv4.ip_forward=1

重启,使配置文件生效:

sysctl -p

LINUX的网络配置_第8张图片

b.打开地址伪装功能

systemctl status firewalld #确保火墙是开启状态
firewall-cmd --list-all #查看火墙的地址伪装功能是否开启
firewall-cmd --permanent --add-masquerade #打开地址伪装功能
firewall-cmd --reload #重新加载,确保修改生效

LINUX的网络配置_第9张图片

经过上面的两步,双网卡的机器变成了路由器。

(2)设置server的网关

设置网关有两种方式:全局网关和网卡网关

a. 网卡网关:当电脑上有双网卡时,在哪个网卡上设置网关,则哪个网卡生效。

vim /etc/sysconfig/network-scripts/ifcfg-eth0

在里面添加网关:

		GATEWAY=1.1.1.200

重启网络:

systemctl restart network

查看:

route -n

这样就可以ping通172.25.254.75.

LINUX的网络配置_第10张图片

b.全局网关:适用于单网卡。

vim /etc/sysconfig/network #当网卡内没有设置网关时,该网关生效

和上面的步骤一样,重启网络,查看。

5.DNS的定义及设定

地址解析:域名到ip的转换

实验准备:使真机(172.25.254.75)成为一个路由器(第一点:有路由功能;第二点:可以实现地址伪装),在desktop上添加网关(172.25.254.75)。

在真机上:

LINUX的网络配置_第11张图片

在desktop虚拟机上:

LINUX的网络配置_第12张图片
实验检验:在desktop虚拟机上可以ping通baidu的域名(www.baidu.com),但是不ping通百度的ip地址(14.215.277.38)。

LINUX的网络配置_第13张图片

(1)本地解析(前提是ip和域名都知道)

vim /etc/hosts #本地解析文件

		14.215.177.38  www.baidu.com

这样就可以访问百度了,但是由于只定义百度这个ip和域名的关系,所有其他的网站不能访问的。

LINUX的网络配置_第14张图片

但不能打开淘宝等其他网站:

LINUX的网络配置_第15张图片

(2)DNS 服务

dns服务器:为客户提供地址解析功能的主机叫dns服务器,dns服务器是已知的ip。

vim /etc/resolv.conf ##dns指向文件

里面编写:

		nameserver 114.114.114.114

LINUX的网络配置_第16张图片

(3)解析优先级的策略调整

默认情况下,本地解析的优先级高于DNS服务器的解析。

为了测试,将/etc/hosts中www.baidu.com 的ip修改为172.25.254.75。

在访问www.baidu.com时,会优先访问本地中的172.25.254.75,而不是百度的ip:14.215.177.38
LINUX的网络配置_第17张图片

为了使DNS的优先级高于本地解析,编辑文件

vim /etc/nsswitch

修改第39行:

		hosts:  dns  files

再访问百度时,优先访问真正百度的ip。

LINUX的网络配置_第18张图片

6.固定DNS指向

(1)静态网络

紧接着上面的实验,当重启网络后(systemctl restart network 或者重启NetworkManager),dns会消失。

LINUX的网络配置_第19张图片因此需要将dns写道网卡的配置文件中:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

		DNS1=114.114.114.114

注意:DNS后面必须有数字。

重启网络:

systemctl restart network

LINUX的网络配置_第20张图片

(2)动态网络

编辑文件:

vim /etc/sysconfig/network-scripts/ifcfg-eth0

		BOOTPROTO=dhcp
		PEERDNS=no   

重启网络,然后再编辑:

vim /etc/resolv.conf

		nameserver 114.114.114.114

重启网络就可以获取指定的dns了,而不是自动获取dns。LINUX的网络配置_第21张图片

7.DHCP服务器的搭建和配置

(1)DHCP的搭建

DHCP服务用来获取动态的ip地址,当DHCP服务关闭时,就不能获取动态ip。如果一个服务上没有dhcp,需要在安装dhcp。

可以直接图形化安装dhcp的包,如果安装失败,可以使用yum源进行安装。yum的配置在后面的博客中会编写。

安装成功后,可以使用:

systemctl status dhcpd

LINUX的网络配置_第22张图片
(2)DHCP的配置

DHCP的主配置文件在:/etc/dhcp/dhcpd.conf

复制模版文件来覆盖原复制文件,并修改该配置文件,删除27,28行,并且35行以后的可以全部删除,注释也可以删除。然后对该文件剩下的部分进行修改。

LINUX的网络配置_第23张图片

LINUX的网络配置_第24张图片

开启dhcp服务:

systemctl start dhcpd

然后在另一台可以和该机可以相互通信的主机上测试:

设置该机的BOOTPROTO为dhcp,重启网络后,就可以获得ip地址。

LINUX的网络配置_第25张图片

也可在日志中查看:

LINUX的网络配置_第26张图片

你可能感兴趣的:(linux)