生薑2.7.53.0
Ginger 是一款免費的拼字和文法檢查器。
需要連接到外部 PC 或服務器,或者需要另一台 PC 或服務器連接到您?如果您運行的是 Linux,則需要確保正確的端口已打開。
雖然其他操作系統通常為此提供一些圖形工具,但 Linux 並不是那麼簡單。我們將在下面向您介紹如何在 Linux 中打開端口。
什麼是端口,為什麼需要打開它?
端口是網絡上的端點。把它想像成一扇通向特定房間或外部世界的門,但在您的計算機上。您在互聯網上所做的一切都使用特定端口或一系列端口。
例如,假設您想運行自己的 Minecraft 服務器。為此,您需要打開一個端口供用戶連接到它。這同樣適用於運行您自己的 Web、郵件或 FTP 服務器。
所有聯網設備的端口都是標準化的。前 1,024 個端口(從 0 到 1023)稱為眾所周知的端口號。它們保留用於最常用的服務,例如 HTTP 和 HTTP(分別為端口 80 和 443)和 SSH(端口 22)。
高於 1024 的端口號稱為臨時端口,通常可供您用於在線遊戲、私人 Web 服務器等。端口號 1024 到 49151 稱為註冊端口或用戶端口,而從 49152 到 65535 的端口號稱為動態端口或私有端口。
列出 Linux 上的開放端口
在你開始嘗試在 Linux 上打開一個端口之前,你應該確保它沒有被使用。您可以使用大多數 Linux 發行版中包含的netstat命令來完成此操作。如果您的發行版沒有netstat,則可以使用ss代替。
netstat -lntu
這將打印所有偵聽套接字 ( -l ) 以及端口號 ( -n )。它包括 TCP 端口 ( -t ) 以及 UDP ( -u )。如果您的系統沒有netstat,只需使用具有相同參數的ss即可。
ss -lntu
如何在 Linux 中打開端口
為了這個例子,我們假設我們想要打開端口 4000 到 TCP 連接。我們首先需要確保該端口尚未在使用中。我們通過netstat或ss做到這一點。
netstat -na | grep :4000 ss -na | grep :4000
假設輸出為空白,我們可以將適當的端口規則添加到系統的防火牆中。此方法將根據您的發行版以及它是否使用較新的ufw firewall 或firewalld而有所不同。Ubuntu 偏愛 ufw,而CentOS 通常使用 firewalld代替。當然,仍有一些 Linux 發行版使用較舊的iptables防火牆。
對於 Ubuntu 用戶和其他基於 ufw 防火牆的系統
Ubuntu 和其他一些發行版沒有使用舊的iptables防火牆,而是使用ufw。在這些系統下,以下命令將打開端口。
sudo ufw allow 4000
跳過接下來的幾個步驟,並測試您新打開的端口以確保其正常工作。
如何使用 CentOS 和其他基於防火牆的系統在 Linux 中打開端口
如果您的系統使用firewalld,最好的辦法是使用firewall-cmd命令更新規則。
sudo firewall-cmd --add-port=4000/tcp
這不會是永久性更改,但我們將介紹如何在測試端口後重新啟動後使規則保持不變。
對於其他 Linux 發行版
如果您的 Linux 系統沒有ufw或firewalld,則需要使用iptables。如果未安裝,請繼續使用您選擇的包管理器獲取它。安裝後,此命令將打開端口 4000:
sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPT sudo service iptables restart
如果您的系統使用systemctl,請將第二個命令替換為:
sudo systemctl restart iptables
測試新打開的端口以進行連接
接下來,我們應該測試端口以確保它接受連接。我們通過使用 netcat ( nc ) 來監聽端口,然後嘗試 telnet 到它。
首先,打開一個終端窗口並發出以下命令:
sudo ls | nc -l -p 4000
讓它運行(監聽)並打開第二個終端窗口。在該窗口中,您將使用 telnet 測試連接性。如果未安裝 telnet,請使用包管理器進行安裝。
telnet [hostname/IP address] [port number]
將[hostname/IP address]替換為您系統的 IP 地址,將[port number]替換為您打開的端口號。
telnet localhost 4000
您應該會看到如下所示的輸出,表明與nc的連接已打開。
我們還可以使用nmap顯示端口已打開。同樣,如果該命令尚未安裝,請使用您的包管理器來檢索它。
nmap localhost -p 4000
請注意,nmap只會列出正在偵聽連接的開放端口。這就是為什麼我們使用 netcat 進行測試,監聽那個端口。否則,端口不會註冊為打開狀態。
我無法連接到剛剛打開的端口,現在怎麼辦?
如果您執行了上述所有步驟並且無法連接到端口,請仔細檢查您的輸入。如果您確定您輸入的所有內容均正確無誤,則您可能需要重新配置網絡路由器以允許流量。
由於每個網絡路由器都有不同的配置屏幕,您應該查閱特定設備的支持頁面或用戶手冊。您需要檢查端口轉發或端口映射設置,以及路由器可能使用的任何內置防火牆。
如何在 Linux 中永久打開一個端口
一旦您測試了您的開放端口並確保它工作正常,您可能希望永久更改。否則,重新啟動後更改可能不會保留。如果您是 Ubuntu 用戶,或者以其他方式使用ufw防火牆,則不必擔心這一點。ufw規則不會在重新啟動時重置。
對於防火牆用戶
使用firewalld可以輕鬆地在重啟後保留端口規則。只需將--permanent標誌添加到您的初始命令中,它就會在啟動時包含在您的 Linux 系統的防火牆規則中。
sudo firewall-cmd --add-port=4000/tcp --permanent
如果你還在使用 iptables
iptables防火牆要麻煩得多(也許是升級到firewalld或ufw的好理由)。要在iptables中“永久”打開一個端口,您可以安裝iptables-persistent包來提供幫助。
當您第一次在基於 Debian 的系統上安裝iptables-persistent時,它會將您當前的規則保存到/etc/iptables/rules.v4或/etc/iptables/rules.v6。要添加新規則,您將發出以下命令:
sudo iptables-save > /etc/iptables/rules.v4
或者
sudo iptables-save > /etc/iptables/rules.v6
對於那些運行基於 RPM 的 Linux 發行版的人來說,情況有些不同。該包名為iptables-services,保存文件為/etc/sysconfig/iptables和/etc/sysconfig/ip6tables。
在基於 RPM 的發行版上,還有一個用於 IPv6 端口的不同命令。使用以下兩個命令之一來保存規則:
sudo iptables-save > /etc/sysconfig/iptables sudo ip6tables-save > /etc/sysconfig/iptables
確保監控您的端口使用情況
隨著時間的推移,您的服務器需求可能會發生變化。正如您應該了解Linux 機器上的用戶帳戶一樣,您還應該定期審核您的開放端口。關閉不再需要的所有開放端口。除了定期更改密碼外,這是一種很好的安全實踐,可以幫助您避免系統入侵和安全漏洞。
Ginger 是一款免費的拼字和文法檢查器。
Blocks 是一款供三年級小學生練習檢測和眼力技能的智力遊戲,被教師納入 IT 教學支援計劃。
Prezi 是一款免費應用程序,可讓您在線上和離線建立數位簡報。
Mathway 是一款非常有用的應用程序,可協助您解決所有需要比裝置內建計算器更複雜的工具的數學問題。
Adobe Presenter 是 Adobe Systems 發佈的電子學習軟體,可在 Microsoft Windows 平台上作為 Microsoft PowerPoint 外掛程式使用。
Toucan 是一個教育科技平台。它允許您在瀏覽常見的日常網站時學習新語言。
eNetViet 是一款幫助家長與孩子就讀的學校建立聯繫的應用程序,以便他們可以清楚地了解孩子當前的學習情況。
Duolingo - 免費學習語言,或簡稱 Duolingo,是一個教育程序,可讓您學習和練習許多不同的語言。
RapidTyping 是一款方便易用的鍵盤訓練工具,可協助您提高打字速度並減少拼字錯誤。透過針對許多不同級別組織的課程,RapidTyping 將教您如何打字或提高現有技能。
MathType 是來自開發人員 Design Science (Dessci) 的互動式方程式軟體,它允許您為文字處理、演示、電子學習等創建和註釋數學符號。該編輯器還用於創建 TeX、LaTeX 和 MathML 文件。