DJVPS820

Ubuntu修改SSH端口教程:修改22端口并安全远程连接

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 » Ubuntu修改SSH端口教程:修改22端口并安全远程连接