远程连接CentOS虚拟机主要有两种需求:命令行操作(轻量高效)和图形界面操作(便捷可视化)。以下是具体实现方法及注意事项:
SSH(Secure Shell)是Linux系统默认的加密远程登录协议,适用于命令行管理。
在CentOS虚拟机终端执行以下命令,安装OpenSSH服务器:
sudo yum install openssh-server -y
sudo systemctl start sshd
sudo systemctl enable sshd
/etc/ssh/sshd_config文件,常用调整项:
Port 22:修改默认端口(如Port 2222),需同步更新防火墙规则;PermitRootLogin yes:允许root用户登录(生产环境建议设为no,使用普通用户+sudo);PasswordAuthentication yes:允许密码认证(若用密钥认证,设为no)。sudo systemctl restart sshd
在虚拟机终端执行以下命令,查看网络接口的IPv4地址(通常为ens33或eth0):
ip addr show
输出示例:
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic ens33
其中192.168.1.100即为虚拟机的IP地址。
若虚拟机使用NAT模式(默认),需设置端口转发,将主机的某个端口映射到虚拟机的SSH端口(默认22):
SSH)、协议(TCP)、主机IP(留空,表示所有主机IP)、主机端口(如2222)、子系统IP(留空)、子系统端口(22)。在宿主机(如Windows、Mac)上使用SSH客户端连接:
127.0.0.1:2222)和用户名(如root),点击“Open”;ssh username@虚拟机IP -p 端口(默认22可省略)
示例:ssh root@192.168.1.100
输入密码后即可登录。若需要图形界面(如桌面环境),可使用VNC(Virtual Network Computing)或XRDP(Remote Desktop Protocol)服务。
VNC提供点对点的图形桌面共享,适合个人使用。
在CentOS虚拟机终端执行:
sudo yum install tigervnc-server -y
root):vncpasswd
输入并确认密码(最多8位)。root、会话ID:1为例,对应端口5901):sudo vi /etc/systemd/system/vncserver@:1.service
内容如下(替换<user>为实际用户名,如root):[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=<user>
Group=<user>
WorkingDirectory=/home/<user>
PIDFile=/home/<user>/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1
sudo systemctl start vncserver@:1
VNC默认使用5900+会话ID端口(如:1对应5901),允许该端口通过防火墙:
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload
在宿主机上使用VNC客户端(如RealVNC Viewer、TightVNC Viewer):
虚拟机IP:会话ID(如192.168.1.100:1);XRDP兼容Windows远程桌面(mstsc),适合需要跨平台图形连接的用户。
在CentOS虚拟机终端执行:
sudo yum install epel-release -y # 安装EPEL仓库(提供xrdp包)
sudo yum install xrdp -y
sudo systemctl enable xrdp
sudo systemctl start xrdp
XRDP默认使用3389端口(与Windows RDP一致),允许该端口通过防火墙:
sudo firewall-cmd --permanent --add-port=3389/tcp
sudo firewall-cmd --reload
在宿主机(如Windows)上:
mstsc);192.168.1.100),点击“连接”;setsebool -P ssh_sysadm_login on),或临时设为permissive模式(setenforce 0);systemctl status sshd/vncserver@:1/xrdp检查服务是否运行,或journalctl -xe查看日志排查问题。以上方法覆盖了CentOS虚拟机远程连接的常见场景,可根据需求选择合适的方案。