此文章以红帽Linux9版本为例进行讲解。
红帽Linux9版本的网络管理十分全面,可在多处进行网络配置的修改,但需要注意的是,在9版本内,用户可在配置文件内进行网络配置的修改,但系统不会执行修改的命令,而在9之前的版本可执行。
VMware虚拟机上的三种网络连接方式
桥接模式:
通过虚拟网桥将主机上的网卡与虚拟网卡Vmnet0相连接,桥接模式下虚拟机的网卡都与虚拟交换机Vmnet0相连接,当虚拟机想要上网时,需将虚拟机IP地址,子网掩码,网关等配置与主机网卡相同。
NAT模式:
通过虚拟网桥将主机上的网卡与虚拟网卡Vmnet8相连接,NAT模式下虚拟机的DHCP服务器连接在Vmnet8虚拟交换机上,需要注意的是,虚拟网卡Vmnet8只是作为主机与虚拟机通信的接口,虚拟机最终还是依靠主机网卡进行联网。
Host-Only模式:
通过虚拟网卡Vmnet1与虚拟交换机Vmnet1相连接,从而实现虚拟机通信,当虚拟机需要进行联网时,将主机联网的网卡共享给虚拟网卡Vmnet1,实现虚拟机联网。
NetworkManager的特点
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,能自动发现网卡并配置ip地址。
NetworkManager的特点
NM能管理各种网络:
有线网卡、无线网卡
动态ip、静态ip
以太网、非以太网
物理网卡、虚拟网卡
工具齐全:
命令行、文本界面、图形界面、web
广纳天地:
管理各种网络,有线、无线、物理、虚拟
参数丰富:
多达200多项配置参数(包括ethtool参数)
一统江湖:
RedHat系、Suse系、Debian/Ubuntu系,均支持
大势所趋:
从红帽Linux9版本开始,只能通过NM管理网络
一、配置网络
网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口。这里,主要是指计算机的网络接口即网卡设备。
从红帽Linux7版本开始引入了一种新的“一致网络设备命名”的方式为网络接口命名,该方式可以根据固件、设备拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号。
网络类型符号:
en:表示以太网(Ethernet)
wl:表示无线局域网(wlan)
ww:表示无线广域网(wwan)
根据设备类型或位置选择符号:
o:表示内置(onboard)于主板上的集成设备(即集成网卡)及索引号;
s:表示是插在可以热拔插的插槽上的独立设备及索引号;
x:表示基于MAC地址命名的设备; p——表示PCI插槽的物理位置及编号。
需要注意的是:
一个网络接口,可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态。
一、修改配置文件(不推荐)
前提:
需要有network服务
- 进入配置文件
vim /etc/NetworkManager/system-connections/ens160.nmconnection
- 在配置文件内进行相应内容的编写
[root@tym ~]# vim /etc/NetworkManager/system-connections/ens160.nmconnection
[connection]
id=ens160
uuid=63a4d8e6-5b83-3145-b9d8-81ac17ac17cc
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1708402421
[ethernet]
[ipv4]
address1=192.168.218.4/24,192.168.218.2
dns=223.5.5.5;
method=manual
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
二、使用IP命令配置临时生效的网络连接
- 查看网卡在网络层的配置信息,加-s表示增添显示相关统计信息,如接收 (RX) 及传送 (TX) 的数据包数量等
ip [-s] addr show [网卡设备名]
[root@tym ~]# ip addr show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:0c:29:57:78:25 brd ff:ff:ff:ff:ff:ff
altname enp3s0
inet 192.168.218.4/24 brd 192.168.218.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe57:7825/64 scope link noprefixroute
valid_lft forever preferred_lft forever
- 查看网卡在数据链路层的配置信息
ip [-s] link show [网卡设备名]
[root@tym ~]# ip link show ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:57:78:25 brd ff:ff:ff:ff:ff:ff
altname enp3s0
- 添加或删除网卡的临时IPv4地址;添加或删除网卡的临时IPv6地址
ip [-4] addr add | del IP地址[/掩码长度] dev 网卡连接名
ip -6 addr add|del IP地址[/掩码长度] dev 网卡连接名
[root@tym ~]# ip addr add 192.168.218.5/24 dev ens160
[root@tym ~]# ip a
inet 192.168.218.4/24 brd 192.168.218.255 scope global noprefixroute ens160
valid_lft forever preferred_lft forever
inet 192.168.218.5/24 scope global secondary ens160
valid_lft forever preferred_lft forever
- 禁用|启用指定网卡
ip link set dev 网卡的设备名 down | up
[root@tym ~]# ip link set dev ens160 up
三、nmcli命令 (命令行工具)
命令界面输入 “nmcli”,按下"Tab" 键,输出相匹配的后续命令,输入相匹配的命令后,按下"Tab" 键继续输出相匹配的后续命令。
[root@tym ~]# nmcli
agent connection device general help monitor networking radio
[root@tym ~]# nmcli connection
add delete edit help load modify reload up
clone down export import migrate monitor show
- 查看网卡设备
nmcli device
简写:nmcli d
[root@tym ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
lo loopback unmanaged --
nmcli device show
[root@tym ~]# nmcli device show
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:57:78:25
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
connected:已被NM管理,并且当前有活跃的connection
disconnected:已被NM管理,但是当前没有活跃的connection
unmanaged:未被NM管理
unavailable:不可用,NM无法管理,通常出现于网卡为down的时候
- 查看网卡相应的会话
nmcli connection
简写:nmcli c
nmcli c show
[root@tym ~]# nmcli connection
NAME UUID TYPE DEVICE
ens160 63a4d8e6-5b83-3145-b9d8-81ac17ac17cc ethernet ens160
- 配置已存在会话的网卡的IP地址
非交互式:
nmcli c modify…… )----非交互式的相关配置
[root@tym ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.218.5/24 ipv4.gateway 192.168.218.2 ipv4.dns 223.5.5.5 autoconnect yes
[root@tym ~]# nmcli c up ens160(重启网卡设备)
交互式:
nmcli c edit…… )----交互式的相关配置
[root@tym ~]# nmcli connection edit ens160
nmcli> goto ipv4
nmcli ipv4> set addresses 192.168.168.11/24
nmcli ipv4> activate(激活)
nmcli ipv4> quit
[root@tym ~]# nmcli c up ens160
- 添加新的会话
nmcli c add type ethernet con-name 会话名称 ifname 网卡设备 ipv4.addresses IP地址 ipv4.gateway 网关 ipv4.dns dns服务器 ipv4.method manual autoconnect yes
[root@tym ~]# nmcli c add type ethernet con-name 1 ifname ens160 ipv4.addresses 192.168.218.11/24 ipv4.gateway 192.168.218.2 ipv4.dns 223.5.5.5 ipv4.method manual autoconnect yes
Connection '1' (635585a9-aed8-4327-9bf8-7fbf1565036b) successfully added.(会话建立成功)
[root@tym ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 63a4d8e6-5b83-3145-b9d8-81ac17ac17cc ethernet ens160
1 635585a9-aed8-4327-9bf8-7fbf1565036b ethernet --
- 连接、断开、删除会话
连接会话
[root@tym ~]# nmcli c up 网卡设备
断开会话
[root@tym ~]# nmcli c down 网卡设备
删除会话
[root@tym ~]# nmcli c delete 网卡设备
四、nmtui (图形界面工具)
nmtui(命令行回车后,进入图形化界面)
- 命令回车后进入的第一页面如下图。
使用键盘上的上下左右键可进行不同选项的选择,选项的含义如下:
Edit a connection ----编辑一个网络连接,即可创建或修改一个网络连接
Activate a connection ----激活一个网络连接
Set system hostname ----设置系统的主机名
-
进入选项 “Edit a connection”,创建一个新的网络连接。
进入选项后,我们使用键盘左右键移动光标,选中 “Add” 选项,创建一个新的网络连接
进入 “Add” 选项后,我们选择 “Ethernet” 选项
选择完成网络类型后,回车进入如下页面
在此页面,使用上下键移动光标,我们需要将IPv4的配置模式更改为手动模式,并在虚拟机相对应的网络连接模式(桥接模式、NAT模式、Host-Only模式)下进行相应的IP地址、网关、DNS服务器等配置
配置完成后,使用上下键将光标移动至最下方,并选中 “OK” ,然后回车
-
进入选项 “Activate a connection”,激活创建的网络连接。
使用上下左右键选中创建的新网络连接,并将光标移动至 “Deactivate” 处,进行回车,如网络连接前显示 “ * ” 号,则代表该连接已激活
-
最后,回到最初的页面,选中 “Quit” ,并移动光标至 “OK” ,然后回车,完成新网络连接的创建和激活。
二、网络测试命令
一、ping 命令
用于测试网络的连贯性
命令格式为:
ping [选项] <目标主机名或IP地址>
选项:
-c 数字:用于设定本命令发出的ICMP消息包的数量,若无此选项,则会无限次发送消息包直到 用户按【Ctrl+C】组合键才终止命令。
-s 字节数:设置ping命令发出的消息包的大小,默认发送的测试数据大小为56字节;自动添加8字节的ICMP协议头后,显示的是64字节;再添加20字节的IP协议头,则显示的为84字节。最大设置值为65507B。
-i 时间间隔:设定前后两次发送ICMP消息包之间的时间间隔,无此选项时,默认时间间隔为1 秒。为了保障本机和目标主机的安全,一般不要小于0.2秒。
-t :设置存活时间TTL(Time To Live)
使用效果如下:
[root@tym ~]# ping -c 2 www.baidu.com
PING www.a.shifen.com (120.232.145.185) 56(84) bytes of data.
64 bytes from 120.232.145.185 (120.232.145.185): icmp_seq=1 ttl=128 time=35.1 ms
64 bytes from 120.232.145.185 (120.232.145.185): icmp_seq=2 ttl=128 time=36.1 ms
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 35.093/35.573/36.053/0.480 ms
二、tracepath 命令
用于追踪并显示报文到达目的主机所经过的路由信息
命令格式为:
tracepath [选项] <目标主机名或目标IP地址>
常用选项:
-n :对沿途各主机节点,,仅仅获取并输出IP地址,不在每个IP 地址的节点设备上通过DNS查找其主机名,以此来加快测试速度。
-b :对沿途各主机节点同时显示IP地址和主机名。
-l 包长度:设置初始的数据包的大小。
-p 端口号:设置UDP传输协议的端口(缺省为33434)。
使用效果如下:
[root@tym ~]# tracepath -b www.baidu.com
1?: [LOCALHOST] pmtu 1500
1: _gateway (192.168.218.2) 0.198ms
1: _gateway (192.168.218.2) 0.337ms
2: no reply
三、traceroute 命令(Windows 系统下是tracert)
该命令利用ICMP 协议定位计算机和目标计算机之间的所有路由器,追踪数据包在网络上传输时的全部路径,它默认发送的数据包大小是40字节
命令格式为:
traceroute [选项] <目标主机名或目标IP地址>
常用选项:
-I :使用ICMP协议
三、通过域名来访问主机
一、配置静态解析,通过 /etc/hosts 文件实现域名解析
[root@tym ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.218.4 tym
[root@tym ~]# ping tym
PING tym (192.168.218.4) 56(84) bytes of data.
64 bytes from tym (192.168.218.4): icmp_seq=1 ttl=64 time=0.091 ms
64 bytes from tym (192.168.218.4): icmp_seq=2 ttl=64 time=0.083 ms
二、通过 /etc/resolv.conf 文件指派域名解析服务器的地址,由dns服务器做域名解析
[root@tym ~]# vim /etc/resolv.conf
# Generated by NetworkManager
nameserver 223.5.5.5
nameserver 192.168.218.4
[root@tym ~]# host www.baidu.com 192.168.218.4
Using domain server:
Name: 192.168.218.4
Address: 192.168.218.4#53
Aliases:
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 120.232.145.144
www.a.shifen.com has address 120.232.145.185
www.a.shifen.com has IPv6 address 2409:8c54:870:67:0:ff:b0c2:ad75
www.a.shifen.com has IPv6 address 2409:8c54:870:34e:0:ff:b024:1916
四、从网站下载文件
一、wget命令
用于在终端命令行里下载网络文件,英文全称为:web get
命令格式为:
wget [选项] 网址
选项:
-P :下载到指定目录
-t :最大尝试次数
-b :后台下载模式
-c :断点续传
-p :下载页面内所有资源,包括图片、视频等
-r :递归下载
使用效果如下:
[root@tym ~]# wget http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/s/sl-5.02-1.el8.x86_64.rpm
--2024-04-03 21:23:56-- http://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/s/sl-5.02-1.el8.x86_64.rpm
Resolving rpmfind.net (rpmfind.net)... 195.220.108.108
Connecting to rpmfind.net (rpmfind.net)|195.220.108.108|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16564 (16K) [application/x-rpm]
Saving to: ‘sl-5.02-1.el8.x86_64.rpm’
sl-5.02-1.el8.x86_64.rpm 100%[=====================================>] 16.18K 5.77KB/s in 2.8s
2024-04-03 21:24:02 (5.77 KB/s) - ‘sl-5.02-1.el8.x86_64.rpm’ saved [16564/16564]
[root@tym ~]# ls
anaconda-ks.cfg sl-5.02-1.el8.x86_64.rpm
二、curl命令
curl命令是一个网络工具,其主要作用是通过http、https、ftp等方式下载 / 上传文件
命令格式为:
curl 网址 [选项]
选项:
-o :指定名称
使用效果如下:
[root@tym ~]# curl www.baidu.com -o baidu.html
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2381 100 2381 0 0 19677 0 --:--:-- --:--:-- --:--:-- 19677
[root@tym ~]# ls
anaconda-ks.cfg baidu.html sl-5.02-1.el8.x86_64.rpm