菜鸟科技网

Linux命令行如何配置IP地址?

在Linux系统中,命令行配置IP地址是网络管理的基础技能,无论是服务器运维还是日常开发,都可能需要通过命令行快速调整网络参数,本文将详细讲解Linux命令行下IP配置的方法,包括临时配置、永久配置、不同发行版的差异以及常见问题的解决方案。

Linux命令行如何配置IP地址?-图1
(图片来源网络,侵删)

临时IP配置

临时配置的IP地址在系统重启后会失效,适用于测试或临时网络场景,常用的命令包括ifconfigip命令。

  1. 使用ifconfig命令(较旧但仍可用)
    首先需要安装net-tools包(Ubuntu/Debian下可通过sudo apt install net-tools安装,CentOS/RHEL下通过sudo yum install net-tools安装)。

    • 配置IP地址:
      sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0

      其中eth0为网卡名称,168.1.100为IP地址,netmask为子网掩码。

    • 启用/禁用网卡:
      sudo ifconfig eth0 up    # 启用网卡
      sudo ifconfig eth0 down  # 禁用网卡
    • 添加网关:
      sudo route add default gw 192.168.1.1
  2. 使用ip命令(推荐,现代Linux系统默认支持)
    ip命令是iproute2包的一部分,功能更强大且推荐使用。

    Linux命令行如何配置IP地址?-图2
    (图片来源网络,侵删)
    • 配置IP地址:
      sudo ip addr add 192.168.1.100/24 dev eth0

      其中/24表示子网掩码为255.255.255.0。

    • 启用/禁用网卡:
      sudo ip link set eth0 up
      sudo ip link set eth0 down
    • 添加网关:
      sudo ip route add default via 192.168.1.1

永久IP配置

永久配置需要修改系统配置文件,不同Linux发行版的配置文件位置和格式有所不同。

Ubuntu/Debian系统(使用Netplan或ifcfg文件)

  • Netplan配置(Ubuntu 18.04及以后版本)
    Netplan通过YAML文件配置网络,通常位于/etc/netplan/目录下,编辑01-netcfg.yaml

    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses:
            - 192.168.1.100/24
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]

    配置完成后执行sudo netplan apply使配置生效。

    Linux命令行如何配置IP地址?-图3
    (图片来源网络,侵删)
  • 传统ifcfg文件(Ubuntu 16.04及以前版本)
    编辑/etc/network/interfaces文件:

    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 8.8.4.4

    保存后执行sudo ifup eth0或重启网络服务sudo systemctl restart networking

CentOS/RHEL系统(使用NetworkManager或ifcfg文件)

  • NetworkManager配置(图形化或命令行)
    通过nmtui(文本界面)或nmcli(命令行)配置,使用nmcli

    sudo nmcli con mod "eth0" ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4"
    sudo nmcli con up "eth0"
  • ifcfg文件配置
    编辑/etc/sysconfig/network-scripts/ifcfg-eth0

    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    ONBOOT=yes

    保存后执行sudo ifup eth0或重启网络服务sudo systemctl restart network

多IP地址配置

有时需要为一个网卡配置多个IP地址(即IP别名),可通过以下方式实现:

  • 使用ifconfig
    sudo ifconfig eth0:0 192.168.1.101 netmask 255.255.255.0
  • 使用ip命令
    sudo ip addr add 192.168.1.101/24 dev eth0 label eth0:0

常见网络配置命令速查表

功能 ifconfig命令 ip命令
查看网卡信息 ifconfigifconfig eth0 ip addr showip a
配置IP ifconfig eth0 192.168.1.100 netmask 255.255.255.0 ip addr add 192.168.1.100/24 dev eth0
启用网卡 ifconfig eth0 up ip link set eth0 up
添加默认网关 route add default gw 192.168.1.1 ip route add default via 192.168.1.1
删除IP地址 ifconfig eth0 0.0.0.0 ip addr del 192.168.1.100/24 dev eth0

FAQs

问题1:为什么使用ifconfig命令提示“command not found”?
解答:ifconfig属于net-tools包,部分现代Linux系统(如Ubuntu 20.04、CentOS 8)默认不再安装该包,可通过以下方式解决:

  • Ubuntu/Debian:sudo apt install net-tools
  • CentOS/RHEL:sudo yum install net-tools
    或直接使用ip命令替代,ip命令功能更全面且是当前主流工具。

问题2:配置静态IP后无法上网,如何排查?
解答:可按以下步骤排查:

  1. 检查IP地址、子网掩码、网关是否正确配置,确保与同一网段的其他设备一致。
  2. 使用ping命令测试网关连通性:ping 192.168.1.1(网关地址)。
  3. 检查DNS配置,使用nslookup www.baidu.com测试域名解析是否正常。
  4. 查看网络服务状态:systemctl status networking(Ubuntu)或systemctl status NetworkManager(CentOS)。
  5. 检查防火墙是否阻止网络访问,可通过sudo ufw disable临时关闭防火墙测试(Ubuntu)。

通过以上方法,可以系统性地解决Linux命令行IP配置中的常见问题,确保网络连接正常。

分享:
扫描分享到社交APP
上一篇
下一篇