Ubuntu服务器更改远程端口号的核心操作是通过修改SSH配置文件/etc/ssh/sshd_config中的Port参数,并重启SSH服务生效,此举能显著降低被暴力破解的风险。
在服务器运维的日常场景中,默认使用22端口进行远程连接就像把家门钥匙挂在显眼的门把手上,虽然方便,却极易暴露给自动化扫描脚本,对于许多初次接触Linux运维的管理员来说,修改远程端口往往被视为一种“高级”或“复杂”的操作,但实际上,这只是一个简单的配置变更过程,通过调整端口,你可以将服务从公海的“热闹街区”迁移到私宅的“隐蔽小巷”,从而避开绝大多数无差别攻击。
为什么需要修改SSH默认端口
在探讨具体操作之前,理解动机至关重要,SSH(Secure Shell)是Linux系统管理的主要通道,而22端口是其历史遗留的默认标准,正是这种普遍性带来了安全隐患。
防御自动化扫描攻击
互联网上存在大量的僵尸网络和恶意爬虫,它们会全天候扫描全球IP段,寻找开放22端口的服务器,一旦找到,便会立即尝试使用常见用户名和密码组合进行暴力破解,业内专家指出,这种自动化攻击占据了SSH攻击流量的绝大多数,将端口更改为非标准端口,如30000以上的随机高位端口,可以直接过滤掉90%以上的无差别扫描流量,让服务器“隐身”于噪音之中。
减少日志噪音与资源消耗
默认端口下,服务器日志中充斥着大量的失败登录尝试,这不仅干扰了对真实安全事件的监控,还会占用磁盘空间和CPU资源,通过更改端口,你可以大幅降低这些无效日志的产生,使安全审计更加清晰高效。

Ubuntu服务器更改远程端口号实操步骤
修改端口并非一蹴而就,需要严谨的步骤以确保在修改过程中不会丢失与服务器的连接,以下操作基于Ubuntu 20.04及以上版本,适用于大多数现代Linux发行版。
第一步:备份配置文件
在进行任何系统级修改前,备份是必须养成的习惯,万一配置错误导致无法登录,备份文件是你恢复系统的最后一道防线。
在终端中输入以下命令:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
这条命令将原始配置文件复制并重命名为.bak,确保原始状态可追溯。
第二步:编辑SSH配置文件
使用文本编辑器打开SSH的主配置文件,推荐使用nano或vim,这里以nano为例,因其界面友好,适合新手。
sudo nano /etc/ssh/sshd_config
在文件中找到Port这一行,默认情况下,它可能被注释掉(前面有号),或者明确指定为22。
修改端口参数
- 如果该行以开头,请删除号以取消注释。
- 将
22修改为你想要的新端口号,建议选择1024到65535之间的数字,避开知名服务占用的端口(如80、443、3306等),你可以设置为2222或50000。 - 确保新端口未被其他服务占用,你可以使用
sudo netstat -tulpn | grep <新端口>来检查。
第三步:配置防火墙规则
这是最容易被忽视的关键环节,Ubuntu通常预装ufw(Uncomplicated Firewall)或

iptables,如果你只修改了SSH配置而未开放新端口,防火墙将拦截所有连接,导致你被锁在服务器之外。
假设你选择的端口是2222,执行以下命令:
sudo ufw allow 2222/tcp
如果你之前已经允许了22端口,建议保留该规则直到确认新端口连接正常后再删除,以防万一。
第四步:重启SSH服务
配置更改后,必须重启SSH服务才能生效。
sudo systemctl restart sshd
第五步:验证新连接
切勿关闭当前的SSH会话窗口! 打开一个新的终端窗口,尝试使用新端口连接服务器:
ssh -p 2222 username@your_server_ip
如果连接成功,说明配置无误,你可以安全地关闭旧会话,并删除防火墙中旧的22端口规则(如果不再需要):
sudo ufw delete allow 22/tcp
常见误区与注意事项
在实施端口修改过程中,许多用户会遇到各种意外情况,了解这些陷阱有助于避免服务中断。
云服务商安全组配置
对于使用阿里云、腾讯云、AWS等云服务器的用户,仅修改系统内部防火墙是不够的,云提供商通常提供一层额外的“安全组”或“网络ACL”控制。
你需要登录云控制台,找到实例的安全组设置,手动添加一条入站规则,允许TCP协议的新端口通过,否则,即使系统内部配置正确,外部流量依然无法到达服务器。
端口范围的选择策略
虽然理论上任何未占用端口均可使用,但业内共识认为,选择高位端口(如10000以上)能更好地避开系统保留端口和常见服务冲突,避免使用1-1024之间的端口,因为这些端口通常保留给特权服务,修改它们可能需要更复杂的权限管理。

客户端连接工具的适配
大多数SSH客户端(如PuTTY、Xshell、FinalShell)都支持指定端口,在保存连接配置时,务必将端口字段从默认的22改为你设置的新端口,如果使用命令行,务必加上-p参数。
Ubuntu服务器更改远程端口号相关疑问解答
修改SSH端口后,原有的密钥认证是否失效?
SSH密钥认证机制与端口号无关,密钥验证发生在SSH协议建立连接之后的身份验证阶段,而端口只是传输层的通道,只要你能通过新端口成功建立TCP连接,之前配置的公钥/私钥对依然有效,无需重新生成或分发密钥。
更改端口会影响服务器性能吗?
从技术角度看,更改端口对服务器性能的影响微乎其微,SSH协议本身是加密的,其计算开销主要来自于加密和解密过程,而非端口号的解析,由于非标准端口能显著减少恶意扫描和暴力破解尝试,服务器因此节省了大量的CPU周期用于处理无效登录请求,间接提升了整体安全性和响应效率。
如果忘记新端口号怎么办?
如果你忘记了修改后的端口号,且无法通过SSH登录,可以通过云服务商提供的“VNC控制台”或“串口控制台”进行救援,这些控制台直接连接到服务器的图形界面或命令行终端,不依赖网络端口,登录控制台后,你可以查看/etc/ssh/sshd_config文件确认端口号,或者临时将端口改回22以便恢复远程访问。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/411015.html
