各个版本的Linux系统如何修改远程端口ssh端口?

服务器安全一直是Linux运维和站长关注的重点。而SSH服务作为远程管理和文件传输的核心入口,默认端口(22)常常成为黑客暴力破解、扫描入侵的"重点目标"。因此,修改SSH端口不仅有助于减少被扫描爆破的概率,也是企业与个人服务器安全加固的基础操作。许多初学者和一线运维常因系统版本不同、服务管理工具有差异,不知道如何正确、全面、安全地修改SSH远程端口。为此,本文将结合CentOS(含AlmaLinux/RockyLinux)、Ubuntu、Debian等主流Linux发行版,讲解变更SSH端口的详细流程、常见问题、风险规避与实战运维经验,帮助大家高效安全地完成端口"搬家"。

一、为什么要修改Linux SSH默认端口?

  • 降低暴力破解风险:22端口是全世界最容易被自动扫描和爆破的端口,换用非默认端口可显著减少扫描和自动化攻击。
  • 增加安全"深度":虽然不是根本安全措施,但"安全加固"的第一步,最好从改端口做起,再配合防火墙和认证加密措施。
  • 应对云服务商安全组的合规要求:如阿里云、腾讯云、AWS等会提示默认22端口的安全风险。
  • 方便运维管理:部分企业跨主机、内外网划分端口,能更精准区分不同用户和用途。

注意:端口号建议选1024-65535间不常用端口,且避免与其他服务冲突。

二、SSH端口修改的原理与风险提醒

修改SSH端口的本质是变更sshd服务监听的TCP端口,配置文件统一位于/etc/ssh/sshd_config。注意,不同Linux发行版服务管理工具和防火墙默认规则会有差异。必须同步完成:

  • 配置文件修改
  • 防火墙端口放行
  • SELinux/安全组设置(如有)
  • 服务重启与自测

**最大风险提醒:**切勿直接关闭自己唯一的SSH管理窗口,建议操作前"新建第二个SSH窗口"完成测试,确保不会因配置失误导致服务器"锁门"。

三、CentOS(AlmaLinux/RockyLinux)修改SSH端口完整流程

1. 修改sshd_config配置文件

  • 推荐以rootsudo权限操作。
  • 配置文件路径:/etc/ssh/sshd_config

命令示例:

复制代码
vi /etc/ssh/sshd_config
  

找到如下行(可能被注释,默认#Port 22), 去掉#号并将端口号改为你想要的端口(如20660):

复制代码
Port 20660
  

友情提示:可以同时写多行Port保证主备端口(如Port 22和Port 2222同时可用),调试无误后再删除旧端口。

2. 放行新SSH端口(firewalld/IPtables)

firewalld(CentOS 7/8/AlmaLinux/Rocky常见):

复制代码
firewall-cmd --zone=public --add-port=20660/tcp --permanent
firewall-cmd --reload
  

IPtables(CentOS 6或特殊场景):

复制代码
iptables -A INPUT -p tcp --dport 20660 -j ACCEPT
service iptables save
service iptables restart
  

云主机还需在控制台安全组添加此端口。

3. 检查SELinux策略(如启用)

  • SELinux严格场景需允许新端口:
复制代码
semanage port -a -t ssh_port_t -p tcp 20660
  

如果semanage未安装,可执行 yum install policycoreutils-python (CentOS 7) 或 yum install policycoreutils-python-utils (CentOS 8)

4. 重启SSH服务并验证新端口

复制代码
systemctl restart sshd        # CentOS 7/8/AlmaLinux/Rocky
service sshd restart          # CentOS 6
  

使用新端口测试远程连接,命令为:

复制代码
ssh -p 20660 user@服务器IP
    
  • 不要立刻断开当前SSH会话,务必等测试成功再退出。

四、Ubuntu/Debian 修改SSH端口操作详解

1. 编辑配置文件

sshd_config路径相同:

复制代码
sudo vim /etc/ssh/sshd_config
  

找到Port,取消注释并设置新端口(如22888)。

2. 放行防火墙端口(ufw/IPtables)

如启用ufw:

复制代码
sudo ufw allow 22888/tcp
sudo ufw reload
  

使用iptables:

复制代码
sudo iptables -A INPUT -p tcp --dport 22888 -j ACCEPT
sudo service iptables save
sudo service iptables restart
  

阿里云、腾讯云等同样请配置安全组。

3. 重启ssh服务并联机测试

复制代码
sudo systemctl restart ssh
  

ssh -p 22888 user@服务器IP 测试远程登录。务必另开窗口尝试。

五、其他特殊Linux(如SUSE、Fedora、Arch)操作方法

SUSE: 同样编辑/etc/ssh/sshd_config,重启服务命令为:

复制代码
systemctl restart sshd
  

Fedora: 配置、命令结构同AlmaLinux/CentOS Stream。

Arch Linux: 配置文件还是/etc/ssh/sshd_config,服务管理为 systemctl restart sshd

六、常见问题与安全实务建议

1. 防火墙未放行导致自锁门

80%以上的SSH更改失败案例是因防火墙/安全组忘记同步开放新端口,导致远程连接不上,尤其云主机更为常见。建议严格按照"先开放端口、再重启服务、后测试连接、最后关闭旧端口"流程逐步进行。

2. SELinux导致端口被拒绝

排查/var/log/audit/audit.log有无AVC denied日志,遇到SELinux阻断需用semanage添加新端口。

3. 实例,支持多端口监听

sshd_config允许配置多行Port,同时监听多个端口,适合演练期间主备保底,但长期还是建议只保留一个安全端口。

4. 选取哪个端口最合适?

任意1024-65535段均可,但应避开常用服务端口(如80、443、3306、6379、8080等),推荐如22330、10660、28888等随机高位端口。

5. 客户端如何连接新端口?

指定端口用-p参数,如ssh -p 22233 root@ip,WinSCP、Xshell等也有端口自定义入口。团队多台机器可编辑~/.ssh/config批量优化体验。

七、进阶安全加固建议

  • 建议同时启用"私钥登录",禁用密码认证(PasswordAuthentication no)。
  • 可加装fail2ban等暴力破解检测程序,自动封锁失败IP。
  • 根据实际业务,限制SSH来源IP范围,物理机还可用硬件防火墙。
  • 务必规范运维权限分级,加强管理账号口令复杂度。
  • 日常巡检ssh和安全相关系统日志,早发现早处理。

总结

Linux系统SSH端口修改,是提升服务器安全和运维规范化建设的关键一环。无论是CentOS、AlmaLinux、RockyLinux,还是Ubuntu、Debian、SUSE、Fedora、Arch等主流或特殊发行版,统一原理都是修改/etc/ssh/sshd_config里的Port参数,并同步完成防火墙、安全组、SELinux规则调整与测试。运维新手须特别注意操作流程和多窗口自测,避免误操作导致"锁门"。配合非对称秘钥、来源限制、fail2ban等深度安全措施,能有效打造更安全、专业的网上运维环境,极大降低服务器被攻陷和数据泄露的风险。牢记规范、安全与审慎并重,才能让每一次改端口的操作都成为服务器稳定可靠的保障。

相关推荐
小程序设计1 小时前
Wi-Fi网络监控及无线终端定位系统的研究
网络·安全
T1mzhou2 小时前
ARM64 Linux 6.10 内核驱动(12):dd.c:probe/ remove、延迟 probe
linux·服务器·c语言·arm开发·arm
Mr小林3 小时前
Docker 安装教程(在线 + 离线)
运维·docker·容器
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之RBAC与角色分层实践
java·网络·spring
Sophnet云平台4 小时前
2026:AI Agent应用元年,企业从试点到核心业务的跨越逻辑
网络·人工智能·llm·openai·agent
咏颜4 小时前
frp内网穿透使用
网络·p2p
JudithHuang4 小时前
把本地服务暴露到公网
运维
爱学习的程序媛4 小时前
ICMP协议详解
网络·网络协议·网络安全·通信协议·icmp·网络运维
yt004yt5 小时前
### 越华环保集团|绿岛 VOCs 集中治理,管网系统安全设计工程实战分享
大数据·运维