Linux
Linux系统管理
Linux系统管理入门:网络管理
Linux系统管理入门:文件系统组成及常用命令详解
Linux系统管理入门:进程管理
Linux系统管理入门:用户、组与权限管理
Linux系统管理入门:磁盘管理
Linux介绍
ArchLinux安装NVIDIA驱动
Linux启用SSH登录二次验证
RedHat重置密码
Ubuntu安装显卡驱动
双网卡绑定
常用命令
开启ipv6协议栈
RedHat_Udev策略配置
本文档使用 MrDoc 发布
-
+
首页
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规则方法 ```Bash ①$ vim /etc/default/grub 在GRUB_CMDLINE_LINUX行的rhgb前添加net.ifnames=0 biosdevname=0 ②grub2-mkconfig -o /boot/grub2/grub.cfg ③reboot后生效 ``` ## 2、ifconfig命令 来自于`net-tools`软件包,被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。 - ①显示网络设备信息 - `ifconfig` 显示已激活网卡信息 - `ifconfig -a` 显示所有网卡信息 - ②启动/关闭指定网卡 - `ifconfig eth0 up` 启动eth0网卡 - `ifconfig eth0 down` 关闭eth0网卡 - ③启动/关闭arp协议 - `ifconfig eth0 arp` 启动eth0设备arp - `ifconfig eth0 -arp` 关闭eth0设备arp - ④临时配置IP地址,重启网络服务或者系统重启后失效 - `ifconfig eth0 192.168.1.1/24` ## 3、route命令 用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。 **语法** ```shell route(选项)(参数) ``` **选项** ```shell -A:设置地址类型; -C:打印将Linux核心的路由缓存; -v:详细信息模式; -n:不执行DNS反向查找,直接显示数字形式的IP地址; -e:netstat格式显示路由表; -net:到一个网络的路由表; -host:到一个主机的路由表。 ``` 参数 ```shell add:增加指定的路由记录; del:删除指定的路由记录; target:目的网络或目的主机; gw:设置默认网关; mss:设置TCP的最大区块长度(MSS),单位MB; window:指定通过路由表的TCP连接的TCP窗口大小; dev:路由记录所表示的网络接口。 ``` **示例** - ①查询路由表 - `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 转换表。 **语法** ```shell arp(选项)(参数) ``` **选项** ```shell -a # 主机 :显示 arp 缓冲区的所有条目; -H # 地址类型 :指定 arp 指令使用的地址类型; -d # 主机 :从 arp 缓冲区中删除指定主机的 arp 条目; -D # 使用指定接口的硬件地址; -e # 以 Linux 的显示风格显示 arp 缓冲区中的条目; -i # 接口 :指定要操作 arp 缓冲区的网络接口; -s # 主机 MAC 地址 :设置指定的主机的 IP 地址与 MAC 地址的静态映射; -n # 以数字方式显示 arp 缓冲区中的条目; -v # 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息; -f # 文件 :设置主机的 IP 地址与 MAC 地址的静态映射。 ``` **参数** 主机:查询 arp 缓冲区中指定主机的 arp 条目。 **示例** ```Bash arp -a 查看arp表 arp -n 不解析ip地址为名称 arp -v 查看arp表详情 arp -i 查看指定网卡设备arp表 arp -d 删除arp缓存 ``` ## 5、ip命令 iproute包提供,用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。 **ip link命令** ```Bash ip link show 查看网卡设备信息 ip link set eth0 up 启动eth0网卡 ip link set eth0 down 关闭eth0网卡 ``` **ip addr命令** ```Bash ip addr show 查看IP地址信息 ip addr add 192.168.1.1/24 dev eth0 添加IP地址(临时,重启网络服务或者系统重启后失效) ip addr del 192.168.1.1/24 dev eth0 删除IP地址 ``` **ip route命令** ```Bash ip route show 查看路由信息 ip route add 192.168.1.0/24 via 192.168.80.254 dev eth0 添加路由 ip route del 192.168.1.0/24 dev eth0 删除路由 ``` 注: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命令  ①查询设备与连接信息 ```Bash nmcli device status 查询网卡设备与配置文件连接状态(可看未托管的) nmcli device show 查看网卡设备详细信息 nmcli device show eth0 查看指定网卡设置的详细信息 nmcli device connect eth 0 将网卡设备与配置文件连接 nmcli device disconnect eth0 将网卡设备与配置文件断开 nmcli connection show 查询网卡设备与配置文件连接状态 nmcli connection show --active 查询活跃的网卡连接 nmcli connection show eth0_name 查找指定连接的详细信息 nmcli networking on 启动NetworkManager nmcli networking off 关闭NetworkManager ``` ②删除/修改/更新网卡配置文件 ```Bash nmcli connection delete eth0_name nmcli connection modify eth0_name +ipv4.address 192.168.1.1/24 添加ip nmcli connection modify eth0_name -ipv4.address 192.168.1.1/24 删除ip nmcli connection modify eth0_name ipv4.address 192.168.1.1/24 修改ip nmcli connection up eth0_name nmcli connection reload 让nmcli重新读取硬盘上的配置文件 nmcli connection modify eth0 con-name eth1 更改配置文件名 ``` ③添加IP地址(永久生效) ```Bash nmcli connection add type ethernet ifname ens160 con-name ens160_name ipv4.addresses 192.168.80.130/24 ipv4.gateway 192.168.80.254 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes ``` ④添加路由(永久生效) ```Bash nmcli connection modify enp3s0 +ipv4.routes "192.168.122.0/24 192. 168.80.254" ``` 其他配置永久路由方法 ```Bash 修改/etc/sysconfig/static-routes(重启network服务后生效) any net 172.25.0.0/24 gw 192.168.80.254 any net 172.25.0.11 netmask 255.255.255.255 gw 192.168.80.254 ``` ⑤配置bond ```Bash 添加bond设备 nmcli connection add type bond ifname bond1 con-name bond1_name mode active-backup miimon 1000 autoconnect yes 添加ens224网卡至bond nmcli connection add type ethernet slave-type bond ifname ens224 con-name ens224_name master bond1 或者nmcli connection add type bond-slave ifname ens224 con-name ens224_name mast bond1 ``` ⑥配置网桥br0 ```Bash 添加网桥设备br0 nmcli connection add type bridge ifname br0 con-name br0_name autoconnect yes 将网卡接口ens161连接至网桥br0 nmcli connection add type ethernet slave-type bridge ifname ens161 con-name br0_ens161 master br0 或者nmcli connection add type bridge-slave ifname ens161 con-name br0_ens161 master br0 ``` ## 7、主机名与地址解析 (1)修改主机名 ```Bash hostname 临时修改主机名 hostnamectl set-hostname 永久修改主机名 vim /etc/hostname 永久修改主机名,需要重启生效 ``` (2)DNS地址解析 ```Bash vim /etc/hosts 本地地址解析文件,只在本机上有效,优先级比DNS高 vim /etc/resolv.conf DNS服务器配置文件,手动修改此文件临时有效 另外还可以通过nmcli命令、修改网卡配置文件等方式永久修改DNS地址 ``` ## 8、查看服务端口 标准服务端口配置文件/etc/services (1)netstat命令 netstat是net-tools包提供,用于显示网络连接信息、路由信息、接口状态等; ```Bash netstat 查看网络连接信息 -n 显示ip地址、端口 -l 显示监听中的socket -a 显示所有状态的socket(默认显示已连接的socket) -e 显示建立连接的socket,显示更多的信息诸如user、inode -u 显示udp协议的端口 -t 显示tcp协议的端口 -p 显示pid与程序名 -r 显示路由信息 ``` (2)ss命令 - ①ss命令由iproute包提供,可以用来获取socket统计信息,能够显示比netstat更多更详细的有关TCP和连接状态的信息;当服务器的socket连接数量变得非常大时,比netstat更快速更高效。 - ②ss高效的秘诀在于它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux内核中第一手的信息,这就确保了ss的快捷高效。 ```Bash ss 查看网络连接信息 -n 显示ip地址、端口 -l 显示监听中的socket -a 显示所有状态的socket(默认显示已连接的socket) -e 显示建立连接的socket,显示更多的信息诸如user、inode -u 显示udp协议的端口 -t 显示tcp协议的端口 -p 显示pid与程序名 ``` ## 9、网络连接状态详解 **共有12中可能的状态**,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的: 1. LISTEN:首先服务端需要打开一个socket进行监听,状态为 LISTEN,侦听来自远方TCP端口的连接请求 ; 2. SYN_SENT:客户端通过应用程序调用connect进行active open,于是客户端tcp发送一个SYN以请求建立一个连接,之后状态置为 SYN_SENT,在发送连接请求后等待匹配的连接请求; 3. SYN_RECV:服务端应发出ACK确认客户端的 SYN,同时自己向客户端发送一个SYN,之后状态置为,在收到和发送一个连接请求后等待对连接请求的确认; 4. ESTABLISHED:代表一个打开的连接,双方可以进行或已经在数据交互了, 代表一个打开的连接,数据可以传送给用户; 5. FIN_WAIT1:主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态, 等待远程TCP的连接中断请求,或先前的连接中断请求的确认; 6. CLOSE_WAIT:被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT, 等待从本地用户发来的连接中断请求; 7. FIN_WAIT2:主动关闭端接到ACK后,就进入了 FIN-WAIT-2,从远程TCP等待连接中断请求; 8. LAST_ACK:被动关闭端一段时间后,接收到文件结束符的应用程 序将调用CLOSE关闭连接,这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK,等待原来发向远程TCP的连接中断请求的确认; 9. TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认; 10. CLOSING: 比较少见,等待远程TCP对连接中断的确认; 11. CLOSED: 被动关闭端在接受到ACK包后,就进入了closed的状态,连接结束,没有任何连接状态; 12. UNKNOWN:未知的Socket状态; **常见标志位** - SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。 - ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。 - FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。 本文主要介绍了Linux网络管理的相关知识和命令,包括网卡命名规则、网络设备配置、IP地址管理、路由设置、DNS解析、NetworkManager工具的使用以及查看服务端口、解析网络连接状态和修改主机名与地址解析等内容。通过学习这些内容,读者可以更好地理解和掌握网络的运行原理,从而提高网络管理能力。 本文提供的命令选项仅包含常用选项,而非所有选项。你可以通过在命令行中输入 `命令 --help` 来查看所有可用选项。
阿星
2023年12月31日 21:36
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码