Ubuntu如何判断获取到的IP地址是静态IP还是动态?

Ubuntu如何判断获取到的IP地址是静态IP还是动态?

在 Ubuntu 系统中,可以通过以下方法判断当前 IP 是动态获取(DHCP)还是静态配置:


一、通过命令行工具查看 IP 信息

1.使用ip addrifconfig命令
  • 动态 IP:输出中会显示dynamicDHCP标记。
    ipaddr show eth0# 示例输出:# 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000# inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0# valid_lft 86399sec preferred_lft 86399sec
  • 静态 IP:无dynamic标记,且 IP 地址固定不变。
    ipaddr show eth0# 示例输出:# inet 192.168.1.200/24 brd 192.168.1.255 scope global eth0
2.使用hostname -Inmcli命令
  • hostname -I仅显示当前 IP 地址,需结合其他命令判断类型。
  • nmcli可查看网络连接状态:
    nmcli device show eth0# 动态 IP 输出包含 "IP4.ADDRESS=192.168.1.100/24 (DHCP)"# 静态 IP 输出包含 "IP4.ADDRESS=192.168.1.200/24"

二、检查网络配置文件

1.Netplan 配置(Ubuntu 20.04+ 推荐)
  • 配置文件路径:/etc/netplan/*.yaml
  • 动态 IP配置示例:
    ethernets:eth0:dhcp4:yes
  • 静态 IP配置示例:
    ethernets:eth0:dhcp4:noaddresses:[192.168.1.200/24]gateway4:192.168.1.1nameservers:addresses:[8.8.8.8]
  • 验证方法
    cat/etc/netplan/*.yaml|grep-E"dhcp4|addresses"
2.传统网络配置(旧版 Ubuntu)
  • 配置文件路径:/etc/network/interfaces
  • 动态 IP配置示例:
    auto eth0 iface eth0 inet dhcp
  • 静态 IP配置示例:
    auto eth0 iface eth0 inet static address192.168.1.200 netmask255.255.255.0 gateway192.168.1.1

三、检查 DHCP 服务状态

1.查看 DHCP 客户端服务
  • 若 DHCP 服务正在运行,可能使用动态 IP:
    systemctl status dhcpcd# 或 isc-dhcp-client
  • 输出包含Active: active (running)表示 DHCP 客户端正在获取 IP。
2.检查 DHCP 租约文件
  • DHCP 分配的 IP 信息会记录在租约文件中:
    cat/var/lib/dhcp/dhclient.leases# 示例内容:# lease 192.168.1.100 {# starts 5 2023/10/01 10:00:00;# renewal 86400;# rebind 172800;# expires 259200;# }

四、其他方法

  1. 重启网络后观察 IP 变化

    • 动态 IP 重启后会变化,静态 IP 保持不变。
    sudosystemctl restart networking# 旧版sudonetplan apply# 新版
  2. 查看 NetworkManager 连接状态

    nmcli connection show# 动态连接类型为 "dhcp",静态为 "manual"

总结

方法动态 IP 特征静态 IP 特征
ip addr/ifconfig显示dynamicDHCP标记dynamic标记,IP 固定
Netplan 配置文件dhcp4: yesdhcp4: no+ 固定地址和网关
DHCP 租约文件存在租约记录无租约记录
重启网络后 IP 变化IP 变化IP 不变

通过以上方法,可快速判断 Ubuntu 当前使用的是动态还是静态 IP。若需切换类型,需修改对应配置文件并重启网络服务。

总结
通过nmcli connection show查看整个服务器的网络连接情况,再用nmcli device show 网口命令查看具体的网口的IP配置情况;