如何在Linux虚拟机中进行远程桌面连接
导读:在 Linux 虚拟机中进行远程桌面连接的实用指南 一、方案总览与选择 SSH(命令行):最安全、轻量,适合日常运维与文件传输。默认端口 22。 RDP(xrdp):图形化远程桌面,体验接近 Windows 远程桌面,默认端口 3389,...
在 Linux 虚拟机中进行远程桌面连接的实用指南
一、方案总览与选择
- SSH(命令行):最安全、轻量,适合日常运维与文件传输。默认端口 22。
- RDP(xrdp):图形化远程桌面,体验接近 Windows 远程桌面,默认端口 3389,适合需要完整桌面环境的场景。
- VNC:跨平台图形桌面,配置灵活,默认端口通常为 5901+(:1 对应 5901)。
- 浏览器访问(Apache Guacamole):通过 HTTP/HTTPS 访问,多协议网关,适合统一门户与瘦客户端。
选择建议:优先用 SSH 做运维;需要 GUI 时优先 RDP(更顺滑),或选 VNC;若要走浏览器,部署 Guacamole。
二、网络与防火墙前置
- 网络模式:
- 桥接(Bridged):虚拟机与宿主机处于同一网段,便于从局域网其他设备直连。
- NAT:默认外部不可直达,需在虚拟化软件中配置端口转发(如将宿主机 3389 转发到虚拟机 3389)。
- 防火墙放行(示例):
- UFW(Debian/Ubuntu):
sudo ufw allow 22,3389/tcp - firewalld(RHEL/CentOS/Fedora):
sudo firewall-cmd --permanent --add-service=ssh --add-service=vnc-server & & sudo firewall-cmd --reload
- UFW(Debian/Ubuntu):
- 获取虚拟机 IP:在虚拟机内执行
ip a或ifconfig查看 inet 地址。
以上确保目标端口对客户端可达,是连接成功的前提。
三、方法一 使用 RDP(xrdp)获得图形桌面
- 安装与启动(Debian/Ubuntu 示例):
sudo apt update & & sudo apt install -y xrdpsudo systemctl enable --now xrdp- 若使用 Ubuntu 20.04+,将 xrdp 加入 ssl-cert 组:
sudo adduser xrdp ssl-cert
- 选择桌面环境(常见为 Xfce,轻量稳定):
sudo apt install -y xfce4 xfce4-session- 指定会话:
echo xfce4-session > ~/.xsession - 重启服务:
sudo systemctl restart xrdp
- 客户端连接:
- Windows:打开“远程桌面连接”,地址填 虚拟机IP:3389
- macOS/Linux:使用 Remmina 或
xfreerdp /v:IP /u:用户名 /p:密码
- 常见问题:登录后黑屏或菜单缺失,多为桌面会话未正确指定或未安装桌面环境,按上步设置 ~/.xsession 并安装 Xfce 后重启 xrdp。
四、方法二 使用 VNC 进行图形桌面
- 安装与首次启动:
- Debian/Ubuntu:
sudo apt install -y tightvncserver - RHEL/CentOS/Fedora:
sudo yum install -y tigervnc-server(或sudo dnf install tigervnc-server) - 首次运行:
vncserver :1并设置 VNC 专用密码(与系统密码不同)。
- Debian/Ubuntu:
- 配置桌面会话(以 Xfce 为例):
- 编辑
~/.vnc/xstartup:#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec startxfce4 & - 赋权:
chmod +x ~/.vnc/xstartup - 重启会话:
vncserver -kill :1 & & vncserver :1
- 编辑
- 系统服务方式(推荐,便于开机自启,示例以 :1 为例):
- 复制服务模板并替换用户后启用(以 root 操作):
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.servicesudo sed -i 's/< USER> /你的用户名/g' /etc/systemd/system/vncserver@:1.servicesudo systemctl daemon-reload & & sudo systemctl enable --now vncserver@:1.service
- 复制服务模板并替换用户后启用(以 root 操作):
- 客户端连接:地址填 IP:1(端口 5901),输入 VNC 密码。
- 提示:VNC 端口为 5900 + 显示号(:1→5901,:2→5902)。
五、方法三 使用 SSH(命令行)与进阶方案
- 安装与启动:
- Debian/Ubuntu:
sudo apt install -y openssh-server & & sudo systemctl enable --now ssh - RHEL/CentOS/Fedora:
sudo yum/dnf install -y openssh-server & & sudo systemctl enable --now sshd
- Debian/Ubuntu:
- 连接与密钥登录:
- 连接:
ssh 用户名@虚拟机IP -p 22 - 密钥登录:
ssh-keygen -t rsa -b 2048生成密钥;ssh-copy-id 用户名@虚拟机IP分发公钥,随后免密登录。
- 连接:
- 图形应用转发(无需完整桌面):
- 在本地开启 X11 转发(如 MobaXterm/Xshell + Xmanager 或 Linux/macOS 的
ssh -X/-Y),在远端执行xclock、gnome-terminal等即可在本机弹窗显示。
- 在本地开启 X11 转发(如 MobaXterm/Xshell + Xmanager 或 Linux/macOS 的
- 浏览器访问方案:部署 Apache Guacamole(支持 RDP/VNC/SSH 等),通过 http://服务器IP:8080/guacamole 登录管理界面并添加连接,适合统一访问入口与零客户端场景。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Linux虚拟机中进行远程桌面连接
本文地址: https://pptw.com/jishu/779509.html
