Linux 配置静态 IP 步骤

Linux 配置静态 IP 主要有 两种方式

  1. 临时生效:重启网络或服务器后失效,适合测试场景。
  2. 永久生效:修改配置文件,重启后依然有效,适合生产环境。

注意:不同 Linux 发行版的网络配置文件路径不同,主流分为 Debian/Ubuntu 系RHEL/CentOS/Rocky 系

一、前提准备

  1. 登录 Linux 系统,切换到 root 用户

    bash 复制代码
    su root
    # 或
    sudo -i
  2. 查看网卡名称和当前 IP 信息

    bash 复制代码
    # 通用命令(推荐)
    ip addr
    # 或旧命令
    ifconfig

    输出示例中,网卡名一般为 etho 、ens33、enp0s3等,记下来备用。

二、临时配置静态 IP(重启失效)

适用于快速测试,无需修改配置文件。

命令格式

bash 复制代码
# 设置 IP 地址和子网掩码
ip addr add [IP地址/子网掩码位数] dev [网卡名]
# 启动网卡
ip link set [网卡名] up
# 配置默认网关
ip route add default via [网关IP] dev [网卡名]
# 配置 DNS(临时生效,修改 /etc/resolv.conf)
echo "nameserver [DNS服务器IP]" > /etc/resolv.conf

示例

假设网卡名ens33,IP 192.168.1.100,子网掩码 255.255.255.0 (对应/24),网关 192.168.1.1,DNS 223.5.5.5

bash 复制代码
ip addr add 192.168.1.100/24 dev ens33
ip link set ens33 up
ip route add default via 192.168.1.1 dev ens33
echo "nameserver 223.5.5.5" > /etc/resolv.conf

验证

bash 复制代码
ip addr  # 查看 IP 是否设置成功
ping 192.168.1.1  # ping 网关测试连通性

三、永久配置静态 IP(推荐)

方式 1:RHEL/CentOS/Rocky 系(/etc/sysconfig/network-scripts

  1. 进入网络配置文件目录

    bash 复制代码
    cd /etc/sysconfig/network-scripts/
  2. 找到对应网卡的配置文件,文件名格式为ifcfg-[网卡名],例如ifcfg-ens33

  3. 编辑配置文件(使用 vi/vim)

    bash 复制代码
    vi ifcfg-ens33
  4. 修改 / 添加以下内容(按实际网络参数替换)

    bash 复制代码
    TYPE=Ethernet
    BOOTPROTO=static  # 静态IP,dhcp为自动获取
    IPADDR=192.168.1.100  # 静态IP地址
    NETMASK=255.255.255.0  # 子网掩码
    GATEWAY=192.168.1.1  # 网关
    DNS1=223.5.5.5  # DNS服务器1
    DNS2=114.114.114.114  # DNS服务器2(可选)
    ONBOOT=yes  # 开机自动启动网卡
    NAME=ens33  # 网卡名
    DEVICE=ens33  # 网卡设备名
    UUID=xxxxxxx  # 保留原有UUID,无需修改
  5. 保存退出(vi 编辑器::wq!)

  6. 重启网络服务

    bash 复制代码
    # CentOS 7 及以上
    systemctl restart NetworkManager
    # 或
    nmcli connection reload
    nmcli connection up ens33

方式 2:Debian/Ubuntu 系(/etc/netplan

Ubuntu 18.04 及以上使用 netplan工具,配置文件为.yaml格式。

  1. 进入 netplan 配置目录

    bash 复制代码
    cd /etc/netplan/
  2. 查看目录下的 yaml 文件,例如 00-installer-config.yaml(文件名可能不同)

  3. 编辑配置文件

    bash 复制代码
    vi 00-installer-config.yaml
  4. 修改内容(注意 yaml 缩进严格,不能用 tab

    bash 复制代码
    network:
      ethernets:
        ens33:  # 网卡名
          addresses: [192.168.1.100/24]  # 静态IP和子网掩码
          gateway4: 192.168.1.1  # 网关(Ubuntu 22.04 用 routes 替代 gateway4)
          nameservers:
            addresses: [223.5.5.5, 114.114.114.114]  # DNS服务器
      version: 2

    Ubuntu 22.04 及以上替换 gateway4 为 routes:

    bash 复制代码
    routes:
      - to: default
        via: 192.168.1.1
  5. 应用配置

    bash 复制代码
    netplan apply

方式 3:通用方式(/etc/network/interfaces

部分老版本系统或自定义系统使用此文件。

  1. 编辑配置文件

    bash 复制代码
    vi /etc/network/interfaces
  2. 添加以下内容

    bash 复制代码
    auto ens33  # 开机自动启动网卡
    iface ens33 inet static
        address 192.168.1.100  # 静态IP
        netmask 255.255.255.0  # 子网掩码
        gateway 192.168.1.1  # 网关
        dns-nameservers 223.5.5.5 114.114.114.114  # DNS
  3. 重启网络服务

    bash 复制代码
    systemctl restart networking

四、验证配置是否生效

  1. 查看 IP 地址

    bash 复制代码
    ip addr show [网卡名]
  2. 测试网关连通性

    bash 复制代码
    ping [网关IP]
  3. 测试外网连通性

    bash 复制代码
    ping www.baidu.com

可以ping通的话,静态ip配置成功

相关推荐
zylyehuo3 小时前
Linux 彻底且安全地删除文件
linux
用户8055336980317 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979117 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF17 小时前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜3 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10154 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux