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 a或ifconfig命令查看当前网络接口(如eth0、ens33、enp0s3等);
  • 获取网络参数:需提前规划IP地址(如168.1.100)、子网掩码(如255.255.0)、默认网关(如168.1.1)、DNS服务器(如8.8.8、114.114.114);
  • 权限要求:配置网络通常需要root权限,可通过sudo提升权限。

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

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

查找Netplan配置文件

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

ls /etc/netplan/

编辑配置文件

以50-cloud-init.yaml为例,使用vim或nano打开文件:

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

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

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

相关问答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系统如何查看防火墙的当前运行状态?

    在Linux系统中,防火墙是保障服务器安全的重要组件,用于控制进出网络的流量,防止未授权访问,查看防火墙状态是日常运维中的常见操作,不同Linux发行版可能使用不同的防火墙管理工具(如iptables、firewalld、ufw等),本文将详细介绍如何通过这些工具查看防火墙状态,包括核心命令、参数解析及实际输出……

    2025年8月31日
    40800
  • 如何解决你常遇到的5大问题?

    在Linux GNOME桌面环境中更换软件源(Repository)是提升软件下载速度、获取稳定更新的关键操作,以下为详细步骤及注意事项,适用于Ubuntu、Debian等主流发行版(其他发行版逻辑类似):为什么需要换源?加速下载:国内用户访问官方源速度较慢,更换为国内镜像源(如阿里云、清华、中科大)可显著提升……

    2025年7月27日
    35800
  • linux如何查看用户的权限设置

    Linux 中,可通过 ls -l 查看文件或目录的权限,用 `

    2025年8月16日
    20100
  • Linux密码输错被锁,如何解锁账户?

    当Linux系统用户连续输错密码次数过多时,系统会基于安全策略自动锁定该用户账户,防止暴力破解,这种锁定通常由PAM(Pluggable Authentication Modules)模块实现,如pam_tally2或pam_faillock,解决密码输错锁住的问题,需根据系统配置和发行版选择对应方法,以下是详……

    2025年9月9日
    71100
  • 如何快速将大文件分卷压缩成2GB?

    为什么需要分包压缩?突破单文件大小限制(如FAT32文件系统最大4GB)分割大文件便于网络传输分卷备份降低存储风险兼容不同存储介质常用工具及操作步骤使用 tar + split(推荐原生方案)场景:压缩并分割超大目录/文件步骤:# 合并分卷并解压cat output.tar.gz.part* | tar -xv……

    2025年7月26日
    76300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信