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)
酷番叔酷番叔
上一篇 2025年9月19日 21:49
下一篇 2025年9月19日 22:01

相关推荐

  • 如何安全高效编辑Linux文件?

    命令行编辑器(适用于远程/无图形界面)Vi/Vim(高效专业)打开文件: vim 文件名 # 新建或编辑现有文件基础操作:按 i 进入编辑模式(底部显示 — INSERT –)方向键移动光标,直接修改内容保存与退出:按 Esc 返回命令模式输入 :wq 保存并退出(:w 仅保存,:q! 强制退出不保存)实用……

    2025年7月16日
    15100
  • 如何启用和关闭SELinux?

    SELinux(Security-Enhanced Linux)是由美国国家安全局(NSA)主导开发的Linux安全模块,通过强制访问控制(MAC)机制增强系统安全性,防止未授权的访问和操作,在Linux系统中,SELinux有三种运行模式:enforcing(强制模式,违规操作会被阻止并记录日志)、permi……

    2025年8月25日
    14600
  • Linux考证路径怎么选?权威指南来支招

    在当今以云计算、大数据和人工智能为核心的技术浪潮中,Linux操作系统凭借其开源、稳定、安全和灵活的特性,已成为服务器、云计算平台、容器技术(如Docker/Kubernetes)乃至嵌入式系统领域的绝对基石,掌握Linux技能不仅是IT从业者的必备能力,更是通往高薪技术岗位(如系统工程师、运维工程师、DevO……

    2025年7月2日
    15300
  • Linux系统如何查看Java JVM的运行状态与参数?

    在Linux环境下管理Java应用时,查看Java虚拟机(JVM)的运行状态是性能调优、故障排查和资源优化的核心环节,JVM作为Java程序的运行引擎,其内存管理、垃圾回收(GC)、线程执行等状态直接影响应用的稳定性和性能,本文将详细介绍Linux下查看JVM状态的主流方法,涵盖命令行工具和可视化工具,帮助开发……

    2025年8月22日
    14800
  • linux如何看硬盘序列号

    在Linux系统中,硬盘序列号是硬盘的唯一硬件标识符,广泛应用于系统管理、故障排查、资产盘点等场景,通过序列号可以准确识别物理硬盘,避免因设备名称变化(如/dev/sda变为/dev/sdb)导致的管理混乱,本文将详细介绍Linux下查看硬盘序列号的多种方法,包括工具使用、命令示例及注意事项,帮助用户根据实际需……

    2025年9月9日
    11600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信