linux系统中切换网络接口为静态ip有四种方法:一、netplan(ubuntu 18.04+/debian 11+);二、/etc/network/interfaces(传统debian系);三、nmcli(networkmanager启用系统);四、ip命令(临时生效)。

如果您在Linux系统中需要将网络接口从动态获取IP切换为固定IP地址,则可能是由于服务器托管、局域网服务部署或网络环境隔离等需求。以下是多种兼容主流发行版的静态IP配置方法:
一、使用Netplan配置静态IP(适用于Ubuntu 18.04+、Debian 11+等)
Netplan是现代Ubuntu及部分Debian/Cloud发行版默认采用的声明式网络配置工具,通过YAML文件定义接口行为,并由后端(如systemd-networkd或NetworkManager)渲染生效。配置修改后需显式应用,且缩进错误会导致失败。
1、列出当前Netplan配置文件:sudo ls /etc/netplan/
2、用文本编辑器打开主配置文件(如01-network-manager-all.yaml):sudo nano /etc/netplan/01-network-manager-all.yaml
3、将原DHCP配置段替换为静态配置,确保使用空格缩进(不可用Tab),示例内容如下:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
4、保存退出后立即应用配置:sudo netplan apply
5、验证是否生效:ip -br a show ens33
二、编辑/etc/network/interfaces配置静态IP(适用于Debian系传统系统)
该方式依赖ifupdown工具链,常见于未启用Netplan的旧版Debian、Ubuntu Server或定制嵌入式系统。配置写入后需重启网络服务,不与NetworkManager共存。
1、备份原始配置文件:sudo cp /etc/network/interfaces /etc/network/interfaces.bak
2、编辑接口配置文件:sudo nano /etc/network/interfaces
3、定位对应网卡(如eth0或enp0s3),将其配置改为静态模式,示例:
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 114.114.114.114
4、保存退出后重启网络服务:sudo systemctl restart networking
5、确认路由表是否包含默认网关:ip route | grep default
三、使用nmcli命令行工具配置静态IP(适用于启用NetworkManager的系统)
nmcli是NetworkManager官方命令行接口,适用于桌面版Ubuntu、Fedora、RHEL 8+等,默认管理有线/无线连接。所有操作实时生效,无需重启服务,且自动同步至后台配置。
1、查看当前活动连接名称:nmcli connection show --active
2、将目标连接设为手动IPv4模式:nmcli connection modify "Wired connection 1" ipv4.method manual
3、设置IP地址与子网前缀:nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.100/24
4、配置默认网关:nmcli connection modify "Wired connection 1" ipv4.gateway 192.168.1.1
5、指定DNS服务器并禁用自动获取:nmcli connection modify "Wired connection 1" ipv4.dns "223.5.5.5,223.6.6.6" ipv4.ignore-auto-dns yes
6、重新加载并激活连接:nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1"
四、使用ip命令临时设置静态IP(仅当前会话有效)
ip命令直接操作内核网络栈,不依赖任何服务或配置文件,适合调试、应急或一次性测试。该配置在系统重启、网卡重载或执行flush操作后即失效,不会持久化。
1、确认网卡名称:ip -br a | grep UP
2、清除原有IP地址(含DHCP分配的):sudo ip addr flush dev ens33
3、添加新IP及子网掩码:sudo ip addr add 192.168.1.100/24 dev ens33
4、设置默认路由:sudo ip route add default via 192.168.1.1
5、临时修改DNS(影响范围限于当前会话):echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf









