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系统如何进入root目录?详细操作命令与步骤是什么?

    在Linux系统中,“进入root目录”这一表述可能存在两种理解:一是进入文件系统的根目录(/),这是整个Linux文件系统的顶层目录,所有其他目录都挂载在它之下;二是进入root用户的主目录(/root),这是系统管理员(root用户)的个人工作目录,本文将围绕这两种情况详细说明操作方法,并重点解答用户实际操……

    2025年8月27日
    27300
  • Linux服务安装成功的正确步骤是什么?

    在Linux系统中,服务的安装与管理是系统运维的核心任务之一,所谓“服务安装成功”,通常指将应用程序或系统功能配置为系统服务,使其能够通过systemd等服务管理工具统一控制(如启动、停止、重启、开机自启等),并确保服务进程稳定运行、资源合理分配,本文将详细说明Linux服务安装的完整流程、关键配置及验证方法……

    2025年10月5日
    7400
  • Linux中如何去掉不需要的文件或服务?

    在Linux系统中,“去掉”操作的具体含义因对象不同而存在差异,可能涉及删除文件/目录、卸载软件包、移除文本内容、取消权限或删除用户/组等场景,以下针对常见需求分场景说明具体操作方法,涵盖命令使用、选项参数及注意事项,去掉(删除)文件或目录这是最常见的“去掉”操作,主要通过rm命令实现,删除文件:直接使用rm……

    2025年10月5日
    6700
  • Linux如何高效列出目录结构的完整层次?

    Linux系统中的目录结构以树形层次组织,根目录为/,下包含/bin、/etc、/home、/usr等标准子目录,理解并掌握如何列出目录结构是系统管理和文件操作的基础,本文将详细介绍Linux中列目录结构的常用命令、选项及实际应用场景,基础命令:ls——灵活显示目录内容ls(list)是最基础的列目录命令,通过……

    2025年8月25日
    8900
  • linux中如何删除一个用户

    Linux中,使用userdel 用户名命令可删除用户,若还需删除其主

    2025年8月9日
    8500

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信