了解您的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></strong></code><mark> method=manual</mark> [ipv6] addr-gen-mode=eui64 dns-search= ip6-privacy=2 method=auto [proxy]
如輸出所示,我已經為我的有線以太網連接分配了靜態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></strong></code><mark> iface enp89s0 inet manual</mark> auto vmbr0 iface vmbr0 inet static address 192.168.1.101/24 bridge-ports none bridge-stp off bridge-fd 0 [...]
對於不使用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></strong></code><mark> auto</mark>
如上面的輸出所示,我的網絡中使用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中文網其他相關文章!