远程访问Linux虚拟机主要通过SSH(命令行)、VNC(图形桌面)、**XRDP(Windows远程桌面兼容)**三种方式实现,以下是详细步骤:
远程访问的前提是虚拟机与宿主机处于同一网络环境。以VMware为例,需将虚拟机网络适配器设置为NAT模式(共享宿主机IP)或桥接模式(直接接入局域网),确保虚拟机可被宿主机访问。设置后,需开启虚拟机内的VMware Network Adapter VMnet8(NAT模式对应网卡)。
SSH是Linux远程管理的标准协议,提供加密通信,适用于命令行操作。
sudo apt update && sudo apt install openssh-server -y
sudo yum install openssh-server -y
# 启动SSH服务
sudo systemctl start ssh
# 设置开机自启
sudo systemctl enable ssh
# 检查服务状态(确保为“active (running)”)
sudo systemctl status ssh
编辑配置文件/etc/ssh/sshd_config,提升安全性:
sudo nano /etc/ssh/sshd_config
#PermitRootLogin prohibit-password,修改为:PermitRootLogin no
PasswordAuthentication no
#Port 22,修改为:Port 2222 # 自定义端口(需记住)
保存后重启SSH服务:
sudo systemctl restart ssh
在虚拟机终端运行以下命令,获取IPv4地址:
ip addr show # Ubuntu/Debian
# 或
ip a # 新版本Ubuntu
输出中查找inet字段(如192.168.1.100),即为虚拟机IP。
ssh username@虚拟机IP -p 端口号 # 如ssh user@192.168.1.100 -p 22
ssh-keygen -t rsa -b 2048 # 按回车使用默认路径
ssh-copy-id username@虚拟机IP -p 端口号
ssh命令,无需输入密码即可登录。若需要图形化操作(如桌面环境),可使用VNC协议。
sudo apt install tigervnc-standalone-server -y
sudo yum install tigervnc-server -y
运行以下命令设置登录密码(最多8位):
vncserver
首次运行会提示设置密码,后续可修改密码:
vncpasswd
编辑用户级配置文件~/.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
在宿主机安装VNC客户端(如RealVNC、TigerVNC),输入虚拟机IP和端口5901(:1对应5901),点击“Connect”,输入VNC密码即可登录图形桌面。
若习惯使用Windows远程桌面(mstsc),可安装XRDP服务。
sudo apt install xrdp -y
sudo yum install xrdp -y
sudo systemctl start xrdp
sudo systemctl enable xrdp
允许XRDP端口(默认3389):
sudo ufw allow 3389/tcp # Ubuntu/Debian
# 或
sudo firewall-cmd --add-port=3389/tcp --permanent # CentOS/RHEL
sudo firewall-cmd --reload
在宿主机使用Windows远程桌面(mstsc),输入虚拟机IP,点击“Connect”,输入用户名和密码即可登录。
ping 虚拟机IP)、SSH/VNC/XRDP服务是否启动(systemctl status)。/etc/ssh/sshd_config中的Port字段为其他端口(如2222),并重启服务。ufw、firewalld)允许对应端口(SSH:22、VNC:5901、XRDP:3389)。以上步骤覆盖了Linux虚拟机远程访问的主要方式,可根据需求选择合适的方法。SSH适合命令行管理,VNC/XRDP适合图形化操作,其中SSH因安全性高是最推荐的远程管理方式。