上一篇
linux系统如何开启远程
- Linux
- 2025-07-23
- 4
通过SSH服务(安装、启动并设置自启,开放防火墙端口)实现Linux远程访问
在Linux系统中开启远程访问功能,主要通过SSH、VNC或RDP等协议实现,以下是三种主流方法的详细配置步骤及注意事项:
SSH远程登录(命令行模式)
步骤 | 命令与操作 | 适用系统 | 注意事项 |
---|---|---|---|
安装SSH服务 | sudo apt-get update && sudo apt-get install openssh-server (Debian/Ubuntu)sudo yum install openssh-server (CentOS/RHEL) |
Debian/Ubuntu/CentOS | 多数Linux发行版预装SSH客户端,但需手动安装服务器端。 |
启动并启用服务 | sudo systemctl start ssh sudo systemctl enable ssh |
所有系统 | 确保服务开机自启,避免重启后失效。 |
配置防火墙 | sudo ufw allow 22 (Ubuntu)sudo firewall-cmd --permansist add-port=22/tcp (CentOS) |
启用防火墙的系统 | 若防火墙未配置,可能导致远程连接被阻断。 |
SELinux配置 | sudo setsebool -P ssh_sysadm_login 1 (允许root通过SSH登录) |
CentOS/RHEL | 仅CentOS/RHEL需处理SELinux策略,避免权限不足。 |
连接测试 | 客户端使用ssh username@ip ,建议使用密钥认证替代密码 |
所有系统 | 推荐禁用root直接登录(修改/etc/ssh/sshd_config 中的PermitRootLogin 为no )以提升安全性。 |
VNC远程桌面(图形界面)
步骤 | 命令与操作 | 适用系统 | 注意事项 |
---|---|---|---|
安装VNC服务器 | sudo apt-get install tightvncserver (Ubuntu)sudo yum install tigervnc-server (CentOS) |
Debian/Ubuntu/CentOS | 不同发行版依赖的VNC软件包名称可能不同。 |
启动VNC会话 | vncserver :1 (创建桌面1)首次启动需设置密码 |
所有系统 | :1 表示显示编号为1的桌面,对应端口5901;:2 对应5902,依此类推。 |
配置防火墙 | sudo ufw allow 5901 (Ubuntu)sudo firewall-cmd --permansist add-port=5901/tcp (CentOS) |
启用防火墙的系统 | VNC默认端口为5900+显示编号(如5901),需开放对应端口。 |
客户端连接 | 下载VNC客户端(如RealVNC、TigerVNC)输入ip:1 (如192.168.1.100:1) |
所有系统 | 若需浏览器访问,可使用vnc.html 文件配合虎椒浏览器,但需手动配置HTML文件。 |
RDP远程桌面(Windows兼容)
步骤 | 命令与操作 | 适用系统 | 注意事项 |
---|---|---|---|
安装RDP组件 | sudo apt-get install xrdp (Ubuntu)sudo yum install epel-release && sudo yum install xrdp (CentOS) |
Debian/Ubuntu/CentOS | CentOS需启用EPEL源。 |
配置Xorg-Xrdp | 编辑/etc/xrdp/xorgxrdp.conf ,修改exec 行为/usr/bin/xorgxrdp -nolisten tcp |
所有系统 | 确保Xorg-Xrdp支持多用户登录,避免会话冲突。 |
启动并启用服务 | sudo systemctl start xrdp sudo systemctl enable xrdp |
所有系统 | 部分系统需额外安装xorgxrdp (如Ubuntu)。 |
配置防火墙 | sudo ufw allow 3389 (Ubuntu)sudo firewall-cmd --permansist add-port=3389/tcp (CentOS) |
启用防火墙的系统 | RDP默认端口为3389,需开放防火墙规则。 |
连接测试 | Windows客户端使用“远程桌面连接”输入Linux IP,或用RDP客户端(如Remmina) | 所有系统 | 首次连接可能提示证书错误,需在RDP客户端中忽略验证。 |
方法对比与选择建议
特性 | SSH(命令行) | VNC(图形界面) | RDP(图形界面) |
---|---|---|---|
协议类型 | 文本传输 | 图形界面转发 | Windows兼容远程桌面 |
默认端口 | 22 | 5900+显示编号 | 3389 |
安全性 | 高(加密传输) | 中(可配置SSL/TLS) | 中(依赖RDP加密) |
适用场景 | 服务器管理、脚本执行 | 跨平台图形操作 | Windows环境兼容 |
性能开销 | 低 | 较高(依赖图形渲染) | 中等 |
FAQs
如何更改SSH默认端口以提高安全性?
修改/etc/ssh/sshd_config
文件中的Port
参数(如改为2222),重启SSH服务后,防火墙需同步开放新端口。
如何限制VNC仅允许特定IP访问?
在vncserver
命令中添加-localhost no
参数允许外部连接,或通过防火墙规则(如`ufw allow from 192.168.1.100 to any port 590