切換選單
切換偏好設定選單
切換個人選單
尚未登入
若您做出任何編輯,會公開您的 IP 位址。
於 2026年2月17日 (二) 09:44 由 Liam留言 | 貢獻 所做的修訂
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)

前言

搬瓦工的 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


# 或者查看 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


# 編輯 SSH 配置文件

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


# 檢查 SSH 服務狀態

systemctl status sshd


# 確認新埠已在監聽

ss -tlnp | grep sshd

如果輸出中能看到你設置的新埠號,說明修改成功了。

2.3 配置 ufw 防火牆(如果啟用了的話)

搬瓦工默認系統一般沒有啟用 ufw。但如果你之前手動啟用了 ufw,那麼必須先放行新埠,否則新埠的流量會被防火牆攔截:

# 檢查 ufw 狀態

ufw status


# 如果 ufw 是 active 狀態,放行新埠

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 行,修改為新埠

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


# CentOS 7 使用這個包名

# yum install -y policycoreutils-python


# 向 SELinux 添加新的 SSH 埠

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


# 添加新埠到 SELinux 策略

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


# 可選:如果不再使用 22 埠,移除默認的 ssh 服務

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位址


# Windows 使用 PuTTY / Xshell 等工具

# 在連接設置中將埠改為 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 能用,留好退路。

如果在操作過程中遇到問題,可以在本站評論區留言,或者加入搬瓦工交流群一起討論。

搬瓦工中文網 — 做專業的搬瓦工中文教程站