Linux系统如何从容地给服务器修改ssh远程端口
在 Linux 服务器的运维工作中,默认的 22 端口就像是自家的正门,虽然方便,但也最容易被黑客的自动化脚本盯着“暴力破解”。修改 SSH 端口是服务器安全加固的“第一道防线”,操作虽不复杂,但如果不注意细节,很容易导致自己也进不去系统。
下面是一份从逻辑到实操都力求严谨的指南,教你如何优雅地给服务器“换扇门”。
准备工作:安全第一
在动手之前,请务必保证你有一个备用的连接方案(如云服务商提供的 Web 终端/VNC 模式),以防配置错误导致 SSH 永久掉线。
第一步:修改配置文件
Linux 的 SSH 服务配置文件存放在 /etc/ssh/sshd_config。
-
使用 root 权限打开文件:
sudo vi /etc/ssh/sshd_config -
寻找
#Port 22这一行。 -
高能预警: 建议先保留 22 端口,在下方新增一行你的目标端口(例如 8888)。这样即便新端口不通,你还能通过 22 端口连回去。
PlaintextPort 22 Port 8888 -
保存并退出(
:wq)。
第二步:放行防火墙
这一步是最容易被忽略的,也是导致“连接超时”的罪魁祸首。
1. 宿主机防火墙(以 ufw 和 firewalld 为例)
-
Ubuntu/Debian (ufw):
sudo ufw allow 8888/tcp -
CentOS/RHEL (firewalld):
sudo firewall-cmd --permanent --add-port=8888/tcpsudo firewall-cmd --reload
2. 云平台安全组
如果你使用的是阿里云、腾讯云或 AWS,必须在云平台的控制台安全组页面,手动添加一条入站规则,允许 8888 端口通过。
第三步:处理 SELinux(重要)
如果你使用的是 CentOS、Fedora 或 RHEL,系统自带的 SELinux 可能会阻止 SSH 绑定到非标准端口。
-
检查 semanage 工具是否安装:
semanage port -l | grep ssh -
如果没安装,先安装工具包:
yum install policycoreutils-python -
将新端口加入 SELinux 白名单:
semanage port -a -t ssh_port_t -p tcp 8888
第四步:重启服务并验证
-
重启 SSH 服务:
sudo systemctl restart sshd -
关键操作: 不要关闭当前的终端窗口! 3. 新开一个本地终端窗口,尝试连接新端口:
ssh -p 8888 root@你的服务器IP
第五步:收尾工作
如果 8888 端口连接成功,说明你已经大功告成。此时可以回到第一步,进入配置文件把 Port 22 删掉或注销掉,然后再次重启 SSH 服务。至此,22 端口正式“退役”。
💡 进阶小贴士
-
端口选择: 建议选择 10000 到 65535 之间的随机数字,避开已知的服务端口(如 3306、8080 等)。
-
配合密钥登录: 修改端口只是防“路人”,配合 SSH Key 密钥登录并禁用密码登录,才能让你的服务器稳如泰山。
如果嫌弃手动修改麻烦的朋友,也可以使用纽特云的Linux工具箱,集成了非常多的一键自动脚本https://www.niuteyun.com/newscontent/42.html