Linux 显示和更改 IP 配置设置的命令
从命令行管理网络配置是任何Linux管理员最基本的技能之一。无论您是在设置全新的VPS Hosting环境、排查生产服务器上的连接问题,还是在部署后配置静态IP,掌握正确的命令可以让您快速、精确地控制系统的网络连接方式——无需GUI。
本指南涵盖了在现代Linux系统上显示、修改和保持IP配置设置所需的所有基本命令。
为什么通过 CLI 进行 Linux 网络配置很重要
Linux 为全球大多数服务器、云基础设施、VPS 节点、路由器和嵌入式设备提供支持。在所有这些环境中,图形界面要么不可用,要么不切实际。命令行是您进行网络管理的主要工具——通常也是唯一的工具。
在实际场景中,您将使用这些命令来:
- 显示分配给所有网络接口的当前 IP 地址(IPv4 和 IPv6)
- 检查链接状态——接口是否为 UP 或 DOWN、其 MTU 和 MAC 地址
- 查看路由表并识别活跃的默认网关
- 临时更改 IP 配置以进行测试、故障转移或紧急恢复
- 诊断连接问题——错误的子网、缺失的路由、接口宕机
- 确认系统使用哪个接口和路由来到达特定目的地
对于任何管理专用服务器或大规模云基础设施的人来说,理解这些工具是必不可少的。
现代标准:ip (来自 iproute2)
在现代 Linux 上显示和更改 IP 配置的主要命令是:
ip此工具是 iproute2 套件的一部分,已在几乎所有主要发行版中替代了较旧的 ifconfig 和 route 实用程序。它在 Debian、Ubuntu、CentOS、RHEL、Fedora、Arch 及其衍生版本上工作一致 — 使其成为生产环境中的明确标准。
显示 IP 配置(只读命令)
这些命令让您检查当前网络状态,而不进行任何更改。
显示所有接口和 IP 地址
ip addr show
# Shorthand:
ip a这会输出所有网络接口及其分配的 IPv4 和 IPv6 地址、子网掩码和标志。
显示特定接口
ip addr show dev eth0将 eth0 替换为您的实际接口名称(例如,ens3、enp0s3、bond0)。
显示链接状态、MAC 地址和 MTU
ip link show这会显示每个接口是否为 UP 或 DOWN、其硬件(MAC)地址及其最大传输单元(MTU)。
显示完整的路由表
ip route show
# Shorthand:
ip r这会显示所有活跃路由,包括默认网关 — 对于诊断流量为什么无法到达其目的地至关重要。
显示用于到达特定主机的路由
ip route get 8.8.8.8这是最有用的诊断命令之一。它会准确告诉您内核将使用哪个接口和网关来到达给定的 IP 地址 — 在排查复杂网络设置上的路由问题时无价。
在运行时更改 IP 配置(非持久性)
> 重要:使用 ip 进行的更改是临时的。它们立即生效,但在重启后或 NetworkManager/systemd-networkd 重写配置后会丢失。有关永久更改,请参阅下面的持久性部分。
启用或禁用接口
sudo ip link set dev eth0 up
sudo ip link set dev eth0 down添加 IP 地址(CIDR 表示法)
sudo ip addr add 192.168.10.50/24 dev eth0删除 IP 地址
sudo ip addr del 192.168.10.50/24 dev eth0替换 IP 地址(清理方法)
sudo ip addr flush dev eth0
sudo ip addr add 192.168.10.50/24 dev eth0在添加之前使用 flush 可确保接口上没有过时的地址。
添加默认网关
sudo ip route add default via 192.168.10.1 dev eth0替换默认网关(无冲突)
sudo ip route replace default via 192.168.10.1 dev eth0添加到特定网络的静态路由
sudo ip route add 10.50.0.0/16 via 192.168.10.254 dev eth0当您需要发往特定子网的流量通过特定网关时,这很有用——在多宿主服务器设置或 VPN 配置中很常见。
使 IP 更改持久化
运行时更改在重启时会消失。对于稳定的生产就绪配置,您需要使用以下方法之一持久化您的设置,具体取决于您的发行版和 init 系统。
方法 1:NetworkManager 与 nmcli
最适合: Ubuntu Desktop、大多数基于 RHEL/CentOS 的系统、Fedora 和许多云镜像。
显示所有网络连接
nmcli con show在连接上配置静态 IPv4 地址
sudo nmcli con mod "Wired connection 1"
ipv4.method manual
ipv4.addresses 192.168.10.50/24
ipv4.gateway 192.168.10.1
ipv4.dns "1.1.1.1 8.8.8.8"应用更改
sudo nmcli con up "Wired connection 1"将 "Wired connection 1" 替换为 nmcli con show 显示的实际连接名称。
方法 2:systemd-networkd 与 networkctl
最适合: 最小化服务器安装、容器和使用 systemd 作为主要网络管理器的系统。
检查接口状态
networkctl status通过 .network 文件配置持久化
在以下位置创建或编辑配置文件:
/etc/systemd/network/典型的静态 IP 配置文件(/etc/systemd/network/10-eth0.network)如下所示:
[Match]
Name=eth0
[Network]
Address=192.168.10.50/24
Gateway=192.168.10.1
DNS=1.1.1.1
DNS=8.8.8.8编辑后,重启服务:
sudo systemctl restart systemd-networkd遗留命令:仍然存在,不再推荐
您偶尔会在文档、教程或遗留系统中遇到这些较旧的工具 — 但它们不推荐用于现代环境。
| 遗留命令 | 现代替代方案 |
|---|---|
ifconfig | ip addr show / ip link show |
route | ip route show |
netstat -r | ip route |
net-tools 软件包(提供 ifconfig 和 route)在大多数发行版上不再默认安装。如果您在管理的系统上遇到它,应该将其视为该环境可能需要现代化的信号。
快速参考:最常用 ip 命令
| 任务 | 命令 |
|---|---|
| 显示所有 IP | ip a |
| 显示路由表 | ip r |
| 显示特定接口 | ip addr show dev eth0 |
| 检查到主机的路由 | ip route get 8.8.8.8 |
| 添加 IP 地址 | sudo ip addr add 192.168.10.50/24 dev eth0 |
| 删除 IP 地址 | sudo ip addr del 192.168.10.50/24 dev eth0 |
| 设置默认网关 | sudo ip route add default via 192.168.10.1 |
| 启用接口 | sudo ip link set dev eth0 up |
| 禁用接口 | sudo ip link set dev eth0 down |
实用总结
| 目标 | 工具 |
|---|---|
| 显示当前IP配置 | ip addr show / ip a |
| 查看路由表和网关 | ip route show / ip r |
| 临时更改IP设置 | ip addr, ip route, ip link |
| 保留更改(NetworkManager) | nmcli |
| 保留更改(systemd-networkd) | 编辑 /etc/systemd/network/*.network |
在托管环境中应用这些知识
如果您在托管环境中管理 Linux 服务器,当连接出现问题时,这些命令是您的第一道防线。无论您运行的是带有 cPanel 的 VPS还是裸机专用服务器,从 CLI 检查和重新配置网络的能力可能意味着快速修复和长时间停机之间的区别。
对于需要完全控制网络堆栈的环境——包括自定义路由、多个 IP 或 VLAN 配置——VPS 控制面板可以通过提供网络接口的可视化概览以及直接 shell 访问的强大功能来补充 CLI 工具。
如果您的服务器还处理出站电子邮件,确保您的 IP 配置正确与邮件可交付性直接相关。配置错误的反向 DNS 或错误的网关可能会无声地破坏您的电子邮件托管设置——这是掌握这些命令的另一个原因。
掌握 ip 命令并理解何时使用 nmcli 或 systemd-networkd 来实现持久性,可以让您牢牢控制 Linux 网络——无论您是管理单个 VPS 还是整个生产服务器群。
