Linux系统管理入门:网络管理
前言
在现代社会中,网络已经成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,我们都离不开网络。然而,网络的复杂性使得网络管理变得困难重重。为了更好地管理和维护网络,我们需要了解一些基本的网络知识。
本文将介绍一些常用的Linux网络管理知识和命令,包括网卡命名规则、网络设备配置、IP地址管理、路由设置、DNS解析等。通过学习这些内容,我们可以更好地理解和掌握网络的运行原理,从而提高我们的网络管理能力。
1、网卡命名规则
RHEL7以前是根据网卡的加载顺序依次以eth0、eth1…命名网卡;
RHEL8以网卡设备类型命名(基于udev规则),例如enp3s0
- 接口类型
- en 以太网 Ethernet
- wl 无线局域网 WLAN
- ww 无线广域网 WWLAN
- 适配器类型
- o 集成设备索引号(板载)
- s 扩展槽的索引号(热拔插)
- p s PCI扩展总线
- x s 基于MAC进行命名
数字代表索引、ID、端口
去除udev规则方法
1 |
|
2、ifconfig命令
来自于net-tools
软件包,被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。
- ①显示网络设备信息
ifconfig
显示已激活网卡信息ifconfig -a
显示所有网卡信息
- ②启动/关闭指定网卡
ifconfig eth0 up
启动eth0网卡ifconfig eth0 down
关闭eth0网卡
- ③启动/关闭arp协议
ifconfig eth0 arp
启动eth0设备arpifconfig eth0 -arp
关闭eth0设备arp
- ④临时配置IP地址,重启网络服务或者系统重启后失效
ifconfig eth0 192.168.1.1/24
3、route命令
用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
语法
1 |
|
选项
1 |
|
参数
1 |
|
示例
- ①查询路由表
route -n
- ②添加/删除默认路由
route add default gw 192.168.80.254 dev eth0
(下同可省)route del default
- ③添加/删除主机路由
route add -host 192.168.1.1 gw 192.168.80.254
route add -net 192.168.1.1 netmask 255.255.255.255 gw 192.168.80.254
- 删除
route del -host 192.168.1.1
route del -net 192.168.1.1 netmask 255.255.255.255
- ④添加/删除网络路由
route add -net 192.168.1.0 netmask 255.255.255.0 dev eth0
同网段路由route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.80.254
- 删除
route add -net 192.168.1.0 netmask 255.255.255.0
4、arp命令
用于显示和修改 IP 到 MAC 转换表。
语法
1 |
|
选项
1 |
|
参数
主机:查询 arp 缓冲区中指定主机的 arp 条目。
示例
1 |
|
5、ip命令
iproute包提供,用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
ip link命令
1 |
|
ip addr命令
1 |
|
ip route命令
1 |
|
注:ip route同样可以为指定设备eth0添加默认路由、主机路由、网络路由;
6、NetworkManager包提供
目前主流的Linux网络管理工具,NetworkManager的出现是为了解决network-scripts的缺陷 、
在RHEL7之前使用network-scripts管理网络(在RHEL7和Centos7的版本中NetworkManmager和network-scripts是共存的)
从RHEL8开始,淘汰了network-scripts(RHEL9下线)
(1)nmtui命令
nmtui字符图形化配置网络工具
(2)nmcli命令
①查询设备与连接信息
1 |
|
②删除/修改/更新网卡配置文件
1 |
|
③添加IP地址(永久生效)
1 |
|
④添加路由(永久生效)
1 |
|
其他配置永久路由方法
1 |
|
⑤配置bond
1 |
|
⑥配置网桥br0
1 |
|
7、主机名与地址解析
(1)修改主机名
1 |
|
(2)DNS地址解析
1 |
|
8、查看服务端口
标准服务端口配置文件/etc/services
(1)netstat命令
netstat是net-tools包提供,用于显示网络连接信息、路由信息、接口状态等;
1 |
|
(2)ss命令
- ①ss命令由iproute包提供,可以用来获取socket统计信息,能够显示比netstat更多更详细的有关TCP和连接状态的信息;当服务器的socket连接数量变得非常大时,比netstat更快速更高效。
- ②ss高效的秘诀在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。
1 |
|
9、网络连接状态详解
共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的:
- LISTEN:首先服务端需要打开一个socket进行监听,状态为 LISTEN,侦听来自远方TCP端口的连接请求 ;
- SYN_SENT:客户端通过应用程序调用connect进行active open,于是客户端tcp发送一个SYN以请求建立一个连接,之后状态置为 SYN_SENT,在发送连接请求后等待匹配的连接请求;
- SYN_RECV:服务端应发出ACK确认客户端的 SYN,同时自己向客户端发送一个SYN,之后状态置为,在收到和发送一个连接请求后等待对连接请求的确认;
- ESTABLISHED:代表一个打开的连接,双方可以进行或已经在数据交互了, 代表一个打开的连接,数据可以传送给用户;
- FIN_WAIT1:主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态, 等待远程TCP的连接中断请求,或先前的连接中断请求的确认;
- CLOSE_WAIT:被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT, 等待从本地用户发来的连接中断请求;
- FIN_WAIT2:主动关闭端接到ACK后,就进入了 FIN-WAIT-2,从远程TCP等待连接中断请求;
- LAST_ACK:被动关闭端一段时间后,接收到文件结束符的应用程 序将调用CLOSE关闭连接,这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK,等待原来发向远程TCP的连接中断请求的确认;
- TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认;
- CLOSING: 比较少见,等待远程TCP对连接中断的确认;
- CLOSED: 被动关闭端在接受到ACK包后,就进入了closed的状态,连接结束,没有任何连接状态;
- UNKNOWN:未知的Socket状态;
常见标志位
- SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
- ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
- FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。
本文主要介绍了Linux网络管理的相关知识和命令,包括网卡命名规则、网络设备配置、IP地址管理、路由设置、DNS解析、NetworkManager工具的使用以及查看服务端口、解析网络连接状态和修改主机名与地址解析等内容。通过学习这些内容,读者可以更好地理解和掌握网络的运行原理,从而提高网络管理能力。
本文提供的命令选项仅包含常用选项,而非所有选项。你可以通过在命令行中输入 命令 --help
来查看所有可用选项。