linux服务器如何配置永久静态ip地址才能生效?
- 虚拟主机
- 2025-10-13
- 3895
在Linux系统中配置IP地址是管理网络连接的一项基础且至关重要的技能,无论是搭建服务器、配置开发环境还是进行网络故障排查,掌握IP地址的配置方法都必不可少,Linux提供了多种方式来设置IP,主要可以分为临时配置和永久配置两大类,具体采用哪种方式取决于你的发行版和需求。
临时配置IP地址
临时配置(也称为动态配置)意味着IP地址在系统重启后会失效,这种方法非常适用于快速的测试或临时的网络接入。
现代Linux系统推荐使用ip命令族,它功能强大且是标准工具,传统的ifconfig命令虽然仍在许多系统上可用,但已被逐渐弃用。
使用ip命令为网卡(假设为eth0)配置IP地址和子网掩码:
#添加IP地址192.168.1.100,子网掩码为24位(即255.255.255.0) sudoipaddradd192.168.1.100/24deveth0
配置默认网关:
#添加默认网关为192.168.1.1 sudoiprouteadddefaultvia192.168.1.1
配置DNS服务器,这通常通过编辑/etc/resolv.conf文件实现:
#使用编辑器(如nano或vim)打开文件 sudonano/etc/resolv.conf #在文件中添加或修改DNS服务器地址 nameserver8.8.8.8 nameserver8.8.4.4
完成这些步骤后,你的网络就配置好了,但请记住,这些配置在重启后不会保留。
永久配置IP地址
永久配置能确保系统在每次启动后自动应用相同的网络设置,配置方法因Linux发行版的不同而有很大差异。
基于Debian/Ubuntu的系统
方法A:使用Netplan (Ubuntu 18.04及以后版本)
Netplan是Ubuntu引入的新一代网络配置工具,它使用YAML文件进行配置,然后通过后台渲染器(如systemd-networkd或NetworkManager)来应用配置。
找到配置文件:配置文件通常位于/etc/netplan/目录下,文件名可能为01-netcfg.yaml或50-cloud-init.yaml。
编辑配置文件:
network: version:2 renderer:networkd ethernets: eth0:#网卡名称 dhcp4:no#关闭DHCP addresses:[192.168.1.100/24]#静态IP地址和子网掩码 gateway4:192.168.1.1#默认网关 nameservers: addresses:[8.8.8.8,8.8.4.4]#DNS服务器
应用配置:
#测试配置文件语法是否正确 sudonetplantry #应用配置 sudonetplanapply

方法B:使用 /etc/network/interfaces (旧版Debian/Ubuntu)
这是较传统的配置方式,在旧版本系统中非常常见。
编辑配置文件:sudo nano /etc/network/interfaces
添加或修改以下内容:
autoeth0 ifaceeth0inetstatic address192.168.1.100 netmask255.255.255.0 gateway192.168.1.1 dns-nameservers8.8.8.88.8.4.4
重启网络服务:
sudosystemctlrestartnetworking
基于RHEL/CentOS/Fedora的系统
方法A:使用NetworkManager的nmcli工具
nmcli是一个功能强大的命令行工具,可以完全替代图形界面来管理NetworkManager。
查看网络连接:nmcli connection show
修改连接(假设连接名为ens33):
#设置为静态模式 sudonmcliconmod"ens33"ipv4.methodmanual #设置IP地址和子网掩码 sudonmcliconmod"ens33"ipv4.addresses192.168.1.101/24 #设置网关 sudonmcliconmod"ens33"ipv4.gateway192.168.1.1 #设置DNS sudonmcliconmod"ens33"ipv4.dns"8.8.8.88.8.4.4"

重新激活连接使配置生效:
sudonmclicondown"ens33"&&sudonmcliconup"ens33"
*方法B:使用`ifcfg-`脚本文件 (旧版RHEL/CentOS 7及以前)**
这是经典的配置方式,通过编辑网卡配置脚本来实现。
找到并编辑配置文件:文件位于/etc/sysconfig/network-scripts/ifcfg-网卡名,例如ifcfg-eth0。
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.102 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
重启网络服务:
sudosystemctlrestartnetwork
验证配置
无论采用哪种方法,配置完成后都需要验证是否成功。
查看IP地址:ip addr show 或 ifconfig

查看路由表:ip route show 或 route -n
测试连通性:
ping 8.8.8.8 (测试与外部IP的连通性)
ping google.com (测试DNS解析是否正常)
ip link show:这是最推荐的方式,它会显示所有接口,包括未激活的,输出中1: lo:、2: eth0: 或 2: ens33: 等后面的就是接口名。
ip addr show:这个命令也会列出所有接口,并附带它们的IP地址信息。
ifconfig -a:如果你的系统还安装了net-tools,这个命令同样可以列出所有接口(-a参数表示所有接口,包括down掉的)。
相关问答FAQs
Q1: ip命令和ifconfig命令有什么区别?我应该使用哪个?
A: ip命令是iproute2软件包的一部分,是现代Linux系统推荐使用的网络配置工具,它提供了更全面、更详细的功能,可以统一管理IP地址、路由、隧道等。ifconfig是来自net-tools软件包的旧工具,功能相对有限,并且在一些新的Linux发行版中默认不再安装。强烈建议优先学习和使用ip命令,因为它代表了未来的趋势,并且功能更强大。
Q2: 我不确定我的网卡名称是什么(比如是eth0还是ens33),如何查找?
A: 你可以使用以下任何一条命令来列出系统中所有可用的网络接口及其状态:
找到物理连接的那个接口(通常不是lo,即本地回环接口),它的名字就是你需要用来配置IP的网卡名称。