Linux如何开启22端口
- Linux
- 2025-06-14
- 7
检查22端口状态
在操作前,确认当前端口状态:
sudo ss -tuln | grep ':22'
- 若输出包含LISTEN,表示端口已开放;若无输出或显示UNCONN,则需配置。
安装SSH服务
Ubuntu/Debian系统
sudo apt update && sudo apt install openssh-server -y
CentOS/RHEL系统
sudo yum install openssh-server -y
启动SSH服务
sudo systemctl start sshd # 立即启动 sudo systemctl enable sshd # 开机自启
配置防火墙开放22端口
使用ufw(Ubuntu/Debian推荐)
sudo ufw allow 22/tcp # 允许TCP流量 sudo ufw reload # 重载规则
使用firewalld(CentOS/RHEL推荐)
sudo firewall-cmd --permanent --add-port=22/tcp # 永久添加规则 sudo firewall-cmd --reload # 重载防火墙
使用iptables(通用方法)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 临时允许 sudo iptables-save > /etc/iptables/rules.v4 # 永久保存(路径因系统而异)
验证端口是否开放
sudo systemctl status sshd # 检查SSH服务状态 sudo ss -tuln | grep ':22' # 确认端口监听 telnet 127.0.0.1 22 # 本地测试连接
安全加固建议
-
修改默认端口(可选)
编辑SSH配置文件:

修改Port 22为其他端口(如Port 2222),重启服务:
同时更新防火墙规则(如sudo ufw allow 2222/tcp)。

-
禁用密码登录(推荐密钥认证)
在sshd_config中设置:

-
限制访问IP
通过防火墙仅允许特定IP:
sudo ufw allow from 192.168.1.100 to any port 22 # Ubuntu sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port port=22 protocol=tcp accept' # CentOS - 连接被拒绝:检查SSH服务是否运行(systemctl status sshd)。
- 防火墙阻塞:临时关闭防火墙测试(sudo ufw disable 或 sudo systemctl stop firewalld)。
- 端口冲突:确认无其他进程占用22端口(sudo lsof -i :22)。
故障排除
打开22端口的核心步骤为:安装SSH服务 → 启动服务 → 配置防火墙,完成操作后,即可通过ssh username@服务器IP远程连接。务必遵循安全建议,避免暴露未加固的端口到公网。
引用说明基于Linux官方文档(OpenSSH)及主流发行版防火墙指南(UFW、Firewalld),操作需Root权限,请谨慎修改配置。