Ubuntu修改SSH端口是服务器安全管理中非常常见的一项基础操作,通过将默认SSH端口22修改为其他自定义端口,可以减少大量针对默认端口的自动化扫描和暴力破解攻击,提高Linux服务器的安全防护能力。对于长期运行网站、应用程序、数据库或者代理服务的Ubuntu服务器来说,合理调整SSH远程连接配置,并结合密钥登录、防火墙规则等安全措施,可以有效降低服务器被非法访问的风险。
SSH(Secure Shell)是Linux服务器远程管理最常用的协议,无论是云服务器、VPS还是独立服务器,大多数系统默认都会开启SSH服务,并监听22端口。由于22端口长期被攻击者和扫描程序重点关注,大量机器人会不断尝试使用弱密码进行登录,因此修改SSH端口成为很多服务器管理员部署完成后的第一步安全优化操作。不过需要注意的是,修改SSH端口并不是绝对安全措施,它主要作用是降低被扫描和攻击的概率,真正完善的服务器安全体系还需要配合强密码、SSH密钥认证、防火墙限制以及定期更新系统等方式。
为什么需要修改Ubuntu默认SSH 22端口?
Ubuntu安装完成后,OpenSSH服务默认监听22端口,这种设计方便用户快速通过SSH连接服务器,但同时也带来了安全隐患。由于22端口是公开标准端口,互联网中的扫描工具可以轻松发现大量开放SSH服务的服务器。一旦服务器暴露公网,攻击者通常会通过自动化程序不断尝试用户名和密码组合,例如常见的root账户、admin账户以及简单密码,这类攻击虽然技术含量不高,但由于扫描规模巨大,仍然可能对服务器造成安全威胁。
修改SSH端口的主要目的,是隐藏默认入口,减少无意义的攻击请求。例如,将SSH端口从22修改为2222、22022或者其他未被占用的端口后,大部分只扫描22端口的攻击程序将无法直接发现SSH服务。这样可以明显减少服务器日志中的异常登录记录,也降低CPU资源被大量失败认证请求消耗的情况。
不过,很多新手用户容易误解修改SSH端口的作用,认为换一个端口后服务器就完全安全,这是错误的。端口修改属于“降低攻击面”的措施,而不是核心安全防护手段。如果SSH密码过于简单,或者服务器允许root密码登录,即使修改了端口,也可能通过端口扫描被发现。因此,在实际生产环境中,建议将修改SSH端口与SSH密钥登录、禁止root远程登录、防火墙策略结合使用。
修改SSH端口前需要准备什么?
在修改Ubuntu SSH端口之前,需要确保当前服务器可以正常SSH连接,并且拥有root权限或者sudo管理员权限。如果服务器正在运行重要业务,建议提前做好配置备份,避免修改过程中因为配置错误导致无法远程登录。
首先,可以查看当前SSH服务状态,确认OpenSSH服务正常运行:
systemctl status ssh
如果显示SSH服务处于active(running)状态,说明当前远程连接服务正常。
接下来建议查看当前SSH监听端口:
ss -tunlp | grep ssh
正常情况下,可以看到类似:
LISTEN 0 128 0.0.0.0:22
表示SSH服务正在监听22端口。
另外,在修改之前最好保持当前SSH连接窗口不要关闭。很多服务器管理员在修改配置后直接退出SSH,结果因为新端口配置错误无法重新连接,只能通过云服务商提供的VNC、Web控制台或者救援模式进行修复。因此,修改SSH配置时保留一个已经登录的终端窗口,是非常重要的操作习惯。
Ubuntu修改SSH端口详细步骤
Ubuntu系统中SSH配置文件位于:
/etc/ssh/sshd_config
这个文件控制SSH服务的主要运行参数,包括监听端口、登录方式、认证规则等。
首先使用编辑器打开SSH配置文件:
nano /etc/ssh/sshd_config
或者:
vim /etc/ssh/sshd_config
找到以下配置:
#Port 22
默认情况下,这一行可能被注释掉,表示SSH使用默认22端口。
修改为:
Port 2222
这里的2222只是示例,你可以根据自己的需求设置其他端口。一般建议选择1024以上的非标准端口,例如2222、22222、10022等,避免与系统常用服务产生冲突。
修改完成后保存文件。
如果使用nano编辑器:
按:
Ctrl + O
保存,然后:
Ctrl + X
退出。
接下来需要重启SSH服务,让新的端口配置生效:
systemctl restart ssh
Ubuntu部分版本也可以使用:
systemctl restart sshd
重启完成后,可以再次检查监听端口:
ss -tunlp | grep ssh
如果看到:
0.0.0.0:2222
说明SSH已经成功切换到新端口。
配置Ubuntu防火墙允许新SSH端口
修改SSH端口后,不要忘记调整防火墙规则。如果服务器开启了UFW防火墙,而没有允许新的SSH端口,那么重启服务后可能会导致无法连接。
首先查看当前UFW状态:
ufw status
如果防火墙已经启用,需要允许新的端口:
ufw allow 2222/tcp
然后重新加载防火墙:
ufw reload
再次查看规则:
ufw status
应该能够看到:
2222/tcp ALLOW
如果服务器使用的是云厂商提供的安全组,例如阿里云、腾讯云、AWS、Google Cloud等,还需要在控制面板中开放对应端口。很多用户修改SSH端口失败,并不是系统配置问题,而是忘记修改云服务器安全组规则。
例如:
系统SSH已经监听2222端口;
Ubuntu防火墙已经允许2222;
但是云服务器安全组没有开放2222;
最终结果依然无法连接。
因此,服务器端口调整需要同时检查系统防火墙和云平台网络策略。
使用新SSH端口测试远程连接
修改完成后,不要立即关闭当前SSH窗口,需要先测试新的端口是否能够正常登录。
Linux或者Mac终端连接方式:
ssh root@服务器IP -p 2222
例如:
ssh root@192.168.1.100 -p 2222
如果可以正常进入服务器,说明SSH端口修改成功。
Windows用户可以使用PuTTY、Termius、Xshell等SSH工具,在端口位置填写新的SSH端口即可。
测试成功以后,再关闭旧连接。
如果连接失败,可以检查以下几个方面:
第一,确认SSH服务是否正常运行:
systemctl status ssh
第二,确认端口是否监听:
ss -tunlp | grep 2222
第三,检查防火墙:
ufw status
第四,检查云服务器安全组是否开放端口。
通过这些步骤,通常可以快速定位问题。

修改SSH端口后的安全优化建议
虽然Ubuntu修改SSH端口可以降低攻击数量,但想让服务器更加安全,还需要进一步优化SSH配置。
首先,建议关闭root直接远程登录。
编辑:
nano /etc/ssh/sshd_config
找到:
PermitRootLogin yes
修改为:
PermitRootLogin no
这样攻击者即使知道root账户,也无法直接通过SSH登录服务器。
然后创建普通管理员用户:
adduser username
添加sudo权限:
usermod -aG sudo username
以后通过普通用户登录,再使用sudo执行管理命令,可以减少root账户暴露风险。
其次,建议使用SSH密钥登录替代密码登录。SSH密钥采用非对称加密方式,比传统密码认证更加安全,可以有效防止暴力破解。
生成密钥:
ssh-keygen
上传公钥:
ssh-copy-id username@服务器IP -p 2222
确认密钥登录正常后,可以关闭密码认证:
PasswordAuthentication no
修改完成后重启SSH:
systemctl restart ssh
这样服务器只允许拥有密钥的用户登录,大幅提高安全等级。
另外,可以安装Fail2Ban防护工具,对连续失败登录行为进行自动封禁。
安装:
apt install fail2ban
启动:
systemctl enable fail2ban
systemctl start fail2ban
Fail2Ban会监控SSH登录日志,当某个IP短时间内大量尝试失败登录时,会自动加入黑名单。
Ubuntu修改SSH端口常见问题解答
修改SSH端口后无法连接怎么办?
如果修改SSH端口后无法连接,首先不要关闭当前已经登录的SSH窗口。通过当前窗口检查SSH配置是否正确,并确认新端口是否监听。
可以执行:
ss -tunlp | grep ssh
查看SSH是否运行在新端口。
如果发现配置错误,可以重新编辑:
nano /etc/ssh/sshd_config
恢复原来的22端口,然后重启SSH服务。
如果已经断开所有连接,可以通过云服务器提供商的控制台进入服务器进行修复。
SSH端口修改成多少比较安全?
SSH端口没有绝对安全的固定数字。很多用户喜欢使用2222、22022等端口,这些端口容易记忆,也不会与常见服务冲突。
实际上,端口数字本身并不能提供真正安全保护,只是减少自动扫描。安全性主要取决于是否使用密钥认证、是否关闭root登录以及是否配置防火墙。
因此,不需要刻意追求特殊端口,选择一个未被占用且方便管理的端口即可。
修改SSH端口会影响网站运行吗?
正常情况下不会影响网站运行。
SSH端口只负责服务器远程管理,与网站访问使用的80端口、443端口没有关系。例如,网站仍然可以正常通过HTTP和HTTPS访问。
不过,如果服务器安装了自动化管理程序、监控系统或者脚本,需要提前确认这些工具是否依赖SSH默认22端口。
Ubuntu修改SSH端口是提升Linux服务器安全性的基础操作,通过将默认22端口调整为自定义端口,可以有效减少大量自动扫描和暴力破解行为,让服务器远程管理环境更加安全稳定。不过,端口修改只是服务器安全优化的一部分,并不能替代完整的安全策略。
对于长期运行的Ubuntu服务器,建议采用组合式安全方案,包括修改SSH端口、关闭root密码登录、启用SSH密钥认证、配置防火墙规则、安装Fail2Ban防护以及定期更新系统补丁。只有多层防护结合,才能真正降低服务器受到攻击的风险,让网站、应用和数据运行环境更加可靠。

djvps820



