修改 SSH 埠
更多語言
更多操作
前言
搬瓦工的 VPS 在購買並安裝系統後,SSH 埠號是隨機分配的,並不是常見的默認 22 埠。雖然隨機埠本身已經比固定 22 埠更安全一些,但在實際使用中,我們仍然會遇到需要修改 SSH 埠的情況。
最常見的場景有兩個:一是 SSH 埠被封,導致無法連接 VPS;二是出於安全考慮,想要自定義一個特定的埠。不管是哪種原因,修改 SSH 埠的操作本身並不複雜,但不同作業系統之間存在一些細節差異,稍不注意可能會把自己鎖在門外。
本文將分別介紹在 CentOS、Rocky Linux、Ubuntu 等搬瓦工常用系統上修改 SSH 埠的完整步驟,同時也會講解如何配合 KiwiVM 控制面板進行操作,確保即使改錯了也有辦法補救。
一、準備工作
1.1 確認當前 SSH 埠
搬瓦工 VPS 的 SSH 連接信息(IP 地址、埠號)可以在 KiwiVM 控制面板中查看。登錄方法如下:
1. 登錄搬瓦工官網,進入 Client Area
2. 點擊 Services → My Services,找到你的 VPS 套餐
3. 點擊 Open KiwiVM 進入 KiwiVM 控制面板
4. 在面板首頁即可看到 IP Address 和 SSH Port 信息
如果你已經能通過 SSH 客戶端連接到 VPS,也可以直接在終端中查看當前埠:
| # 查看當前 SSH 監聽埠
ss -tlnp | grep sshd
grep -i "^Port" /etc/ssh/sshd_config |
1.2 選擇新埠號
埠號的有效範圍是 1 到 65535。選擇新埠時,需要注意以下幾點:
• 避免使用常見服務埠:如 22(SSH 默認)、80(HTTP)、443(HTTPS)、3306(MySQL)、8080 等
• 建議選擇高位埠:1024 到 65535 之間的埠,且儘量選擇 10000 以上的隨機數字,如 28456、39721 等
• 避免與搬瓦工系統服務衝突:搬瓦工部分埠可能被內部服務占用,選擇一個不常見的高位埠即可
| 提示
建議用一個自己能記住但別人猜不到的埠,比如 5 位數的隨機埠。不要使用網上教程中的示例埠(如 2222),因為這些埠同樣會被掃描工具覆蓋到。 |
1.3 了解 KiwiVM 應急通道
這一步很重要。在修改 SSH 埠之前,你需要確認自己知道如何通過 KiwiVM 面板進入系統。因為一旦 SSH 埠改錯了或者防火牆配置有誤導致連不上 SSH,KiwiVM 的 Root shell 功能就是你的救命稻草。
KiwiVM 控制面板提供了三種在線 Shell 工具:
| 功能名稱 | 說明 |
| Root shell - basic | 簡易命令行,輸入單條命令後回車執行,適合簡單操作 |
| Root shell - advanced | 高級命令行,支持複製粘貼,適合執行較長的命令 |
| Root shell - interactive | 交互式 VNC 終端,最接近真實終端體驗,支持 vi 編輯器等交互操作 |
這三個工具都不依賴 SSH 連接,直接通過網頁操作 VPS。所以即使 SSH 完全連不上,也可以通過 KiwiVM 進入系統修復配置。改埠之前先試試這幾個功能,確保它們能正常使用。
| 重要提醒
如果你通過 Root shell - interactive(VNC)登錄,請注意: 用戶名輸入 root,密碼是你的 root 密碼(輸入時不會顯示任何字符,這是正常的)。 如果忘記了 root 密碼,可以在 KiwiVM 左側菜單的 Root password modification 中重置。 |
二、Ubuntu / Debian 修改 SSH 埠
Ubuntu 和 Debian 是搬瓦工上最常用的作業系統之一,操作也相對簡單。這兩個系統默認不啟用 SELinux,防火牆工具一般是 ufw(如果安裝了的話)。搬瓦工默認安裝的系統通常沒有啟用 ufw,所以在大多數情況下只需要修改配置文件並重啟服務即可。
2.1 修改 sshd_config
通過 SSH 或 KiwiVM Root shell 登錄 VPS 後,執行以下命令:
| # 備份配置文件(養成好習慣)
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vi /etc/ssh/sshd_config |
在文件中找到 #Port 22 這一行(可能被注釋掉了),去掉前面的 #,然後將 22 改成你想要的埠號。例如改成 28456:
| Port 28456 |
如果你使用 vi 編輯器:按 i 進入編輯模式,修改完成後按 Esc,然後輸入 :wq 回車保存退出。
| 安全建議
在確認新埠可用之前,建議先保留 22 埠不刪除,而是同時監聽兩個埠: Port 22 Port 28456 等新埠連接測試成功後,再回來刪掉 Port 22 那行。這樣可以避免把自己鎖在外面。 |
2.2 重啟 SSH 服務
| # 重啟 SSH 服務使配置生效
systemctl restart sshd
systemctl status sshd
ss -tlnp | grep sshd |
如果輸出中能看到你設置的新埠號,說明修改成功了。
2.3 配置 ufw 防火牆(如果啟用了的話)
搬瓦工默認系統一般沒有啟用 ufw。但如果你之前手動啟用了 ufw,那麼必須先放行新埠,否則新埠的流量會被防火牆攔截:
| # 檢查 ufw 狀態
ufw status
ufw allow 28456/tcp
ufw delete allow 22/tcp
ufw reload |
如果 ufw status 顯示 inactive,那說明防火牆沒有啟用,跳過這一步即可。
三、CentOS 7/8 修改 SSH 埠
CentOS 的操作比 Ubuntu 多了兩個環節:SELinux 和 firewalld。搬瓦工默認安裝的 CentOS 系統通常啟用了 SELinux(enforcing 模式),如果只修改了配置文件而沒有處理 SELinux,重啟 sshd 服務時會直接報錯,這是很多新手踩坑的地方。
3.1 修改 sshd_config
這一步和 Ubuntu 完全一樣:
| # 備份
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vi /etc/ssh/sshd_config
Port 28456 |
3.2 處理 SELinux
這是 CentOS/RHEL 系作業系統的關鍵步驟。SELinux 默認只允許 SSH 使用 22 埠,如果你改成了其他埠但沒有告知 SELinux,sshd 服務將無法啟動。
首先檢查 SELinux 狀態:
| # 查看 SELinux 當前狀態
getenforce |
如果輸出是 Enforcing,那麼必須執行以下操作。如果輸出是 Disabled 或 Permissive,可以跳過這一步。
| # 安裝 SELinux 管理工具(如果 semanage 命令不存在)
yum install -y policycoreutils-python-utils
# yum install -y policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 28456
semanage port -l | grep ssh |
正常情況下,輸出應該包含你新增的埠號。比如:ssh_port_t tcp 28456, 22
3.3 配置 firewalld 防火牆
CentOS 默認使用 firewalld 作為防火牆。同樣需要放行新埠:
| # 檢查 firewalld 是否運行
systemctl status firewalld
firewall-cmd --permanent --add-port=28456/tcp
firewall-cmd --reload
firewall-cmd --list-ports |
如果 firewalld 沒有運行(inactive),同樣可以跳過這一步。搬瓦工的部分系統鏡像默認並未啟用 firewalld。
3.4 重啟 SSH 服務
| # 重啟 sshd
systemctl restart sshd
systemctl status sshd
ss -tlnp | grep sshd |
||
四、Rocky Linux 9 / AlmaLinux 9 修改 SSH 埠
Rocky Linux 是 CentOS 停止維護後的主流替代方案,搬瓦工的系統模板中也已經提供了 Rocky Linux。操作方法與 CentOS 基本一致,但有一些小區別值得注意。
4.1 修改配置文件
Rocky Linux 9 引入了 /etc/ssh/sshd_config.d/ 目錄來管理配置片段。你可以選擇直接修改主配置文件,也可以在該目錄下創建一個新的配置文件(推薦後者,更清晰):
方法一:創建配置片段(推薦)
| # 創建一個自定義配置文件
echo "Port 28456" > /etc/ssh/sshd_config.d/custom-port.conf |
方法二:直接修改主配置文件
| cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vi /etc/ssh/sshd_config # 找到 #Port 22,去注釋並修改為 Port 28456 |
4.2 處理 SELinux
Rocky Linux 9 默認啟用 SELinux enforcing 模式,操作與 CentOS 相同:
| # 安裝 SELinux 管理工具
dnf install -y policycoreutils-python-utils
semanage port -a -t ssh_port_t -p tcp 28456
semanage port -l | grep ssh |
4.3 配置 firewalld
| # 放行新埠
firewall-cmd --permanent --add-port=28456/tcp firewall-cmd --reload
firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload |
4.4 重啟並驗證
| # 先檢查配置是否有語法錯誤
sshd -t
systemctl restart sshd systemctl status sshd ss -tlnp | grep sshd |
Rocky Linux 提供了 sshd -t 命令來預檢配置文件語法,建議在重啟之前先跑一下,避免因為配置錯誤導致服務起不來。
五、各系統操作對比速查
下面用一張表把三種系統的操作步驟做個對比,方便快速參考:
| 操作步驟 | Ubuntu / Debian | CentOS 7/8 | Rocky Linux 9 |
| 配置文件 | /etc/ssh/sshd_config | /etc/ssh/sshd_config | sshd_config.d/ 或主配置 |
| SELinux | 無需處理 | semanage port -a ... | semanage port -a ... |
| 防火牆 | ufw allow 埠/tcp | firewall-cmd ... | firewall-cmd ... |
| 重啟服務 | systemctl restart sshd | systemctl restart sshd | systemctl restart sshd |
| 預檢命令 | sshd -t | sshd -t | sshd -t |
| 包管理器 | apt | yum | dnf |
六、驗證與連接測試
修改完成後,先不要關閉當前的 SSH 會話。另外開一個終端窗口,用新埠嘗試連接:
| # Linux / macOS 終端
ssh -p 28456 root@你的IP位址
# 在連接設置中將埠改為 28456 即可 |
如果能成功連接,說明修改生效了。此時可以安全地關閉舊會話,並在配置文件中刪掉舊埠(如果之前保留了兩個埠的話)。
如果連接失敗,不要慌。保持舊會話不關閉,回去檢查以下幾點:
• 配置文件語法是否正確:運行 sshd -t 檢查
• SELinux 是否放行了新埠:運行 semanage port -l | grep ssh 確認
• 防火牆是否放行了新埠:運行 firewall-cmd --list-ports 或 ufw status 確認
• sshd 服務是否正常運行:運行 systemctl status sshd 查看
七、改壞了連不上怎麼辦
如果你不幸把自己鎖在了門外(SSH 完全連不上),別急,這種情況在搬瓦工上是完全可以救回來的。
7.1 通過 KiwiVM Root shell 修復
5. 登錄搬瓦工官網,進入 KiwiVM 控制面板
6. 點擊左側菜單的 Root shell - interactive,然後點擊 Launch
7. 在彈出的 VNC 窗口中用 root 帳號登錄
8. 執行修復命令:還原備份文件或重新修改埠
| # 如果之前做了備份,直接還原
cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config systemctl restart sshd
vi /etc/ssh/sshd_config |
7.2 終極方案:重裝系統
如果實在搞不定,KiwiVM 面板還提供了一鍵重裝系統的功能(Install new OS)。重裝後所有數據會被清空,但至少 VPS 能恢復到可用狀態。所以如果 VPS 上有重要數據,建議在修改埠之前先用快照(Snapshots)功能做一個備份。
八、額外安全建議
修改 SSH 埠只是伺服器安全的第一步,建議在此基礎上進一步加固:
• 使用 SSH 密鑰登錄,禁用密碼認證:在 sshd_config 中設置 PasswordAuthentication no,搭配密鑰對登錄,安全性大幅提升
• 禁止 root 直接登錄:創建普通用戶,設置 PermitRootLogin no,通過 sudo 提權
• 安裝 fail2ban:自動封禁多次嘗試暴力破解的 IP,減少被攻擊風險
• 定期更新系統:及時修補安全漏洞
• 使用搬瓦工快照功能:定期備份,出問題可快速恢復
以上就是搬瓦工 VPS 修改 SSH 埠的完整教程。總結一下核心要點:Ubuntu 最簡單,改配置重啟服務即可;CentOS 和 Rocky Linux 需要額外處理 SELinux 和 firewalld;改之前一定先確認 KiwiVM Root shell 能用,留好退路。
如果在操作過程中遇到問題,可以在本站評論區留言,或者加入搬瓦工交流群一起討論。
搬瓦工中文網 — 做專業的搬瓦工中文教程站