在Linux系统中设置IP地址是网络配置的基础操作,主要分为临时设置和永久设置两种方式,不同发行版(如Ubuntu、CentOS等)的配置方法略有差异,以下从临时配置、永久配置(分发行版介绍)、注意事项及常见问题等方面详细说明。
临时设置IP地址(重启后失效)
临时设置适用于快速测试或短期使用,主要通过ip
或ifconfig
命令实现(ifconfig
已逐渐被ip
取代,但部分旧系统仍支持)。
使用ip
命令
(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
使用ifconfig
命令
(1)设置IP地址及子网掩码:
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
(2)启用网卡:
sudo ifconfig eth0 up
(3)配置默认网关:
sudo route add default gw 192.168.1.1
临时配置无需修改配置文件,但系统重启后会丢失,可通过ip addr show
或ifconfig
查看配置结果。
永久设置IP地址(重启后生效)
永久设置需修改网络配置文件,不同发行版的配置工具和文件路径不同,以下分主流发行版介绍。
Ubuntu/Debian系(18.04及以上版本使用Netplan)
Ubuntu 18.04后默认使用Netplan
作为网络配置工具,配置文件为YAML格式,位于/etc/netplan/
目录(如01-network-manager-all.yaml
)。
(1)编辑配置文件(以eth0
为例,设置静态IP):
sudo nano /etc/netplan/01-network-manager-all.yaml
(2)添加以下内容(注意缩进,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服务器
(3)应用配置:
sudo netplan apply
CentOS/RHEL系(7及以上版本使用NetworkManager)
CentOS 7后推荐使用NetworkManager
,可通过命令行工具nmcli
或修改配置文件(/etc/sysconfig/network-scripts/ifcfg-eth0
)配置。
方法1:使用nmcli
命令行(推荐)
(1)查看当前网络连接:
nmcli connection show
(2)修改指定网卡(如eth0
)的静态IP配置:
sudo nmcli con mod eth0 ipv4.addresses 192.168.1.100/24 sudo nmcli con mod eth0 ipv4.gateway 192.168.1.1 sudo nmcli con mod eth0 ipv4.dns "8.8.8.8 8.8.4.4" sudo nmcli con mod eth0 ipv4.method manual # 设置为静态模式
(3)重启网络连接使配置生效:
sudo nmcli con up eth0
方法2:修改配置文件(传统方式)
(1)编辑网卡配置文件:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
(2)修改或添加以下内容:
TYPE=Ethernet BOOTPROTO=static # 静态IP(DHCP为动态) DEVICE=eth0 ONBOOT=yes # 开机启用 IPADDR=192.168.1.100 # 静态IP NETMASK=255.255.255.0 # 子网掩码 GATEWAY=192.168.1.1 # 默认网关 DNS1=8.8.8.8 # 主DNS DNS2=8.8.4.4 # 辅DNS
(3)重启网络服务:
sudo systemctl restart network
不同配置方法对比
为方便选择,以下表格总结主要配置方法的特点:
方法 | 适用发行版 | 是否永久 | 配置位置/命令 | 特点 |
---|---|---|---|---|
ip 命令 |
所有Linux发行版 | 临时 | ip addr/route |
即时生效,重启失效,适合测试 |
ifconfig 命令 |
旧版Linux/Unix | 临时 | ifconfig/route |
逐渐被淘汰,部分系统需安装net-tools |
Netplan | Ubuntu 18.04+ | 永久 | /etc/netplan/*.yaml |
YAML格式,支持复杂网络拓扑 |
nmcli |
CentOS 7+/RHEL 7+ | 永久 | nmcli con mod |
命令行操作,无需直接编辑文件 |
ifcfg配置文件 | CentOS 6-/RHEL 6- | 永久 | /etc/sysconfig/network-scripts/ifcfg-eth0 |
传统方式,兼容性好,但手动修改易出错 |
注意事项
- 网卡名称确认:现代Linux系统中,网卡名称可能不是
eth0
(如ens33
、enp0s3
),可通过ip addr
或ls /sys/class/net
查看实际名称。 - IP冲突检查:设置静态IP前,确保该IP未被网络中其他设备占用(可通过
ping 192.168.1.100
检查)。 - DNS配置重要性:若仅设置IP和网关但未配置DNS,可能导致无法解析域名(如
ping www.baidu.com
失败),需确保nameservers
或DNS1/DNS2
正确。 - 配置备份:修改永久配置文件前,建议先备份(如
sudo cp /etc/netplan/01-network-manager-all.yaml /etc/netplan/01-network-manager-all.yaml.bak
),避免配置错误导致网络不可用。
FAQs
问题1:临时设置的IP地址重启后会失效吗?
答:是的,通过ip
或ifconfig
命令设置的IP地址仅保存在内存中,系统重启后会从配置文件(如Netplan、ifcfg文件)重新读取网络配置,因此临时设置会丢失,若需长期使用,必须通过永久配置方式修改配置文件。
问题2:如何确认IP地址设置成功?
答:可通过以下步骤验证:(1)执行ip addr show
或ifconfig
,查看指定网卡是否已显示正确的IP地址和子网掩码;(2)执行ip route show
或route -n
,检查默认网关是否正确添加;(3)ping网关(如ping 192.168.1.1
)确认网络连通性;(4)ping外网域名(如ping www.baidu.com
)确认DNS配置是否生效,若以上步骤均正常,则IP地址设置成功。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/14095.html