在Linux中配置静态IP有四种方法:一、用nmcli命令修改NetworkManager连接;二、编辑netplan YAML文件(Ubuntu 18.04+);三、修改/etc/network/interfaces(Debian传统方式);四、用ip命令临时设置。

如果您在Linux系统中需要将网络接口从动态IP地址更改为固定IP地址,以确保服务稳定性或满足内网通信需求,则需手动配置静态IP、子网掩码、默认网关及DNS服务器。以下是具体操作步骤:
一、使用nmcli命令配置静态IP(适用于NetworkManager管理的系统)
该方法适用于桌面版Ubuntu、Fedora等默认启用NetworkManager的发行版,通过命令行直接修改连接配置,无需编辑配置文件。
1、列出当前所有网络连接名称:nmcli connection show
2、假设连接名为“Wired connection 1”,将其IPv4配置方式设为手动:nmcli connection modify "Wired connection 1" ipv4.method manual
3、设置静态IP地址、子网掩码和网关(以192.168.1.100/24、网关192.168.1.1为例):nmcli connection modify "Wired connection 1" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1
4、指定DNS服务器(如使用阿里DNS):nmcli connection modify "Wired connection 1" ipv4.dns "223.5.5.5 223.6.6.6"
5、禁用IPv4自动获取DNS并激活更改:nmcli connection modify "Wired connection 1" ipv4.ignore-auto-dns yes && nmcli connection up "Wired connection 1"
二、编辑netplan配置文件(适用于Ubuntu 18.04+)
Ubuntu 18.04及更新版本默认使用netplan作为网络配置后端,所有设置均通过YAML格式文件定义,修改后需应用生效。
1、查找netplan主配置文件路径(通常为/etc/netplan/*.yaml):ls /etc/netplan/
2、使用文本编辑器打开该文件(如01-network-manager-all.yaml):sudo nano /etc/netplan/01-network-manager-all.yaml
3、将原DHCP配置替换为静态配置,示例内容如下(注意缩进必须为两个空格,不可用Tab):network:\n version: 2\n renderer: networkd\n ethernets:\n ens33:\n dhcp4: false\n addresses: [192.168.1.100/24]\n gateway4: 192.168.1.1\n nameservers:\n addresses: [223.5.5.5, 223.6.6.6]
4、保存退出后应用配置:sudo netplan apply
三、修改/etc/network/interfaces(适用于Debian系传统ifupdown系统)
该方法适用于未启用NetworkManager或使用ifupdown工具的传统Debian、旧版Ubuntu系统,通过直接编辑接口定义文件实现持久化配置。
1、备份原始配置文件以防误操作:sudo cp /etc/network/interfaces /etc/network/interfaces.bak
2、编辑接口配置文件:sudo nano /etc/network/interfaces
3、注释掉原有dhcp行,添加静态配置(以eth0为例):auto eth0\niface eth0 inet static\naddress 192.168.1.100\nnetmask 255.255.255.0\ngateway 192.168.1.1\ndns-nameservers 223.5.5.5 223.6.6.6
4、重启网络服务使配置生效:sudo systemctl restart networking
四、临时设置静态IP(仅当前会话有效)
该方法不修改任何配置文件,适合测试或紧急调试场景,系统重启后配置将丢失,需配合route命令设置网关。
1、为eth0接口分配静态IP和子网掩码:sudo ip addr add 192.168.1.100/24 dev eth0
2、启用该网络接口(如处于关闭状态):sudo ip link set eth0 up
3、添加默认路由指向网关:sudo ip route add default via 192.168.1.1 dev eth0
4、临时写入DNS解析配置:echo "nameserver 223.5.5.5" | sudo tee /etc/resolv.conf









