全球服务器测评

Linux系统如何修改远程SSH端口

Linux服务器而言,SSH几乎是管理员每天都会使用的远程管理工具。无论是云服务器、VPS、独立服务器还是企业内部Linux主机,SSH都承担着远程登录、文件传输、系统维护以及自动化运维的重要工作。

然而,很多Linux系统在安装完成后都会默认开启22端口作为SSH远程连接入口。由于22端口是全球公开且众所周知的默认SSH端口,因此也成为网络扫描器、暴力破解程序以及恶意攻击脚本重点关注的目标。

如果查看服务器日志,经常会发现类似以下内容:

Failed password for root
Invalid user admin
Connection closed by authenticating user

这些记录往往意味着服务器正在遭受自动化扫描和密码爆破攻击。

因此,很多运维人员在服务器上线后做的第一件事情,就是修改SSH默认端口。虽然修改SSH端口无法从根本上解决安全问题,但能够有效减少大量自动化攻击请求,提高服务器的整体安全性。

本文将详细介绍Linux系统修改SSH远程端口的方法、注意事项以及相关安全加固措施。

为什么要修改SSH默认22端口

很多新手会产生疑问:

既然SSH本身已经加密,为什么还要修改端口?

原因主要来自于网络环境中的攻击行为。

互联网每天都有大量自动扫描程序不断探测开放端口。

对于攻击者来说:

  • 22端口通常意味着SSH服务
  • 80端口通常意味着Web服务
  • 3306端口通常意味着MySQL数据库
  • 6379端口通常意味着Redis

因此22端口几乎成为自动化攻击工具的默认目标。

修改SSH端口后虽然不能做到绝对隐藏,但能够降低被扫描发现的概率。

实际运维中,经常会出现这样的情况:

修改端口之前:

/var/log/auth.log

每天产生数千次非法登录尝试。

修改端口之后:

非法连接数量可能下降90%以上。

因此修改SSH端口属于服务器基础安全配置之一。

修改SSH端口前必须注意的事项

在正式修改之前,需要提前做好准备。

最重要的一点:

不要直接关闭当前SSH会话。

很多管理员修改完成后立即退出终端,结果发现新端口无法连接,最终导致服务器失联。

正确做法是:

保留当前SSH窗口不关闭。

然后:

  1. 修改配置
  2. 重启SSH服务
  3. 测试新端口
  4. 确认连接正常
  5. 再关闭旧会话

这样即使配置出错,也能通过当前窗口恢复。

查看当前SSH端口

首先确认系统当前SSH运行状态。

执行:

ss -tunlp | grep ssh

或者:

netstat -tunlp | grep ssh

输出类似:

LISTEN 0 128 0.0.0.0:22

说明SSH正在监听22端口。

也可以查看配置文件:

cat /etc/ssh/sshd_config | grep Port

结果可能为:

#Port 22

如果前面带有#号,说明系统使用默认22端口。

Linux修改SSH端口的方法

SSH服务配置文件通常位于:

/etc/ssh/sshd_config

使用编辑器打开:

sudo nano /etc/ssh/sshd_config

或者:

sudo vim /etc/ssh/sshd_config

找到:

#Port 22

修改为:

Port 2222

例如使用2222端口。

也可以使用:

Port 52022

或者:

Port 10022

只要端口未被占用即可。

SSH端口选择建议

理论上端口范围:

1-65535

但并非所有端口都适合使用。

建议选择:

10000以上

例如:

10022
12022
22022
52022
60022

避免使用:

21
25
80
443
3306
6379
8080

这些端口通常已经被其他服务占用。

修改后保存退出。

检查配置文件语法

在重启服务之前建议检查配置。

执行:

sshd -t

如果没有任何输出:

[root@server ~]#

说明配置正常。

如果出现错误:

Bad configuration option

需要返回配置文件检查。

这是非常重要的一步。

很多服务器失联都是因为配置写错后直接重启服务导致。

防火墙放行新SSH端口

仅修改SSH配置还不够。

很多Linux服务器启用了防火墙。

如果忘记放行端口,新SSH连接会被直接拦截。

Ubuntu放行端口

如果使用UFW:

sudo ufw allow 2222/tcp

查看规则:

sudo ufw status

显示:

2222/tcp ALLOW Anywhere

说明已经放行。

CentOS放行端口

如果使用Firewalld:

firewall-cmd --permanent --add-port=2222/tcp

重新加载:

firewall-cmd --reload

查看结果:

firewall-cmd --list-ports

输出:

2222/tcp

即可。

云服务器安全组配置

很多云平台不仅有系统防火墙。

还有云安全组。

例如:

  • 阿里云官网
  • 腾讯云官网
  • Amazon Web Services
  • Google Cloud

都需要同步放行新端口。

例如:

协议:TCP
端口:2222
来源:0.0.0.0/0

如果安全组未开放,即使系统配置正确也无法连接。

重启SSH服务

配置完成后重启服务。

Ubuntu:

systemctl restart ssh

CentOS:

systemctl restart sshd

查看状态:

systemctl status sshd

或者:

systemctl status ssh

确认显示:

active (running)

说明启动成功。

验证新端口是否生效

执行:

ss -tunlp | grep ssh

结果类似:

LISTEN 0 128 0.0.0.0:2222

说明SSH已经切换至新端口。

使用新端口登录服务器

Linux客户端:

ssh -p 2222 root@IP地址

例如:

ssh -p 2222 root@192.168.1.10

Windows PowerShell:

ssh -p 2222 root@服务器IP

成功登录后说明修改完成。

关闭22端口

确认新端口可以正常连接后。

返回配置文件:

sudo vim /etc/ssh/sshd_config

确保只保留:

Port 2222

不要同时存在:

Port 22
Port 2222

否则22端口仍然开放。

再次重启SSH服务:

systemctl restart sshd
即可彻底关闭默认端口。

使用双SSH端口过渡迁移

生产环境中建议采用过渡方式。

例如:

Port 22
Port 2222

SSH支持同时监听多个端口。

重启后:

systemctl restart sshd

此时:

22
2222

均可访问。

等待验证无误后再删除22端口。

这种方式风险最低。

配合密钥认证进一步提升安全性

仅修改端口并不代表绝对安全。

最佳实践是启用SSH密钥认证。

客户端生成密钥:

ssh-keygen -t ed25519

上传公钥:

ssh-copy-id root@服务器

然后修改:

/etc/ssh/sshd_config

找到:

PasswordAuthentication yes

改为:

PasswordAuthentication no

重启:

systemctl restart sshd

这样即使攻击者知道端口,也无法通过密码爆破登录。

禁止Root直接登录

进一步提高安全性。

配置:

PermitRootLogin no

然后创建普通管理员:

adduser admin

赋予sudo权限:

usermod -aG sudo admin

或者:

usermod -aG wheel admin

以后通过普通用户登录再执行:

sudo su -

管理系统。

这样即使遭遇攻击,也能降低风险。

Fail2Ban防暴力破解

很多运维人员会搭配Fail2Ban使用。

安装:

Ubuntu:

apt install fail2ban -y

CentOS:

yum install fail2ban -y

启动:

systemctl enable fail2ban
systemctl start fail2ban

当攻击者多次尝试失败时。

Fail2Ban会自动封禁其IP。

能够进一步减少恶意连接。

如何确认服务器没有暴力破解攻击

查看日志:

Ubuntu:

cat /var/log/auth.log

CentOS:

cat /var/log/secure

统计失败次数:

grep "Failed password" /var/log/secure

或者:

grep "Invalid user" /var/log/secure

修改SSH端口后通常会发现日志明显减少。

这是最直观的效果。

SSH端口修改失败如何恢复

如果修改后无法连接。

但当前SSH窗口尚未关闭。

可以直接恢复:

vim /etc/ssh/sshd_config

改回:

Port 22

然后:

systemctl restart sshd

即可恢复。

如果已经失联。

只能通过:

  • 云服务器控制台VNC
  • KVM远程管理
  • 救援模式
  • 单用户模式

重新修复配置。

因此修改前一定要保留当前会话窗口。

修改SSH默认22端口是Linux服务器安全加固中最基础、最有效且成本最低的措施之一。虽然它无法彻底阻止针对性的攻击,但能够显著减少自动化扫描、密码爆破以及恶意探测带来的干扰,从而降低服务器日志压力和安全风险。

在实际运维环境中,更推荐将修改SSH端口与密钥认证、禁止Root直接登录、防火墙策略以及Fail2Ban防护结合使用,形成完整的SSH安全体系。这样不仅能够提高服务器的安全等级,也能够让日常远程管理更加稳定可靠。

对于云服务器、VPS以及企业生产环境来说,SSH安全从来不是单一配置能够解决的问题,而是由端口管理、身份认证、访问控制和日志审计共同构成的防护体系。掌握SSH端口修改方法只是第一步,持续完善服务器安全策略,才是保障业务长期稳定运行的关键。

未经允许不得转载:全球服务器测评 » Linux系统如何修改远程SSH端口