了解您的 Linux 系统使用静态 IP 地址还是 DHCP 分配的 IP 地址,出于各种原因都非常有用。例如,如果您要托管 Web 服务器或运行游戏服务器,则需要使用静态 IP 地址。如果您尝试解决网络问题,也可能需要知道您的 IP 地址。本文介绍如何在 Linux 中检查您的 IP 地址是静态的还是 DHCP 分配的。
本文介绍了手动方法和命令行方法,并清楚地解释了静态 IP 地址和动态 IP 地址之间的区别。
目录
IP 地址是网络上设备的唯一标识符。它用于在设备之间路由流量,并允许它们相互通信。
IP 地址有两种类型:静态和动态。
大多数家庭和办公室网络使用 DHCP 为设备分配 IP 地址。这是因为它更容易管理,并且有助于防止 IP 地址冲突。
但是,在某些情况下,需要使用静态 IP 地址,例如托管 Web 服务器或运行游戏服务器。
如果您不确定您的 Linux IP 地址是静态的还是 DHCP 分配的,您可以使用以下任何一种方法。
在 Linux 中,您可以通过检查系统的网络配置文件或使用 nmcli 等命令行工具,或者通过检查租约信息来确定 IP 地址是静态分配的还是通过 DHCP 分配的。
对于使用 NetworkManager 的 Linux 系统,您可以使用此方法查找 IP 地址是静态的还是动态的。
配置可能存储在 /etc/NetworkManager/system-connections/ 中。您可以在此处检查各个连接文件。
<code>$ sudo ls /etc/NetworkManager/system-connections/ Auto Ostechnix_jio_5g.nmconnection Auto Sk vivo V21e 5G.nmconnection Wired connection 1 Auto Ostechnix.nmconnection Ostechnix_jio_4g.nmconnection </code>
例如,要检查“Wired Connection 1”是使用静态 IP 还是动态 IP,请使用以下命令查看其配置文件的内容:
<code>$ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 1</code>
查找以 method= 开头的行,位于 [ipv4] 和 [ipv6] 部分下。如果显示 auto,则为 DHCP。如果显示 manual,则为静态。
<code>[connection] id=Wired connection 1 uuid=5cfE09f2EG-20a6-3089-8577-5269e5cf08gh type=ethernet permissions= timestamp=1650630622 [ethernet] mac-address-blacklist= [ipv4] address1=192.168.29.55/24,192.168.29.1 dns=8.8.8.8; dns-search= <strong><mark>method=manual</mark></strong> [ipv6] addr-gen-mode=eui64 dns-search= ip6-privacy=2 method=auto [proxy]</code>
如输出所示,我已经为我的有线以太网连接分配了静态 IP 地址。
如果您想查看所有可用网络连接的详细信息,请运行:
<code>$ sudo cat /etc/NetworkManager/system-connections/*</code>
对于不使用 NetworkManager 的 Debian/Ubuntu 系统或派生系统:
检查 /etc/network/interfaces 文件。
<code>$ cat /etc/network/interfaces</code>
如果您看到 iface
<code>[...] source /etc/network/interfaces.d/* auto lo iface lo inet loopback <strong><mark>iface enp89s0 inet manual</mark></strong> auto vmbr0 iface vmbr0 inet static address 192.168.1.101/24 bridge-ports none bridge-stp off bridge-fd 0 [...]</code>
对于不使用 NetworkManager 的较旧的 Red Hat/Fedora 系统或派生系统:
检查 /etc/sysconfig/network-scripts/ 中的文件。
<code>$ cat /etc/sysconfig/network-scripts/ifcfg-*</code>
查找以 BOOTPROTO= 开头的行。如果显示 dhcp,则为 DHCP。如果不是,则为静态。
您也可以在具有 NetworkManager 的 Linux 系统上使用此方法。
nmcli 工具是 NetworkManager 的命令行客户端。您可以使用它快速确定 IP 地址的来源。
<code>$ nmcli con show [connection-name]</code>
将 [connection-name] 替换为您连接的名称。
例如,要查看“Auto Ostechnix_jio_5g”连接的来源,您将运行:
<code>$ nmcli con show 'Auto Ostechnix_jio_5g'</code>
在输出中,查找 ipv4.method 或 ip6.method 行。如果显示 auto,则为 DHCP。如果显示 manual,则为静态。
输出通常很长。因此,您可以使用以下grep 命令来过滤您想要的精确细节。
<code>$ nmcli con show 'Auto Ostechnix_jio_5g' | grep ipv4.method ipv4.method: <strong><mark>auto</mark></strong></code>
如上面的输出所示,我的网络中使用 DHCP 服务器动态分配了 IP 地址。
如果您想查看 IP 版本 6 的来源,请在上面的命令中将 ipv4.method 替换为 ipv6.method。
Linux 上的 DHCP 客户端通常会记录其活动,您可以检查这些日志以查找是否通过 DHCP 获取了 IP 地址。此外,DHCP 客户端通常将其租约信息存储在租约文件中。
对于 dhclient:
租约文件通常位于 /var/lib/dhcp/dhclient.leases 或 /var/lib/dhclient/dhclient.leases。
<code>$ cat /var/lib/dhcp/dhclient.leases</code>
如果您在此文件中看到最近的租约,则系统已通过 DHCP 获取其 IP。
请记住,检查方法可能因 Linux 发行版和版本而异,以及使用的网络工具(NetworkManager、传统的 ifup/ifdown、systemd-networkd 等)而异。上面提供的方法涵盖了许多常见场景,但并非所有可能的配置。
在本简短指南中,我们讨论了几种检查您的 IP 地址是静态的还是从 DHCP 服务器动态分配的方法。了解您的系统是使用静态 IP 地址还是 DHCP 分配的 IP 地址,对于在 Linux 中解决网络问题非常有益。选择适合您的方法,并在几秒钟内确定 IP 的来源。
相关阅读:如何在 Linux 和 Unix 中配置静态 IP 地址
以上是如何检查您的IP地址是静态的还是Linux中的DHCP(2024)的详细内容。更多信息请关注PHP中文网其他相关文章!