一、Linux 中查看 IP 和端口的方法

在 Linux 系統下,有多種方法可以查看 IP 地址和端口號。以下將詳細介紹這些方法及其操作步驟。
1. 使用ip addr或ip addr show查看 IP 地址
執行ip addr或ip addr show命令后,輸出會包含網絡接口名稱、狀態、MTU、鏈路層地址、IPv4 和 IPv6 地址等豐富的信息。以博客園作者“南帝001”的實際操作為例,在命令執行結果中會顯示類似“1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff inet 10.10.11.92/24 brd 10.100.122.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::f816:3eff:fec7:7975/64 scope link valid_lft forever preferred_lft forever”的內容。如果機器有多塊網卡,每塊網卡都會顯示一部分信息。其中,“lo”是回環地址,通常分配到 127.0.0.1 地址上,用于本機通信;“eth0”是網卡名,如果有多塊網卡,會有多個類似名稱?!發ink/ether”后面是 MAC 地址,一塊網卡對應一個唯一的 MAC 地址。“inet”后面是網卡上綁定的 IP 地址,通常所說的 IPv4 地址,一塊網卡可以綁定多個 IP 地址。在綁定 IP 地址時需要注意,windows 主機會提示 IP 地址沖突,而 linux 主機無任何提示,所以在添加新的 IP 地址時務必檢測一下新地址是否和原有地址沖突,避免造成訪問不可用。常用檢測命令有 ping 或 arping IP?!癷net6”則是 IPv6 地址。
2. 只查看 IP 地址的方法
對于只查看 IP 地址,可以使用以下命令:IPv4:ip addr | grep inet。IPv6 相關命令可根據具體需求進行查找和使用。
3. 查看端口的方法
查看端口可使用ss -tuln或netstat -tuln命令。這些命令中的參數具有特定的含義:-t表示顯示 TCP 端口。-u表示顯示 UDP 端口。-l表示顯示監聽狀態的端口。-n表示不解析服務名稱,直接使用端口號顯示。例如,以“Linux常用命令——常用網絡命令【二】_-tuln 在 linux 是什么意思”中提到的為例,使用“netstat -tuln”可以查看本機開啟的端口,輸出中“Proto”表示網絡連接的協議,一般是 TCP 協議或者 UDP 協議;“Recv-Q”表示接收到的數據,已經在本地的緩沖中但還沒有被進程取走;“Send-Q”表示從本機發送但對方還沒有收到的數據,依然在本地的緩沖中,一般是不具備 ACK 標志的數據包;“Local Address”是本機的 IP 地址和端口號;“Foreign Address”是遠程主機的 IP 地址和端口號;“State”表示狀態,常見的狀態有 LISTEN(監聽狀態,只有 TCP 協議需要監聽,UDP 協議不需要監聽)、ESTABLISHED(已經建立連接的狀態)等。此外,還有多種查看端口的方式,如:使用netstat命令時,如果加上“-p”選項,可以查看到是哪個程序占用了端口,并且可以知道這個程序的 PID。使用ss -tuln命令,與netstat -tuln類似,能查看 TCP 和 UDP 監聽狀態的端口。使用lsof命令查看端口,如“lsof -i :端口號”可以查看特定端口的使用情況,輸出結果包含與該端口相關的進程信息,能夠更加詳細地了解到端口的使用情況。綜上所述,在 Linux 系統中,通過多種命令和方法可以方便地查看 IP 地址和端口號,這些方法在網絡管理、故障排除等方面都非常實用。
二、Linux 中連接 IP 和端口的方法
在 Linux 系統中,連接指定 IP 地址和端口可以使用 telnet 命令。以下是具體的步驟及操作:
1. 打開終端/命令行界面
打開 Linux 系統終端或命令行界面是使用 telnet 命令的第一步。這為后續輸入命令連接到指定 IP 地址和端口提供了操作環境。
2. 輸入 telnet 命令
在終端中輸入 telnet 命令,格式為telnet [IP 地址] [端口]。例如,要連接 IP 地址為 192.168.1.1 的主機的 80 端口,可以輸入telnet 192.168.1.1 80。等待連接建立后,若連接成功,會顯示連接成功的提示信息,可以進行后續操作,如輸入相關命令與目標 IP 地址的端口進行交互。
3. 若要結束 telnet 連接
可以按下Ctrl + ],然后輸入quit。具體來說,當按下Ctrl + ]后,會進入 telnet 的命令交互狀態,此時輸入quit即可退出 telnet 連接。此外,還有多種退出 telnet 連接的方式。比如可以使用 EOF 符號,在 telnet 連接狀態下,輸入Ctrl + D即可發送 EOF 符號給遠程服務器,從而退出 telnet 連接,這種方式適用于需要頻繁退出 telnet 連接的情況。也可以使用 telnet 的內置命令,在 telnet 連接狀態下,輸入telnet> quit命令即可退出 telnet 連接,這種方式是 telnet 的內置命令,可以保證在任何情況下都能夠正確退出 telnet 連接。如果由于網絡或者其他原因導致 Telnet 連接出現問題,無法正常退出,還可以使用強制退出的方法,在終端中輸入Ctrl + C組合鍵,即可強制中斷 Telnet 連接,但需要注意使用這種方式可能會導致連接異常關閉,可能會有數據丟失的風險。
三、Linux 中限定連接 IP 和端口的方法
在 Linux 系統下,可以通過多種方法來限定連接 IP 和端口。
1. 限制端口
可以通過修改/etc/ssh/sshd_config文件并重啟sshd服務來實現限制端口。具體步驟如下:首先,使用命令行工具嘗試編輯/etc/ssh/sshd_config文件,可能會遇到系統不讓修改的情況,如提示“/etc/ssh/sshd_config E212: Can't open file for writing”。此時可以嘗試使用sudo gedit /etc/ssh/sshd_config命令,系統會提示輸入密碼,輸入密碼后即可進行編輯。在文件中找到端口相關的配置項,進行端口的修改。修改完成后,保存退出。接著,重啟sshd服務使修改生效。同時,可以使用命令判斷端口是否被占用。例如,可以使用netstat -anp |grep 端口號來查看指定端口是否被占用,如sudo netstat -anp |grep 3306。若出現相關信息,則表示該端口被占用。此外,還可以使用lsof和ss命令檢查端口占用情況。如lsof -i:<端口號>和ss -tuln | grep<端口號>,這些命令可以列出占用指定端口的進程信息。
2. 限定 IP
可以通過編輯/etc/hosts.deny和/etc/hosts.allow文件來實現特定 IP 或網段的連接限制。編輯/etc/hosts.deny文件,在其中可以加入特定的規則來限制 IP 連接。例如,可以加入sshd:ALL來限制所有 IP 的 SSH 連接;也可以加入特定的 IP 限制,如sshd:192.168.0.111限制特定 IP 的 SSH 連接;或者加入網段限制,如sshd:192.168.0.*限制特定網段的連接。編輯/etc/hosts.allow文件進行相應的允許設置。例如,sshd:192.168.0.123:allow允許特定 IP 的連接;sshd:192.168.0.*:allow允許特定網段的連接;或者直接加入 IP 或網段,如sshd:192.168.0.123、sshd:192.168.0.*。當hosts.allow和hosts.deny有 IP 地址沖突時,以hosts.allow的設置為準。一般情況下,hosts.allow和hosts.deny結合起來一起使用,才能保證更好的安全性。即在hosts.deny文件中寫入“all:all:deny”,禁止一切 IP 地址遠程訪問所有資源,然后在hosts.allow文件中添加特定的 IP 地址允許遠程訪問資源即可。多個 IP 地址或 IP 地址段設置相同時,可以用逗號分割開來寫在一行。
四、Linux 中訪問特定 IP 和端口的方法
在 Linux 系統中,我們常常需要對特定 IP 和端口進行訪問控制,以確保系統的安全性和穩定性。下面將介紹給特定 IP 段開放特定端口以及使用防火墻規則限制訪問的方法。
關閉端口
可以使用firewall-cmd --zone=public --remove-port=3306/tcp --permanent命令關閉端口。例如,如果我們想要關閉 3306 端口,以防止未經授權的訪問,可以執行這個命令。執行后,所有 IP 地址都將無法訪問該端口。
開放端口給特定 IP 段
如果我們想要允許特定 IP 段訪問特定端口,可以使用firewall-cmd --permanent --add-rich-rule=\"rule family=\"ipv4\" source address=\"192.168.0.0/24\" port protocol=\"tcp\" port=\"3306\" accept\"命令。這個命令允許 IP 地址在 192.168.0.0/24 網段的主機訪問 3306 端口。其中,192.168.0.0/24 表示子網掩碼為 255.255.255.0 的 IP 地址范圍。
重新載入防火墻設置使設置生效
執行完關閉或開放端口的命令后,需要重新載入防火墻設置才能使設置生效??梢允褂胒irewall-cmd --reload命令來實現。這個命令會重新加載防火墻規則,使新的設置立即生效。同時,我們還可以查看和刪除已設置的規則。查看已設置規則可以使用firewall-cmd --zone=public --list-rich-rules命令。如果我們想要刪除已設置的規則,可以使用firewall-cmd --permanent --remove-rich-rule=\"rule family=\"ipv4\" source address=\"192.168.0.0/24\" port protocol=\"tcp\" port=\"3306\" accept\"命令,然后再執行firewall-cmd --reload命令使刪除操作生效。