Linux如何固定IP地址?

在Linux系统中,固定IP地址是服务器管理、网络服务部署等场景下的基础需求,动态IP虽然方便,但可能导致远程连接中断、服务访问不稳定等问题,本文将以主流Linux发行版(如Ubuntu/Debian和CentOS/RHEL)为例,详细说明固定IP的配置方法,包括传统配置文件方式和现代网络管理工具的使用,并附上注意事项和常见问题解答。

linux如何固定ip

固定IP的重要性及准备工作

固定IP地址是指为网络接口分配一个静态的、长期不变的IP地址,与动态IP(通过DHCP自动获取)相比,其优势在于:

  1. 稳定性:服务器或关键设备固定IP后,远程访问、域名解析等操作不会因IP变化失效;
  2. 可控性:便于规划网络拓扑、配置端口映射、防火墙规则等;
  3. 服务连续性:避免因DHCP租约到期导致IP变更,影响依赖IP的服务(如数据库、Web服务)。

准备工作

  • 确定网络接口名称:通过ip aifconfig命令查看当前网络接口(如eth0ens33enp0s3等);
  • 获取网络参数:需提前规划IP地址(如168.1.100)、子网掩码(如255.255.0)、默认网关(如168.1.1)、DNS服务器(如8.8.8114.114.114);
  • 权限要求:配置网络通常需要root权限,可通过sudo提升权限。

Ubuntu/Debian系统固定IP配置(Netplan方式)

Ubuntu 18.04及后续版本默认使用Netplan作为网络配置工具,其配置文件为YAML格式,步骤如下:

查找Netplan配置文件

Netplan配置文件通常位于/etc/netplan/目录下,文件名可能为01-netcfg.yaml50-cloud-init.yaml等,使用以下命令列出文件:

ls /etc/netplan/

编辑配置文件

50-cloud-init.yaml为例,使用vimnano打开文件:

sudo nano /etc/netplan/50-cloud-init.yaml
```  示例如下:  
```yaml
network:
  version: 2
  ethernets:
    ens33:  # 替换为实际网络接口名
      dhcp4: no  # 禁用DHCP
      addresses: [192.168.1.100/24]  # IP地址/子网掩码(24表示255.255.255.0)
      gateway4: 192.168.1.1  # 默认网关
      nameservers:
          addresses: [8.8.8.8, 114.114.114.114]  # DNS服务器
          search: [localdomain]  # 可选,域名后缀

参数说明

  • dhcp4: no:禁用IPv4的DHCP自动获取;
  • addresses静态IP地址,格式为IP/子网掩码位数(如168.1.100/24);
  • gateway4:默认网关地址;
  • nameservers:DNS服务器配置,可配置多个地址。

应用配置

保存文件后,执行以下命令使配置生效:

sudo netplan apply

若配置有误,可通过netplan --debug apply查看调试信息。

验证配置

使用以下命令检查IP是否生效:

ip addr show ens33  # 查看接口IP配置
ping 192.168.1.1    # 测试网关连通性
ping www.baidu.com   # 测试DNS解析和外网连通性

CentOS/RHEL系统固定IP配置(NetworkManager方式)

CentOS 7/8/9默认使用NetworkManager管理网络,支持图形界面和命令行两种配置方式,此处以命令行nmcli工具为例(推荐,避免配置文件语法错误)。

查看网络连接名称

使用nmcli connection show列出所有网络连接,找到目标接口(如ens33):

nmcli connection show

修改连接配置

假设连接名称为ens33,执行以下命令将其设置为静态IP

sudo nmcli connection modify ens33 
    ipv4.method manual 
    ipv4.addresses 192.168.1.100/24 
    ipv4.gateway 192.168.1.1 
    ipv4.dns "8.8.8.8 114.114.114.114" 
    connection.autoconnect yes

参数说明

  • ipv4.method manual:设置IPv4为静态模式;
  • ipv4.addresses:IP地址及子网掩码;
  • ipv4.gateway:默认网关;
  • ipv4.dns:DNS服务器,多个地址用空格分隔;
  • connection.autoconnect yes:设置开机自动连接。

重启网络连接

使配置生效:

sudo nmcli connection down ens33 && sudo nmcli connection up ens33

验证配置

ip addr show ens33
nmcli connection show ens33 | grep ipv4
ping 192.168.1.1
ping www.baidu.com

传统配置文件方式(适用于旧版系统)

对于较旧的Linux发行版(如Ubuntu 16.04、CentOS 6),可通过编辑网络配置文件固定IP,步骤如下:

Ubuntu/Debian(/etc/network/interfaces)

  1. 编辑文件:
    sudo nano /etc/network/interfaces
    ```  以`eth0`为例):  
    ```bash
    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
  2. 重启网络:
    sudo systemctl restart networking

CentOS/RHEL(/etc/sysconfig/network-scripts/ifcfg-ens33)

  1. 编辑文件:
    sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=114.114.114.114
  2. 重启网络:
    sudo systemctl restart network

注意事项

  1. 接口名称确认:不同系统/虚拟机中网络接口名称可能不同(如eth0ens33enp0s3),务必通过ip a确认,避免配置错误;
  2. 参数匹配:IP地址需与所在网段一致,网关和DNS需正确,否则无法上网;
  3. 配置备份:修改前备份原配置文件(如sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml.bak),便于出错时恢复;
  4. 防火墙与安全组:若无法访问,检查防火墙(如ufwfirewalld)或云平台安全组是否放行端口;
  5. DHCP冲突:若网络中存在DHCP服务器,确保固定IP不在DHCP地址池范围内,避免IP冲突。

主流Linux发行版固定IP配置对比表

发行版系列 配置工具 配置文件路径 重启网络命令 静态IP关键参数
Ubuntu/Debian (新) Netplan /etc/netplan/*.yaml sudo netplan apply addressesgateway4nameservers
Ubuntu/Debian (旧) interfaces /etc/network/interfaces sudo systemctl restart networking addressnetmaskgatewaydns-nameservers
CentOS/RHEL (新) NetworkManager (nmcli) 无直接文件,通过命令修改 sudo nmcli connection down/up [连接名] ipv4.addressesipv4.gatewayipv4.dns
CentOS/RHEL (旧) ifcfg /etc/sysconfig/network-scripts/ifcfg-* sudo systemctl restart network IPADDRNETMASKGATEWAYDNS1

相关问答FAQs

问题1:固定IP配置后无法上网,如何排查?

解答

  1. 检查IP配置是否正确:执行ip addr show [接口名],确认IP、子网掩码是否设置无误;
  2. 检查网关连通性:执行ping [网关地址](如ping 192.168.1.1),若不通,检查网关设备(如路由器)是否正常;
  3. 检查DNS解析:执行ping www.baidu.com,若无法解析域名,尝试手动指定DNS(如8.8.8),确认/etc/resolv.conf中的DNS配置是否生效;
  4. 检查防火墙:执行sudo ufw status(Ubuntu)或sudo firewall-cmd --list-all(CentOS),确认是否拦截出站流量;
  5. 检查路由表:执行ip route,确认默认路由(default via [网关地址])是否存在。

问题2:如何查看当前IP配置是否为静态IP?

解答

  • Ubuntu/Debian(Netplan)
    cat /etc/netplan/*.yaml | grep -A 5 "dhcp4|addresses"  # 查看DHCP是否关闭及静态IP配置
  • CentOS/RHEL(NetworkManager)
    nmcli connection show [连接名] | grep "ipv4.method"  # 显示"manual"则为静态IP
  • 通用方法
    ip addr show [接口名]  # 查看接口IP,若IP为手动配置且非DHCP分配,则为静态IP

    通过dhclient -v [接口名]可查看是否仍在尝试通过DHCP获取IP(若无输出或报错,说明已禁用DHCP)。

通过以上方法,即可在不同Linux发行版中实现固定IP配置,根据系统版本选择合适的工具,注意参数正确性,配置后及时验证,确保网络稳定运行。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/26395.html

(0)
酷番叔酷番叔
上一篇 1小时前
下一篇 1小时前

相关推荐

  • Linux如何查看当前连接用户?

    who 命令:查看当前登录用户命令:who输出示例:user1 pts/0 2023-10-05 14:30 (192.168.1.10)user2 tty1 2023-10-05 09:15 (:0)参数解析:用户名:登录用户的账户名,终端类型:pts/*:远程终端(如SSH连接),tty*:本地物理终端,登……

    2025年7月23日
    2900
  • 如何安全安装Linux测试版内核?,dnf安装测试内核?新手必看指南,升级内核,sudo dnf install kernel-test详解,想尝鲜Linux测试内核?这条命令搞定

    在Linux系统中安装内核包是系统维护和升级的关键操作,常用于修复安全漏洞、支持新硬件或优化性能,以下为详细指南,涵盖主流发行版的安装方法及注意事项,操作前请务必备份重要数据,安装前的准备工作检查当前内核版本终端执行: uname -r # 示例输出:5.15.0-86-generic备份数据使用 rsync……

    2025年6月20日
    4100
  • 当前用户密码?非root!

    在Linux系统中,”超级用户”(又称root用户)拥有系统的最高权限,可执行所有操作(包括修改核心文件、安装全局软件等),但滥用root权限极易导致系统崩溃或安全漏洞,请严格遵循以下专业操作指南:成为超级用户的3种安全方式方法1:临时切换root(推荐)# 或执行单条root命令sudo rm /path/t……

    2025年7月24日
    2900
  • 进程基础,你真的掌握了吗?

    在Linux系统中,进程管理是系统运维和开发的核心技能之一,无论是监控资源占用、优化性能还是排查故障,高效的进程管理都至关重要,以下内容基于Linux内核文档、IBM开发者社区及《Linux命令行大全》等权威资料整理,遵循E-A-T(专业性、权威性、可信度)原则,确保技术准确性,进程定义:运行中的程序实例,包含……

    2025年8月8日
    2400
  • 如何通过挂载路径卸载设备?

    基础流程:自动挂载(推荐新手)现代 Linux 桌面环境(如 GNOME、KDE)通常支持自动挂载 U 盘:插入 U 盘将 U 盘插入 USB 接口,系统会自动检测并挂载,访问 U 盘打开文件管理器(如 Nautilus、Dolphin 或 Thunar),U 盘会出现在左侧边栏的 “设备” 或 “可移动设备……

    2025年7月27日
    2800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信