Linux VPS安全加固:修改默认SSH端口完整指南(2026版)

–

–

我之前有台VPS,装完系统没改任何东西,默认22端口挂着。不到一周翻日志,几千条暴力破解记录。密码够复杂没被进去,但看着挺闹心。

后来给自己定了个规矩:新机器到手第一件事改SSH端口。把流程写一遍。

为什么改?22是SSH默认端口,全网自动化脚本24小时扫。你不改端口,扫描天天来找你。改了之后能挡掉大部分自动扫描,日志也干净。当然这不是万能的,密钥登录、Fail2ban、防火墙该配还得配,但改端口是成本最低的一步。

动手之前几件事:

  • 当前SSH连接别断。改完配置后新开窗口测新端口,通了再关旧的。这一步能救你很多次。
  • 确认有root或sudo权限。
  • 想好新端口号,1024到65535之间,别跟80、443、3306撞。我习惯用28888或34567,好记不冲突。
  • 防火墙先把新端口放行。很多人改完端口连不上就是忘了这步。
  • 用搬瓦工的话,操作前去KiwiVM面板做个快照,改错了快照恢复就行。

改端口过程

用Xshell或PuTTY登录VPS,root进去。

编辑配置文件

vi /etc/ssh/sshd_config

找到 #Port 22,去掉#号,把22改成你要的端口:

Port 28888

我的习惯是先留着Port 22不删,新端口测试通了再把22干掉。万一新端口出问题还能回去。

保存退出:Esc,:wq,回车。

重启SSH服务,不同系统命令不一样。

CentOS 7/8用 

systemctl restart sshd

CentOS 6用 

service sshd restart

Debian/Ubuntu用 

systemctl restart ssh
# 或
service ssh restart

防火墙放行:

光改端口不够,防火墙不放行外面连不上。

iptables老系统

# 放行新端口
/sbin/iptables -I INPUT -p tcp --dport 28888 -j ACCEPT

# 保存规则
/etc/init.d/iptables save
# 或
service iptables save

# 查看规则
iptables -L -n

firewalld(CentOS 7/8)

# 放行新端口
firewall-cmd --permanent --add-port=28888/tcp

# 重载防火墙
firewall-cmd --reload

# 查看已放行端口
firewall-cmd --list-ports

ufw(Ubuntu/Debian)

# 放行新端口
ufw allow 28888/tcp

# 查看状态
ufw status

阿里云、腾讯云、AWS这些还得去控制台安全组放行。搬瓦工没有外部安全组,只配系统防火墙就行。

SELinux别忘:

CentOS开了SELinux的话,光改配置和防火墙不够,SELinux也会拦。

# 查看当前允许的端口
semanage port -l | grep ssh

# 添加新端口
semanage port -a -t ssh_port_t -p tcp 28888

# 重启SSH
systemctl restart sshd

Ubuntu的AppArmor一般不会拦,除非你自己写了规则,去 /etc/apparmor.d/ 看看。

测试:

配置完不要关当前窗口。新开终端:

ssh -p 28888 root@你的VPS_IP

进去了就对了。进不去回旧窗口查:配置拼对没、防火墙放了没、SELinux拦了没、SSH重启了没。

搞不定的话搬瓦工KiwiVM面板有VNC控制台可以进去救急。

确认新端口没问题后,删掉配置文件里的 Port 22,只留新端口,再重启一次SSH。

常见问题:

  • 改了端口还能用22吗?能,但建议测通了就删,不然扫描照来。
  • 影响网站吗?不影响,SSH端口跟网站端口两码事。
  • 搬瓦工改端口麻烦吗?跟普通Linux VPS一样。KiwiVM面板有快照功能,改之前先快照,出问题回滚。
  • 除了改端口还做什么?禁用root密码登录、用SSH密钥、装Fail2ban、定期更新系统、配白名单。
  • 操作顺序记住:编辑sshd_config → 防火墙放行 → 重启SSH → 新窗口测试 → 确认OK再关旧连接。最重要的一条:别关旧窗口,先测通新的。
  • 搬瓦工DC6机房走CN2 GIA-E线路,三网优化,国内建站体验不错。KiwiVM面板管理方便,支持快照和机房切换。
  • 本文包含联盟链接。通过链接购买,我可能获得佣金,不影响你的购买价格。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注