服务器开启 22 端口详细指南
开启 22 端口(默认 SSH 端口)通常需要经过三个层面的配置:云平台安全组、操作系统防火墙以及 SSH 服务本身,如果其中任何一层被拦截,你都无法通过 SSH 远程连接服务器。
第一步:配置云平台安全组(外部防火墙)
如果你使用的是简米云、酷番云、AWS 或华为云等云服务器,首先需要在云管理控制台中开放端口。
- 登录控制台:进入云服务器管理页面。
- 找到安全组/防火墙设置:在实例详情页找到“安全组”或“防火墙”选项。
- 添加入方向规则:
- 协议:选择 TCP。
- 端口范围:填写 22。
- 授权对象/源地址:为了安全,建议填写你的本地公网 IP;如果需要从任何地方访问,填写 0.0.0/0。
- 策略
:选择 允许。
- 保存配置:点击保存,规则会立即生效。
第二步:配置操作系统防火墙(内部防火墙)
即使安全组开启了,如果服务器内部的防火墙没放行,依然无法连接,根据你的操作系统选择对应命令:
Ubuntu / Debian (使用 ufw)
- 检查状态:
sudo ufw status - 开启 22 端口:
sudo ufw allow 22/tcp - 重新加载配置:
sudo ufw reload
CentOS / RHEL / Fedora (使用 firewalld)
- 永久开启 22 端口:
sudo firewall-cmd --permanent --add-port=22/tcp - 重新加载配置:
sudo firewall-cmd --reload - 验证是否开启:
sudo firewall-cmd --list-ports
通用 Linux (使用 iptables)
- 添加规则:
sudo iptables -I INPUT -p tcp --dport 22 -j ACCEPT -
保存规则(CentOS):
sudo service iptables save
第三步:检查 SSH 服务状态
确保服务器上已经安装并运行了 SSH 服务(sshd)。
- 检查服务是否运行:
systemctl status ssh(Ubuntu/Debian)systemctl status sshd(CentOS/RHEL)
- 如果服务未启动,请执行启动命令:
sudo systemctl start ssh或sudo systemctl start sshd
- 设置开机自启:
sudo systemctl enable ssh或sudo systemctl enable sshd
- 检查配置文件:
- 编辑
/etc/ssh/sshd_config,确保没有Port行被修改为其他端口,或者确认Port 22未被注释。 - 修改后需重启服务:
sudo systemctl restart ssh。
- 编辑
第四步:验证端口是否成功开启
你可以通过以下两种方式验证 22 端口是否真正可用:
- 在服务器内部检查:
- 执行
netstat -tunlp | grep 22或ss -tunlp | grep 22。 - 如果看到
LISTEN状态,说明服务正在监听 22 端口。
- 执行
- 在本地电脑检查:
- 使用 Telnet 命令:
telnet 服务器IP 22 - 使用 SSH 命令:
ssh 用户名@服务器IP - 如果屏幕出现 SSH 版本号或要求输入密码,说明端口已成功开启。
- 使用 Telnet 命令:
⚠️ 安全建议
- 修改默认端口:由于 22 端口是默认端口,极易受到暴力破解攻击,建议在
/etc/ssh/sshd_config中将端口改为 10000-65535 之间的随机端口。 - 禁用密码登录:建议使用 SSH 密钥对 登录,并在配置中设置
PasswordAuthentication no。 - 限制访问 IP:在安全组中仅允许特定的办公 IP 或家庭 IP 访问 22 端口。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/492650.html



