在Linux系统上配置远程访问,最常见且安全的方式是使用SSH协议。通过开启SSH服务端、调整防火墙规则以及必要时配置端口转发,就可以从任意网络位置登录并管理你的Linux主机。

一、安装并开启SSH服务
大多数Linux发行版使用OpenSSH作为SSH服务端。如果系统未安装,可通过包管理器安装。
Ubuntu或Debian
# 更新软件包索引并安装openssh-server sudo apt update sudo apt install openssh-server -y # 启动ssh服务并设置开机自启 sudo systemctl start ssh sudo systemctl enable ssh # 查看ssh服务状态 sudo systemctl status ssh
CentOS或Rocky Linux
# 安装openssh-server sudo yum install openssh-server -y # 启动并设置开机自启 sudo systemctl start sshd sudo systemctl enable sshd # 检查监听端口 ss -tlnp | grep sshd
二、配置防火墙放行SSH端口
SSH默认使用22端口。若系统启用了防火墙,必须允许该端口的入站连接,否则远程无法访问。
使用UFW防火墙(Ubuntu常见)
# 允许ssh服务通过防火墙 sudo ufw allow ssh # 或者明确允许22端口 sudo ufw allow 22/tcp sudo ufw reload
使用firewalld(CentOS常见)
# 永久放行ssh服务 sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
三、修改SSH默认端口(可选)
为了提高安全性,可以将SSH监听端口从22改为其他端口,比如2222。修改前请确认新端口已在防火墙放行。
# 编辑ssh配置文件 sudo vim /etc/ssh/sshd_config # 找到 #Port 22,修改为 Port 2222 # 保存后重启ssh服务 sudo systemctl restart ssh
四、在内网环境中配置端口转发
当Linux主机位于内网,外网无法直接访问时,需要在路由器上设置端口转发,将公网IP的某端口映射到内网主机的SSH端口。
| 外部端口 | 内部IP | 内部端口 |
|---|---|---|
| 2222 | 192.168.0.1 | 22 |
配置完成后,在外部网络使用以下命令连接:
# 假设公网地址为1.2.3.4,端口2222 ssh -p 2222 user@1.2.3.4
五、常见问题排查
- 连接超时:检查防火墙、端口转发以及SSH服务是否运行。
- 权限拒绝:确认用户名和密码正确,或密钥文件权限为600。
- 若使用密钥登录,需将公钥写入
~/.ssh/authorized_keys文件。
注意:远程访问涉及系统安全,建议禁用密码登录、仅使用SSH密钥认证,并定期检查登录日志。
六、简单的SSH密钥登录配置
在本地机器生成密钥对,并将公钥复制到Linux主机,可提升安全性。
# 本地生成密钥(如已存在可跳过) ssh-keygen -t rsa -b 4096 # 复制公钥到远程主机 ssh-copy-id user@192.168.0.1 # 测试无密码登录 ssh user@192.168.0.1
通过以上步骤,你就能在Linux上完成基础的远程访问配置,并可根据实际网络环境灵活调整。