配置 SSH,使用 ping
、netstat
、dig
進行網路診斷
1. 設定 SSH 伺服器
歡迎來到 Linux 網路功能的實作體驗!今天是時候檢驗我們的知識了!你會學到如何設定 SSH 伺服器,使用客戶端連線它,用最常見的命令進行網路診斷以及檢查埠的可用性。我們一起來感受網路工程師的感覺吧!
SSH (Secure Shell) 是一種用於安全遠端訪問伺服器的工具。它允許你像坐在伺服器前一樣管理伺服器,並傳輸文件。
步驟 1:安裝 SSH 伺服器
首先,我們需要安裝 SSH 伺服器。如果你使用 Ubuntu 或 Debian,執行以下命令:
sudo apt update
sudo apt install openssh-server -y
如果你使用 Fedora 或 CentOS:
sudo yum install -y openssh-server
安裝完成後,確認 SSH 服務已啟動:
sudo systemctl start ssh
sudo systemctl enable ssh # 讓 SSH 自動在系統啟動時運行
sudo systemctl status ssh # 檢查服務狀態
如果一切順利,你會看到服務正在運行。
步驟 2:配置 SSH 伺服器
SSH 伺服器的配置文件位於以下路徑:
sudo nano /etc/ssh/sshd_config
一些有用的參數:
PermitRootLogin no
— 禁止以root
用戶登錄。PasswordAuthentication yes
— 啟用密碼驗證。PubkeyAuthentication yes
— 啟用公鑰驗證。
修改後重啟 SSH:
sudo systemctl restart ssh
現在伺服器已準備好接受連線。
步驟 3:通過 SSH 連線伺服器
在另一台機器上(或在本地機器上通過 localhost)嘗試連線:
ssh your_username@your_server_ip
如果你在本地工作,將 your_server_ip
替換為 127.0.0.1
。輸入用戶的密碼,你就能通過終端進入系統。
2. 使用密鑰進行身份驗證的設定
使用密碼進行身份驗證很方便,但從安全性的角度來說,使用 SSH 密鑰是更好的選擇。
步驟 1: 生成 SSH 密鑰
在客戶端機器上執行以下指令:
ssh-keygen
系統會詢問你要將密鑰儲存到哪裡。預設情況下,密鑰將儲存在目錄 ~/.ssh/
中。只需按 Enter 即可。
步驟 2: 將密鑰複製到伺服器
將公開密鑰複製到伺服器:
ssh-copy-id your_username@your_server_ip
現在你可以不輸入密碼直接連接:
ssh your_username@your_server_ip
如果一切設定正確,那麼恭喜!現在你的 SSH 伺服器已經使用密鑰身份驗證進行保護。
3. 使用 ping
進行網路診斷
我們已經熟悉這個指令了。讓我們快速檢查我們的SSH伺服器是否可用。
ping -c 4 your_server_ip
你應該會看到伺服器的回應。如果沒有回應,檢查伺服器是否已啟動以及設定是否正確。
4. 使用 nslookup
和 dig
檢查 DNS
如果你的伺服器有網域名稱,可以透過 DNS 測試它是否正常。例如:
nslookup
指令:
nslookup your-domain.com
你應該能看到和你的網域對應的 IP 地址。
dig
指令:
現在試著取得完整資訊:
dig your-domain.com
你會看到很多資料,但我們主要關注 ANSWER SECTION
部分的行,那裡會顯示 IP 地址。
5. 使用 netstat
和 ss
分析網路連線
SSH 伺服器預設監聽 22 埠口。我們可以用 netstat
確認這一點:
sudo netstat -tln | grep 22
或者使用 ss
,一個比較現代的工具:
sudo ss -tln | grep 22
如果你看到 22 埠是 "LISTEN" (等待連接),那麼伺服器準備好接受客戶端連接了。
6. 使用 nc
檢查埠是否可用
指令 netcat
(或 nc
) 可以用來測試埠是否可用。我們來試著連接我們的 SSH 伺服器:
nc -zv your_server_ip 22
你應該會看到類似 "Connection to your_server_ip 22 port [tcp/ssh] succeeded!"
的訊息。
如果連接失敗,這可能表示埠被防火牆阻擋,或伺服器沒有監聽該埠。
7. 實作練習
現在,讓我們將所有內容結合到一個實際情境中。你需要:
- 在你的電腦或虛擬環境(例如WSL2)中啟用SSH。
- 生成金鑰並設定金鑰授權(禁用密碼)。
- 通過SSH連接到伺服器。
- 使用
ping
檢查伺服器的可用性。 - 使用
nslookup
和dig
檢查IP地址解析(如果你有域名)。 - 使用
netstat
、ss
和nc
檢查伺服器上的22端口。
現在你不僅已經能夠設定遠端訪問,還能解決網路問題、診斷伺服器並像真正的pro一樣保護它!你已經在邁向成為Linux大神的路上了。
GO TO FULL VERSION