在Linux系统中,命令行配置IP地址是网络管理的基础技能,无论是服务器运维还是日常开发,都可能需要通过命令行快速调整网络参数,本文将详细讲解Linux命令行下IP配置的方法,包括临时配置、永久配置、不同发行版的差异以及常见问题的解决方案。

临时IP配置
临时配置的IP地址在系统重启后会失效,适用于测试或临时网络场景,常用的命令包括ifconfig和ip命令。
-
使用ifconfig命令(较旧但仍可用)
首先需要安装net-tools包(Ubuntu/Debian下可通过sudo apt install net-tools安装,CentOS/RHEL下通过sudo yum install net-tools安装)。- 配置IP地址:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
其中
eth0为网卡名称,168.1.100为IP地址,netmask为子网掩码。 - 启用/禁用网卡:
sudo ifconfig eth0 up # 启用网卡 sudo ifconfig eth0 down # 禁用网卡
- 添加网关:
sudo route add default gw 192.168.1.1
- 配置IP地址:
-
使用ip命令(推荐,现代Linux系统默认支持)
ip命令是iproute2包的一部分,功能更强大且推荐使用。
(图片来源网络,侵删)- 配置IP地址:
sudo ip addr add 192.168.1.100/24 dev eth0
其中
/24表示子网掩码为255.255.255.0。 - 启用/禁用网卡:
sudo ip link set eth0 up sudo ip link set eth0 down
- 添加网关:
sudo ip route add default via 192.168.1.1
- 配置IP地址:
永久IP配置
永久配置需要修改系统配置文件,不同Linux发行版的配置文件位置和格式有所不同。
Ubuntu/Debian系统(使用Netplan或ifcfg文件)
-
Netplan配置(Ubuntu 18.04及以后版本)
Netplan通过YAML文件配置网络,通常位于/etc/netplan/目录下,编辑01-netcfg.yaml:network: version: 2 ethernets: eth0: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]配置完成后执行
sudo netplan apply使配置生效。
(图片来源网络,侵删) -
传统ifcfg文件(Ubuntu 16.04及以前版本)
编辑/etc/network/interfaces文件:auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4保存后执行
sudo ifup eth0或重启网络服务sudo systemctl restart networking。
CentOS/RHEL系统(使用NetworkManager或ifcfg文件)
-
NetworkManager配置(图形化或命令行)
通过nmtui(文本界面)或nmcli(命令行)配置,使用nmcli:sudo nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli con up "eth0"
-
ifcfg文件配置
编辑/etc/sysconfig/network-scripts/ifcfg-eth0:TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4 ONBOOT=yes
保存后执行
sudo ifup eth0或重启网络服务sudo systemctl restart network。
多IP地址配置
有时需要为一个网卡配置多个IP地址(即IP别名),可通过以下方式实现:
- 使用ifconfig:
sudo ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0
- 使用ip命令:
sudo ip addr add 192.168.1.101/24 dev eth0 label eth0:0
常见网络配置命令速查表
| 功能 | ifconfig命令 | ip命令 |
|---|---|---|
| 查看网卡信息 | ifconfig或ifconfig eth0 |
ip addr show或ip a |
| 配置IP | ifconfig eth0 192.168.1.100 netmask 255.255.255.0 |
ip addr add 192.168.1.100/24 dev eth0 |
| 启用网卡 | ifconfig eth0 up |
ip link set eth0 up |
| 添加默认网关 | route add default gw 192.168.1.1 |
ip route add default via 192.168.1.1 |
| 删除IP地址 | ifconfig eth0 0.0.0.0 |
ip addr del 192.168.1.100/24 dev eth0 |
FAQs
问题1:为什么使用ifconfig命令提示“command not found”?
解答:ifconfig属于net-tools包,部分现代Linux系统(如Ubuntu 20.04、CentOS 8)默认不再安装该包,可通过以下方式解决:
- Ubuntu/Debian:
sudo apt install net-tools - CentOS/RHEL:
sudo yum install net-tools
或直接使用ip命令替代,ip命令功能更全面且是当前主流工具。
问题2:配置静态IP后无法上网,如何排查?
解答:可按以下步骤排查:
- 检查IP地址、子网掩码、网关是否正确配置,确保与同一网段的其他设备一致。
- 使用
ping命令测试网关连通性:ping 192.168.1.1(网关地址)。 - 检查DNS配置,使用
nslookup www.baidu.com测试域名解析是否正常。 - 查看网络服务状态:
systemctl status networking(Ubuntu)或systemctl status NetworkManager(CentOS)。 - 检查防火墙是否阻止网络访问,可通过
sudo ufw disable临时关闭防火墙测试(Ubuntu)。
通过以上方法,可以系统性地解决Linux命令行IP配置中的常见问题,确保网络连接正常。
