所有托管服务节省 15%

测试技能,享折扣

使用代码: Skills 开始使用
China
Linux 专用服务器

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 套件的一部分,已在几乎所有主要发行版中替代了较旧的 ifconfigroute 实用程序。它在 Debian、Ubuntu、CentOS、RHEL、Fedora、Arch 及其衍生版本上工作一致 — 使其成为生产环境中的明确标准。

显示 IP 配置(只读命令)

这些命令让您检查当前网络状态,而不进行任何更改。

显示所有接口和 IP 地址

ip addr show
# Shorthand:
ip a

这会输出所有网络接口及其分配的 IPv4 和 IPv6 地址、子网掩码和标志。

显示特定接口

ip addr show dev eth0

eth0 替换为您的实际接口名称(例如,ens3enp0s3bond0)。

显示链接状态、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

遗留命令:仍然存在,不再推荐

您偶尔会在文档、教程或遗留系统中遇到这些较旧的工具 — 但它们不推荐用于现代环境。

遗留命令现代替代方案
ifconfigip addr show / ip link show
routeip route show
netstat -rip route

net-tools 软件包(提供 ifconfigroute)在大多数发行版上不再默认安装。如果您在管理的系统上遇到它,应该将其视为该环境可能需要现代化的信号。

快速参考:最常用 ip 命令

任务命令
显示所有 IPip 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 命令并理解何时使用 nmclisystemd-networkd 来实现持久性,可以让您牢牢控制 Linux 网络——无论您是管理单个 VPS 还是整个生产服务器群。