12.linux网络管理
Linux 网络管理
1. 静态 IP vs. DHCP
- IP 是互联网协议的缩写,分配给您的计算机以便访问网络。私有 IP 用于内网通信,公有 IP 用于互联网/外网通信。
- 静态 IP: 地址不会改变。
- 动态 IP: 系统重启后地址会改变。
2. 操作系统网络组件
- 网络接口
- MAC 地址
- 子网掩码
- 网关
- DNS (域名系统)
3. NetworkManager 入门
- NetworkManager 是一项服务和一组工具,旨在简化 Linux 系统上的网络配置管理,是 RHEL 8 上的默认网络管理服务。
- 它使网络管理更容易。
- 它为用户提供了简单的连接设置。
- NetworkManager 通过不同的工具提供管理,例如 GUI、nmtui 和 nmcli。
4. 网络配置方法
- nmcli: NetworkManager 命令行界面的缩写。当图形环境不可用时,此工具很有用,也可以在脚本中使用以进行网络配置更改。

- nmtui: NetworkManager 文本用户界面的缩写。该工具可以在任何终端窗口中运行,并允许通过菜单选择和输入数据进行更改。
- nm-connection-editor: 一个完整的图形管理工具,提供对大多数 NetworkManager 配置选项的访问。只能通过桌面或控制台访问。

- GNOME 设置: GNOME 桌面设置应用程序的网络屏幕允许执行基本的网络管理任务。
gnome-control-center
5. 网络文件和基本命令
文件:
/etc/NetworkManager/system-connections/
/etc/hosts
跟踪ip->主机名。/etc/hostname
如果你需要修改你的主机名,你只需要把你的名字写入这里,之后重启NetworkManager。/etc/resolv.conf
这里是保存你使用的DNS服务器信息的文件。当你需要域名解析的时候,系统就会访问这个文件查询你使用的DNS服务器,从而向该地址发动DNS请求。/etc/nsswitch.conf
这里展示了系统对于这些需求的使用方案,比如networks这里,会先考虑files然后才是dns。注意看上面的注释里面写到,请你不要手动修改这个文件。
命令:
ping- 解释: 用于测试网络连接性,向目标主机发送 ICMP 回显请求,并等待回显回复。
- 示例:
ping google.com或ping 8.8.8.8
ifconfig或ip addr- 解释:
ifconfig(较旧) 和ip addr(较新,推荐) 用于显示和配置网络接口信息,如 IP 地址、MAC 地址等。 - 示例:
ip addr show或ifconfig -a
- 解释:
ifup或ifdown- 解释: 用于激活 (
ifup) 或禁用 (ifdown) 网络接口。通常与/etc/sysconfig/network-scripts中的配置文件一起使用。 - 示例:
ifup eth0(激活 eth0 接口)
- 解释: 用于激活 (
netstat- 解释: 显示网络连接、路由表、接口统计等信息。
- 示例:
netstat -tuln(显示所有 TCP 和 UDP 监听端口) netstat -rnv显示网关信息。
查看网关信息
traceroute- 解释: 跟踪数据包从本地主机到目标主机的路径,显示每个跳的延迟。
- 示例:
traceroute google.com
tcpdump- 解释: 强大的网络抓包工具,用于捕获和分析网络数据包。
- 示例:
tcpdump -i eth0 host 192.168.1.1(捕获 eth0 接口上与 192.168.1.1 相关的数据包)
nslookup或dig- 解释: 用于查询 DNS (域名系统) 服务器,解析域名到 IP 地址,或反之。
dig功能更强大。 - 示例:
nslookup google.com或dig google.com
- 解释: 用于查询 DNS (域名系统) 服务器,解析域名到 IP 地址,或反之。
ethtool- 解释: 用于查询和控制以太网卡的驱动程序和硬件设置。
- 示例:
ethtool eth0(显示 eth0 接口的详细信息)
6. 尝试使用 nmcli 配置网络
这里我们就不给示范了,因为这里写的示例ip对于你来说并不是通用的,而且你也不知道这个/24是什么意思,你只需要这个位置是你需要改且能改的ip地址。你了解一下下文在干什么就可以了。
使用 nmcli 配置静态 IP
nmcli device: 获取网络接口列表。nmcli connection modify enp0s3 ipv4.addresses 10.253.1.211/24: 修改enp0s3连接的 IPv4 地址和子网掩码。nmcli connection modify enp0s3 ipv4.gateway 10.253.1.1: 修改enp0s3连接的 IPv4 网关。nmcli connection modify enp0s3 ipv4.method manual: 将enp0s3连接的 IPv4 配置方法设置为手动。nmcli connection modify enp0s3 ipv4.dns 8.8.8.8: 修改enp0s3连接的 IPv4 DNS 服务器。nmcli connection down enp0s3 && nmcli connection up enp0s3: 重新启动enp0s3连接以应用更改。ip address show enp0s3: 显示enp0s3接口的 IP 地址信息。
使用 nmcli 添加辅助静态 IP
nmcli device status: 查看设备状态。nmcli connection show --active: 显示活动的连接。ifconfig: 显示网络接口信息 (也可以使用ip addr)。nmcli connection modify enp0s3 +ipv4.addresses 10.0.0.211/24: 为enp0s3连接添加一个辅助 IPv4 地址。nmcli connection reload: 重新加载连接配置。systemctl reboot: 重启系统以使更改生效。ip address show: 显示所有接口的 IP 地址信息。
题外话
对于测试网络而言,第六节的所有命令都是常用且有用的。但是如果你没有网络的基础理解起来会很费劲。比如什么是DNS?DHCP是什么?IP/TCP/UDP又都是什么?内网和外网说的又是什么?那个/24变长子网掩码又是什么意思?这些都是属于网络的知识了。作为一个linux管理员,你必须要了解基础的网络知识,而上面说的这一点点都是最基础的最冰山一角的了。或许以后再做一个网络的笔记吧。