插件窝 干货文章 各个Linux系统如何修改远程端口ssh端口?

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

端口 sudo 步骤 2222    来源:    2025-05-11

在 Linux 系统中修改 SSH 服务的默认端口(22)可以增强安全性。以下是详细步骤和注意事项,适用于主流发行版(CentOS/RHEL、Ubuntu/Debian 等):


步骤 1:选择新端口号

  • 选择一个 1024-65535 之间未被其他服务占用的端口(避免常见端口如 3306、8080)。
  • 示例:改用 2222 端口。

步骤 2:修改 SSH 配置文件

  1. 使用 root 或 sudo 权限编辑配置文件:

    sudo vim /etc/ssh/sshd_config
    
  2. 找到 #Port 22 这一行(可能被注释),取消注释并修改为新端口:

    Port 2222
    
  3. (可选)限制监听 IP(如内网):

    ListenAddress 192.168.1.100
    

步骤 3:更新防火墙规则

1. 如果使用 firewalld(CentOS/RHEL)

bash sudo firewall-cmd --permanent --add-port=2222/tcp sudo firewall-cmd --reload

2. 如果使用 ufw(Ubuntu/Debian)

bash sudo ufw allow 2222/tcp sudo ufw reload

3. 直接操作 iptables(传统方法)

bash sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT sudo service iptables save # 保存规则(根据发行版可能不同)


步骤 4:重启 SSH 服务

sudo systemctl restart sshd   # 大多数现代系统
# 或
sudo service ssh restart     # 旧版系统

步骤 5:测试新端口

  1. 保持当前连接,新开终端测试:
    bash ssh -p 2222 username@server_ip
  2. 确认成功后,再关闭旧端口或退出当前会话。

步骤 6:禁用旧端口(可选)

  1. 编辑 sshd_config,确保仅保留新端口:
    ini Port 2222
  2. 从防火墙移除旧端口:
    bash sudo firewall-cmd --permanent --remove-port=22/tcp sudo firewall-cmd --reload

注意事项

  1. SELinux 问题(CentOS/RHEL)
    如果启用 SELinux,需更新策略:

    sudo semanage port -a -t ssh_port_t -p tcp 2222
    
  2. 多端口监听
    若需同时监听多个端口,在 sshd_config 中添加多行 Port:

    Port 22
    Port 2222
    
  3. 云服务器安全组
    在 AWS/Azure/GCP 等平台,需在控制台开放新端口。

  4. 备份配置
    修改前建议备份:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    

故障排查

  • 连接失败:检查防火墙、SELinux、网络 ACL 或云安全组规则。
  • 服务无法启动:通过 journalctl -u sshd 查看日志。
  • 端口冲突:使用 netstat -tuln | grep 2222 或 ss -tuln 检查占用。

通过以上步骤,您已成功修改 SSH 端口并降低自动化攻击风险。建议同时启用密钥认证和 Fail2Ban 进一步加固安全。