当前位置:首页 > Linux > 正文

Linux如何开启22端口

开启Linux的22端口需执行:安装SSH服务(如OpenSSH-server),配置防火墙允许TCP 22端口(使用firewalld或ufw),启动SSH服务并设置开机自启。

检查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           # 本地测试连接

安全加固建议

  1. 修改默认端口(可选)
    编辑SSH配置文件:

    sudo nano /etc/ssh/sshd_config

    修改Port 22为其他端口(如Port 2222),重启服务:

    Linux如何开启22端口  第1张

    sudo systemctl restart sshd

    同时更新防火墙规则(如sudo ufw allow 2222/tcp)。

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

    PasswordAuthentication no
    PubkeyAuthentication yes
  3. 限制访问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 disablesudo systemctl stop firewalld)。
  • 端口冲突:确认无其他进程占用22端口(sudo lsof -i :22)。

打开22端口的核心步骤为:安装SSH服务 → 启动服务 → 配置防火墙,完成操作后,即可通过ssh username@服务器IP远程连接。务必遵循安全建议,避免暴露未加固的端口到公网。

引用说明基于Linux官方文档(OpenSSH)及主流发行版防火墙指南(UFW、Firewalld),操作需Root权限,请谨慎修改配置。

0