温馨提示×

Linux虚拟机远程访问如何设置

小樊
46
2025-10-26 16:01:36
栏目: 云计算

Linux虚拟机远程访问设置指南

远程访问Linux虚拟机主要通过SSH(命令行)VNC(图形桌面)、**XRDP(Windows远程桌面兼容)**三种方式实现,以下是详细步骤:

一、基础准备:虚拟机网络设置

远程访问的前提是虚拟机与宿主机处于同一网络环境。以VMware为例,需将虚拟机网络适配器设置为NAT模式(共享宿主机IP)或桥接模式(直接接入局域网),确保虚拟机可被宿主机访问。设置后,需开启虚拟机内的VMware Network Adapter VMnet8(NAT模式对应网卡)。

二、SSH远程命令行访问(最常用)

SSH是Linux远程管理的标准协议,提供加密通信,适用于命令行操作。

1. 安装SSH服务
  • Ubuntu/Debian
    sudo apt update && sudo apt install openssh-server -y
    
  • CentOS/RHEL
    sudo yum install openssh-server -y
    
2. 启动SSH服务并设置开机自启
# 启动SSH服务
sudo systemctl start ssh
# 设置开机自启
sudo systemctl enable ssh
# 检查服务状态(确保为“active (running)”)
sudo systemctl status ssh
3. 配置SSH(可选但建议)

编辑配置文件/etc/ssh/sshd_config,提升安全性:

sudo nano /etc/ssh/sshd_config
  • 禁止root密码登录(推荐):
    找到#PermitRootLogin prohibit-password,修改为:
    PermitRootLogin no
    PasswordAuthentication no
    
  • 修改默认端口(可选,避免暴力破解):
    找到#Port 22,修改为:
    Port 2222  # 自定义端口(需记住)
    

保存后重启SSH服务:

sudo systemctl restart ssh
4. 获取虚拟机IP地址

在虚拟机终端运行以下命令,获取IPv4地址:

ip addr show  # Ubuntu/Debian
# 或
ip a          # 新版本Ubuntu

输出中查找inet字段(如192.168.1.100),即为虚拟机IP。

5. 远程连接
  • Windows:使用PuTTY、XShell等工具,输入虚拟机IP和端口(默认22),点击“Open”;首次连接需确认指纹,输入用户名和密码登录。
  • Linux/macOS:终端直接运行:
    ssh username@虚拟机IP -p 端口号  # 如ssh user@192.168.1.100 -p 22
    
6. 公钥免密登录(进阶)
  • 生成密钥对(本地机器):
    ssh-keygen -t rsa -b 2048  # 按回车使用默认路径
    
  • 上传公钥到虚拟机
    ssh-copy-id username@虚拟机IP -p 端口号
    
  • 测试免密登录
    再次运行ssh命令,无需输入密码即可登录。

三、VNC图形桌面远程访问

若需要图形化操作(如桌面环境),可使用VNC协议。

1. 安装VNC服务器
  • Ubuntu/Debian
    sudo apt install tigervnc-standalone-server -y
    
  • CentOS/RHEL
    sudo yum install tigervnc-server -y
    
2. 配置VNC密码

运行以下命令设置登录密码(最多8位):

vncserver

首次运行会提示设置密码,后续可修改密码:

vncpasswd
3. 配置VNC服务(自动启动)

编辑用户级配置文件~/.vnc/xstartup,添加桌面环境启动命令(以GNOME为例):

nano ~/.vnc/xstartup

内容如下:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /etc/X11/xinit/xinitrc

保存后赋予执行权限:

chmod +x ~/.vnc/xstartup

创建systemd服务文件/etc/systemd/system/vncserver@:1.service:1表示端口5901):

sudo nano /etc/systemd/system/vncserver@:1.service

内容如下(替换your_username):

[Unit]
Description=Start VNC server at startup
After=syslog.target network.target

[Service]
Type=simple
User=your_username
ExecStart=/usr/bin/vncserver :1
ExecStop=/usr/bin/vncserver -kill :1
Restart=on-failure

[Install]
WantedBy=multi-user.target

保存后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service
sudo systemctl start vncserver@:1.service
4. 远程连接

在宿主机安装VNC客户端(如RealVNC、TigerVNC),输入虚拟机IP和端口5901:1对应5901),点击“Connect”,输入VNC密码即可登录图形桌面。

四、XRDP远程桌面(兼容Windows远程桌面)

若习惯使用Windows远程桌面(mstsc),可安装XRDP服务。

1. 安装XRDP
  • Ubuntu/Debian
    sudo apt install xrdp -y
    
  • CentOS/RHEL
    sudo yum install xrdp -y
    
2. 启动XRDP服务
sudo systemctl start xrdp
sudo systemctl enable xrdp
3. 配置防火墙

允许XRDP端口(默认3389):

sudo ufw allow 3389/tcp  # Ubuntu/Debian
# 或
sudo firewall-cmd --add-port=3389/tcp --permanent  # CentOS/RHEL
sudo firewall-cmd --reload
4. 远程连接

在宿主机使用Windows远程桌面(mstsc),输入虚拟机IP,点击“Connect”,输入用户名和密码即可登录。

五、常见问题排查

  • 无法连接:检查虚拟机IP是否正确、网络是否互通(ping 虚拟机IP)、SSH/VNC/XRDP服务是否启动(systemctl status)。
  • 端口冲突:若SSH默认端口22被占用,可修改/etc/ssh/sshd_config中的Port字段为其他端口(如2222),并重启服务。
  • 防火墙拦截:确保虚拟机防火墙(如ufwfirewalld)允许对应端口(SSH:22、VNC:5901、XRDP:3389)。

以上步骤覆盖了Linux虚拟机远程访问的主要方式,可根据需求选择合适的方法。SSH适合命令行管理,VNC/XRDP适合图形化操作,其中SSH因安全性高是最推荐的远程管理方式。

0