Linux 下的网络配置
1 .IP
IP internet protocol ADDRESS 是网络进程地址
ipv4 internet protocol version 4
ip是由32个01组成
11111110.11111110.11111110.11111110 = 254.254.254.254
1个IP 有4个字节
2. 子网掩码
- 用来划分网络区域
- 子网掩码非0的位对应的ip上的数字表示这个ip的网络位
- 子网掩码0位对应的数字是ip的主机位
- 网络位表示网络区域
- 主机位表示网络区域里某台主机
3. ip通信判定
网络位一致,主机位不一致的2个IP可以直接通讯。
172.25.254.1/24 其中24=255.255.255.0
172.25.254.2/24 其中172.25.254 表示的是网络位,1和2为主机位,两台主机可以直接通信。
172.25.0.1/16
4. 网络设定工具
4.1 Ping 检测网络是否通畅
命令 | 含义 |
---|---|
ping ip | 检测网络是否通畅 |
ping -c 1 ip | ping 1 次 |
ping -w 1 ip | 等待1秒 |
ping -c 1 -w 1 ip | ping1次等待1秒 |
如图所示,在加参数 -c 和 -w 时, ping 命令会根据最小的设定而结束;在图中 ping -c 1 -w 2 192.168.122.1 时,会默认只 ping 一次等待一秒;在图中 ping -c 2 -w 1 192.168.122.1 时,会默认只 ping 一次等待一秒。
4.2 ifconfig
命令 | 含义 |
---|---|
ifconfig | 查看 |
ifconfig device ip/24 | 设定 |
ifconfig device down | 关闭 |
ifconfig device up | 开启 |
4.3 ip addr
当一块网卡需要和不同网段的设备连接时,就需要设定多个不同网段的IP,此时 IP 的设定必须用到 ip addr 命令,ifconfig 命令不可以设置多个IP。
命令 | 含义 |
---|---|
ip addr | 检测或指定网络接口 |
ip addr show | 检测 |
ip addr add ip/24 dev device | 设定(或者添加) |
ip addr del dev device ip/24 | 删除 |
注意: ip device的名字一个物理事实,看到什么命字只能用什么命字。
如输入命令 ip addr add 192.168.6.100/24 dev ens3 表示把192网段的这个 IP 给ens3 这个设备。
如再输入命令 ip addr add 172.25.254.250/24 dev ens3 表示把172网段这个 IP 也ens3 这个设备。
- ip 查看
又上面的内容可以,对于ip 的查看可以用到 ifconfig 和 ip addr 命令,具体查看效果如图所示;
当输入 ifconfig 命令时会默认查看系统所有的网卡信息,当输入 ifconfig ens3 时表示只查看 ens3 网卡信息;
当输入命令 ip addr show时,会默认显示系统中所有网卡的信息,当输入 ip addr show ens3 时只会显示指定网卡的信息。
- 用 ifconfig 和 ip addr 的方式设置 ip
ifconfig
当输入命令 ifconfig ens3 172.25.254.100 netmask 255.255.255.0, 表示将172 网段这个ip 设置为 ens3 这个网卡,网络位前三个字节,主机位为最后一个字节。
在设定完ip 之后,重启网卡之后,看到 ip 虽然已经更改,但是和同网络位的其他主机之间不通;说明 ifconfig 在设定 ip 时网卡不能被占用,也就是这个网卡不能有配置文件,有配置文件说明网卡已经被控制了;此时用命令 nm-connection-editor 将其已有的配置文件删除,删除后效果如下;
当删除配置文件之后,再次设定 ip ,此时和同网络位的其他主机之间的网络是相通的;
输入命令 ifconfig ens3 down 会把当前设置关闭,再次输入 ifconfig up ens3 会再次开启之前的设定,可用查看网卡信息的方式查看;
但是当输入 nmcli connection down ens3 时关闭,当用 nmcli connection up ens3 时,就不能打开网卡;此时查看网卡信息,之前设置的 ip 已经被删除。
ip addr
在上述 ens3 网卡上没有 ip 时可以为其设置一个 ip ,如图所示,输入命令 ip addr add 172.25.254.100/24 dev ens3 ,设置完毕之后可以用 ip addr show 或者其他的方式查看设置的 ip ; 如图 ping 同网络位的其他主机是通的说明设定已经成功;
输入命令 ip addr add 192.168.122.100/24 dev ens3 ,再为该网卡添加一个其他网络位的 ip ,并且结果显示,设定已经成功;
如果刚才的主机位设置有错误,我们可以用命令 ip addr del 192.168.122.100/24 dev ens3 来删除刚才添加的网络,此时用 ip addr show ens3 查看时,这个网段已经被删除;
如果输入命令 nmcli connection down ens3 ,会将网卡上的 ip 信息全部删除。
以上结果说明, ifconfig 和 ip addr 的方法设定的 ip 都是临时的,不会对配置文件做修改。
5. 图形方式设定ip
在设定之前要保证系统开启一个服务 NetworkManager,如果不开启,以下设定会有问题。
输入命令 systemctl status NetworkManager 来查看这个服务的状态;此时看到的是服务开启的状态。
当服务关闭时的状态如下图所示,此时一些命令便不能被系统识别;
在服务关闭时,输入 nm-connection-editor 会打开网络编辑窗口,但此时所有的网卡不在显示,不能进行编辑。
所以在设定 ip 时一定要保证次服务开启。
在设定 ip 时,最好不要用远程主机连接的方式来设定,当网络出现异常时,做起来就会有更多的问题。
5.1 用图形的方式设定 ip
在超级用户下输入命令 nm-connection-editor 打开图形编辑器,把之前的网络先给剪掉,然后点加号添加一个新的网络;
选择添加网络的类型,此处选择 因特网;
设置设备的名字,此处设置的名字为任意设置,为了区分于其他的网卡,此处设置名字和所选择的网卡名字一样;
在 IPV4 界面中设置方式为 Manual ,设置网络 ip 172.25.254.200,网络位设置为24,点击 save 保存,并退出。
以上设置完成后不会立即生效,输入命令 nmcli connection reload 加载一次,然后输入 nmcli connection down enp1s0 关闭网卡,此处的名称为设置的名称,不一定是网卡的名字,如故不确定是那个可以按两次 Tab 键,看补齐的东西有哪些再做选择;然后输入 nmcli connection up enp1s0 再开启网卡;此时修改的信息已经成功加载。
5.2 nmtui 没有图形的字符文本下的 IP 更改
上面的方式时在图形下用鼠标点击的方式来做修改,下面这种方式被成为没有图形的字符文本更改 ip .
输入命令 nmtui ,即可打开如下图所示的窗口,通过上下左右键来选择要设置的信息内容;此处选择 Edit a connection 直接回车,表示编辑一个网络连接;
用上下左右键来选择,先 用Delete 删除当前的网络,再选择Add 添加一个新的网络;
在选择添加之后,输入需要设置的信息如下,此处选择 ens3 的网卡,并设置名称为 ens3 ,添加两个网段的 ip ,分别为 192.168.122.100 和 172.25.254.100;并设置网关和DNS 等信息,此处网关可以和之前设置一样,先不做设置;然后点击ok ,退出当前的页面;返回到上一个页面选择Back 返回;回到第一个界面选择Quit 退出,设定完毕。
同图形的设定基本一样,接下来输入命令 nmcli connection reload 加载一次,然后输入 nmcli connection down ens3 关闭网卡;然后输入 nmcli connection up ens3 再开启网卡;此时修改的信息已经成功加载。
6. 命令方式设定网络
上述提到的命令的方法 ifconfig 和 ip addr 的方法设置的 ip 都是临时设定;此处的 nmcli 命令对于 ip 的修改则是永久的,用 nmcli 做的修改其实是对配置文件的内容做的修改;用nmcli 做修改时 NetworkManager 服务也必须开启。
6.1 nmcli device
命令 | 含义 |
---|---|
nmcli device connect ens160 | 启用ens160网卡 |
nmcli device disconnect ens160 | 关闭ens160网卡 |
nmcli device show ens160 | 查看网卡信息 |
nmcli device status ens160 | 查看网卡服务接口信息 |
注: 此处的 ens160 是根据网卡名字,而不是自己设置的名字,如果在输入命令忘记网卡的名字,可以按Tab 来补齐。
输入命令 nmcli device 用Tab 键补齐出来的内容如图所示;
输入命令 nmcli device show 来显示所有网卡的信息;
输入命令nmcli device status 查看所有网卡服务接口信息;
输入命令nmcli device disconnect ens3 来关闭 ens3 网卡接口;
输入命令nmcli device status 查看所有网卡服务接口信息,看ens3 网卡接口是否已经关闭;
输入命令nmcli device connect ens3 来开启 ens3 网卡接口;
输入命令nmcli device status 查看所有网卡服务接口信息,看ens3 网卡接口是否已经开启;
6.1 nmcli connection
命令 | 含义 |
---|---|
nmcli connection show | 查看连接 |
nmcli connection down westos | 关闭连接 |
nmcli connection up westos | 开启连接 |
nmcli connection delete westos | 删除连接 |
nmcli connection add type ethernet con-name westos ifname ens160 ip4 172.25.254.100/24 | 添加连接 |
nmcli connection add type ethernet con-name westos ifname ens160 ip4 172.25.254.100/24 | 更改 |
注: 此处的 westos 为自己设置的名字,而不是网卡的名字,如果在输入命令忘记设置的名字,可以按Tab 来补齐。
输入命令 nmcli connection ,用Tab 来补齐,可以看到 nmcli connection 可以跟的内容有哪些;
输入命令 nmcli connection show 可以看到当前网卡的状态;
输入命令 nmcli connection down ens3 关闭 ens3 网卡的连接;
输入命令 nmcli connection show 可以看到当前网卡的状态;
输入命令 nmcli connection up ens3 开启 ens3 网卡的连接;
输入命令 nmcli connection show 可以看到当前网卡的状态;
输入命令 nmcli connection delete ens3 删除 ens3 网卡的连接;
输入命令 ifconfig 查看网卡的配置信息;
输入命令 nmcli connection add type ethernet con-name ens3 ifname ens3 ipv4.method manual ipv4.addresses 192.168.122.100/24 得到如图所示的信息;此次添加是给 ens3 网卡重新配置了新的 ens3 的名称,新的名称有新的 ip 为 192.168.122.100。
但是之前名称为 ens3的还存在;这就造成有两个名称为ens3 ,在再次开启时有时会出现错乱;在给一个网卡添加连接时,要用不同的名字区分开来。
输入命令 nmcli connection modify ens3 ipv4.addresses 172.25.254.100,在更改完成之后不会立即生效;
此时输入命令 nmcli connection reload ens3 重新加载网卡;
输入命令 nmcli connection down ens3 关闭 ens3 网卡;
输入命令 nmcli connection up ens3 开启 ens3 网卡;
此时再查看时修改的信息已经加载出来了。
7. 管理网络配置文件
网络配置的目录 /etc/sysconfig/network-scripts/ ,其实前面图形的修改也是修改的这个目录下的文件。
当只删除这个文件时,网卡在中的还在,需要nmcli connection reload 一下。reload 之后用nm-connection-editor 打开的就没有了。
网络配置文件的名命规则
ifcfg-xxxx 此处xxxx 表示设置的名称
字符 | 含义 |
---|---|
DEVICE=xxx | 设备名称(网卡) |
BOOTPROTO=dhcp(static)(none) | 设备工作方式(none 、和static 是网卡设定时手动指定,dhcp 是自动) |
ONBOOT=yes | 网络服务开启时自动激活网卡 |
IPADDR= | IP地址 |
PREFIX=24 | 子网掩码 |
NETMASK=255.255.255.0 | 子网掩码 |
NAME= | 接口名称 |
注:两个子网掩码的意思相同,写一个就可以。
7.1 dhcp 动态网络设定
-
编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-ens160 ,此处以 ifconfig-ens160为例;编写内容如下:
DEVICE=ens160
ONBOOT=yes
BOOTPROTO=dhcp -
systemctl restart network 重启网络,此时如果一个网络段的用户没有开启 dhcpd 服务,则再次开启网络会失败;如果一个网段中有其他用户提供 dhcpd 服务,则根据 dhcpd 的设置服务规则即可获得 ip 等信息。
7.2 静态网络设定
- 配置一个Ip
- 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-westos ,文件内容如下:表示对 ens3 网卡在静态网络下配置 ip 为192.168.122.100 ,子网掩码为 255.255.255.0,接口名称为 westos;
- 输入命令 nmcli connection reload 重新加载;
- 输入命令 nmcli connection down westos 关闭连接;
- 输入命令 nmcli connection up westos 开启连接;
- 输入命令 ip addr show 显示当前网卡的信息
- 一个网卡上配置多个 ip
- 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-westos ,文件内容如下:表示对 ens3 网卡在静态网络下配置两个 ip ,第一个为192.168.122.100 ,第二为 172.25.254.100 ;第一个子网掩码为 255.255.255.0,第二个子网掩码为24 ,此处的24 和255.255.255.0 的意思是一样的;接口名称为 westos;
- 输入命令 nmcli connection reload 重新加载;
- 输入命令 nmcli connection down westos 关闭连接;
- 输入命令 nmcli connection up westos 开启连接;
- 输入命令 ip addr show 显示当前网卡的信息
- 网卡配置文件的帮助查看
/usr/share/doc/initscripts/ sysconfig.txt 里面的文件有说明对其用法的详解。
8. lo回环接口
负责本机的服务和服务之间的沟通
回环接口------人的神经----127.0.0.1-----localhost
如图为用 ifconfig 命令查看到的 lo 接口详细信息。
9. 网关 GATEWAY
前面提到的两台主机之间的通信,是在两台主机在相同的网络位情况下;那么当我们的主机想要访问其他网段的主机时,就需要配置网关,网关的意思是,接收到相同网络端主机的请求,对它进行包装,然后让其可以访问不同网络位的主机。
9. 1 把双网卡主机变成路由器
现实生活中,网关大部分是由路由器实现其作用;在此次实验中,用到的是真实主机和虚拟机,真实主机是可以联网的;那么虚拟机要联网可以将真实主机的 ip 设置为自己的网关,此时在真实主机中网卡一定要有路由器的功能。
在真实主机中用超级用户的身份
- 输入命令 systemctl start firewalld ,开启火墙;
- 输入命令 firewall-cmd --list 查看火墙列表;
- 输入命令 firewall-cmd --permanent --add-masquerade 为其添加地址伪装功能;
- 输入命令 firewall-cmd --reload 重新加载;
- 输入命令 firewall-cmd --list-all 显示所有的列表;
如图所示当出现 masquerade: yes 表示地址伪装功能开启,真实主机变成路由器。
临时设定网关
输入命令 ip route add default via 1.1.1.200 表示将 1.1.1.200 这个网关设定给当前的网卡;
输入命令 ip route del default via 1.1.1.200 表示将 1.1.1.200 手动临时删除设定。
- 输入命令 route -n 来查看当前主机上是否已经设置了网关;
- 输入命令 ip route add default via 192.168.122.1 ,把192.168.122.1 这个 ip 设定为当前网卡的网关;
- 此时不仅可以连接相同网络位的主机,还可以连接不同网络位的主机;如下图所示:
当输入 nmcli connection down westos ;再输入 nmcli connection up westos 时,再次查看网关设定,会发现之前设置的网关已经没有了,这就说明用命令的方法设置网关是临时的。
9.2 设定单网卡主机的网关
以上的设定办法是临时的,那么对于配置文件修改的设定则是永久的设定。
- 全局网关设定,针对所有没有设定网关的网卡生效
- 编辑配置文件 /etc/sysconfig/network ,输入内容如下;
- 输入命令 nmcli connection reload 让其重新加载;
- 输入命令 nmcli connection down westos 让其关闭;
- 输入命令 nmcli connection up westos 让其开启;
如图所示可以用命令 route -n 来查看网关是否设定成功;此处最后的设置是成功的, 网关为 192.168.122.1,此为真实主机的 ip 。
- 指定网卡的网关配置
- 编辑配置文件 /etc/sysconfig/network-scripts/ifcfg-westos;
- 输入命令 nmcli connection reload 让其重新加载;
- 输入命令 nmcli connection down westos 让其关闭;
- 输入命令 nmcli connection up westos 让其开启;
- 再输入 route -n 来查看网关设置是否已经成功;
注:
1)对于指定网卡网关配置时,要根据网卡中添加的 ip 数量来设置网关;当网卡中有两个或两个以上的 ip 时,设置网关时应该根据 IPADDR 后面加的数字一致;如设置的是 IPADDR0,则网关设定 GATEWAY0=192.168.122.1 ;当只有一个 ip 时就不用加数字。
2)如果对于配置文件中 /etc/sysconfig/network-scripts/ifcfg-westos网关的删除时,虽然把配置文件中的网关删除,但是还不起作用。此时只有重启网络网关才会没有设定的网关,但是在实际工作中,如要重启网络,正在浏览的网页会关闭;那么就需要手动删除,输入命令 ip route del default via192.168.122.1. 此时就不显示了,但是网还可以继续使用。
10. 设定dns
在网关设定之后,使用起来还是不够方便,只能用 ip ,那么ip 和域名之间怎么转换呢,那么我们就需要地址解析。
地址解析
-
系统操作者对字符敏感
-
系统网络通信需要通过ip地址这个数字
-
当操作着输入网址 www.baidu.com, 这个网址不是一个可以通信的IP地址
-
于是必须要在系统中把www.baidu.com变成百度服务器的IP地址
-
这样的过程叫做地址解析
domain name server == 域名解析服务
如图所示,当系统中没有配置地址解析服务时,用ip 的方式可以连接成功,但是用域名的方式就不能成功。
10.1 本地解析文件
- 编辑配置文件 /etc/hosts,此文件中直接提供地址解析;
在配置文件中写入 14.215.177.39 www.baidu.com ,表示会将地址 www.baidu.con 的域名解析为 14.215.177.39,连接上网。
如图所示在编写成功之后,会立即生效。
10.2 dns的指向文件
以上的方法提供地址解析服务虽然可行,但是访问别的域名时又会出现同样的问题,那么一一配置就显得很麻烦。那么可以用 dns 直接为所有的域名提供解析服务。
- 编辑配置文件 /etc/resolv.conf ;
在配置文件中写入 nameserver 114.114.114.114 ,表示将 114.114.114.114 作为提供地址解析的服务,在访问其他域名时,如果本地解析中没有提供地址解析服务,则去访问 114.114.114.114 ,会提供地址解析服务。
此处的114.114.114.114 为一个常用的地址解析 ip,当然年还会有其他的提供地址解析服务的 ip 。
如图在做好 dns 之后,访问其他域名时就可以了。
10.3 网卡解析文件
除了以上编辑系统级的文件之外,还可以在编辑网卡配置文件信息时就指定地址解析服务。
- 编辑网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-westos ;
- 输入命令 nmcli connection reload 重新加载;
- 输入命令 nmcli connection down westos 关闭网卡;
- 输入命令 nmcli connection up westos 开启网卡;
编辑配置文件时如图所示,设定的 DNS1 = 1.1.1.1 ,表示地址解析服务 ip 为 1.1.1.1 ,此处是为了实验效果,不确保 1.1.1.1 会提供地址解析服务。
当重新加载网卡配置文件之后,dns的指向文件 /etc/resolv.conf 会根据网卡配置文件的内容而更新。
如果不让 指向文件随配置文件的重新加载而更改,可以在配置文件中加一行内容 PEERDNS = no,在重启网络时便不会更改。
注:在网卡配置文件中设置地址解析服务时 DSN 只有 0 和 1 两个级别,数字一定要写。
对于网卡配置文件中参数的查看可以在该 /usr/share/doc/initscripts/
目录下查看内容。
以上地址解析设定成功之后,如何得知地址解析服务是那个提供的。如要查询 www.qq.com ,可以通过输入命令 dig www.qq.com 查看域名与 ip 之间的转换是谁提供的。
如图所示,该服务时由 114.114.114.114 提供的地址解析服务。
以上的设置是在静态网络下设定的,那么如果是动态就需要以下的操作设定。
网络工作模式为 dhcp
- 编辑网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-westos ;将网络模式修改为 dhcp 动态;其他信息如图中所示;
- 输入命令 nmcli connection reload 重新加载;
- 输入命令 nmcli connection down westos 关闭网卡;
- 输入命令 nmcli connection up westos 开启网卡;
如图所示,此时的 ip 会自动获取,而且网关和地址解析服务也会自动获得;第一次重启会删除 cat /etc/resolv.conf 文件内容;然后更改其地址解析为 dhcp 自动获得的。
如果不需要获得dns信息, 在网卡配置文件中加入 PEERDNS=no,即可不会自动获得。
11 设定解析的优先级
以上对于地址解析服务,不仅可以编辑本地解析文件也可以编辑 DNS 指向文件,当地址解析中有设置时,DNS 也做了配置时,那个优先级高呢。
系统默认:本地解析文件 /etc/hosts 的优先级高于 DNS 指向文件 /etc/resolv.conf ;默认设置可以通过人为的办法来更改,如果需要调整可以在 /etc/nsswitch.conf 文件中调整。
如图 85 行 ,默认设置为 file dns ,是本地解析大于 dns 指向文件;可以将其修改为 dns files myhostname,表示指向文件优先级高于本地解析服务。
12. dhcp服务配置
以上的设置在静态下,只需要手动进行配置即可;如果设置为东逃网络,那么相同网段的其他主机中必须开启一个 dhcpd 的服务。否则网卡启动不起来。
此次实验在 node1 中将配置文件中的内容修改为如下所示,他在开启时就需要自动获取ip ,当没有人开启服务时,就起不来。
DEVICE=ens3
BOOTPROTO=dhcp
ONBOOT=yes
NAME=westos
配置 dhcpd
- 再另外一台主机中找到安装包,直接安装;
- 安装完成之后编辑配置文件,此处选择直接复制,当然也可以用man 5 查看;
- 在复制好的文件中,删除 27、28 行之后再删除35行之后的内容;编辑第7和第8行的内容如图所示,第 8 行表示地址解析服务的设置为 114.114.114.114;
- 编辑第30和31 行的内容如图所示,30行表示的是 提供 ip 的网段和子网掩码;31行表示的是提供 ip 范围;
- 设置完成之后,再 node 1 中重启服务,会得到 ip 和地址解析服务。
以上设定结束后,还可以在提供服务的主机中查看这个服务提供给了谁。
输入命令 less /var/lib/dhcpd/dhcpd.leases 显示文件信息。