因?yàn)樾枰赾entos7配置遠(yuǎn)程桌面,所以找了很多教程方法,結(jié)果都沒有遠(yuǎn)程連接成功,以下是總結(jié)了很多教程后整理出的方法,在centos7下比較適用,其他的版本貌似有很大區(qū)別,這里不做研究。
一、圖形界面安裝(MATE DESKTOP)
CentOS 7 系統(tǒng)下,本文以 MATE 桌面環(huán)境安裝進(jìn)行安裝配置說明:
登錄服務(wù)器,執(zhí)行如下指令安裝桌面環(huán)境:
1 2 | # 先安裝 MATE Desktop yum groups install "MATE Desktop" |
命令輸入之后,會列出一大堆文字的,然后顯示這個y/d/n,輸入y,按回車下載安裝;
安裝完成,顯示下面圖片complete
1 2 | #安裝好 MATE Desktop 后,再安裝 X Window System。 yum groups install "X Window System" |
命令輸入之后,會列出一大堆文字的,然后顯示這個y/d/n,輸入y,按回車下載安裝;
安裝完成
設(shè)置默認(rèn)通過桌面環(huán)境啟動服務(wù)器:
1 | systemctl set -default graphical.target |
安裝完成后,通過 reboot 等指令重啟服務(wù)器,或者在 ECS 服務(wù)器控制臺重啟服務(wù)器,重啟后系統(tǒng)將自動進(jìn)入圖形界面
二、安裝vncserver
1、假定你的系統(tǒng)沒有安裝vnc的任何軟件,那么,首先安裝vnc
1 | yum -y install tigervnc-server tigervnc |
2、Centos7需要配置的文件/lib/systemd/system/vncserver@.service,復(fù)制一份文件,并改名為vncserver@:1.service
3、將文件中的<User>用你當(dāng)前的用戶替換,將%i替換為1
1 2 3 4 5 6 7 8 9 10 11 12 | [Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre= /bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :' ExecStart= /sbin/runuser -l root -c "/usr/bin/vncserver :1 -geometry 1280x720 -depth 24" PIDFile= /root/ .vnc/%H%i.pid ExecStop= /bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target |
4、更新systemctl
1 | systemctl daemon-reload |
5、設(shè)置為自動啟動
1 | systemctl enable vncserver@:1.service |
6、啟動vnc服務(wù)
1 | systemctl start vncserver@:1.service |
7、修改配置文件(解決vncviewer連接時出現(xiàn)藍(lán)屏或灰屏的問題)
vim ~/.vnc/xstartup
1 2 3 4 5 6 7 8 9 10 | #!/bin/sh # Uncomment the following two lines for normal desktop: # unset SESSION_MANAGER # exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 - ls -title "$VNCDESKTOP Desktop" & mate-session & |
改變xstartup的權(quán)限
這個問題是很多人容易忽視的問題,也是造成連接成功后黑屏的原因之一。
在CentOS中,xstartup的文件路徑為:/root/.vnc/ (可以通過locate xstartup來查看xstartup的文件路徑)
所以需要執(zhí)行:chmod 777 /root/.vnc/xstartup
8、 重啟vnc服務(wù),輸入如下兩個命令:
1 2 | vncserver -kill :1 vncserver |
完成所有配置
a.登錄 ECS管理控制臺,在實(shí)例所在安全組中 添加安全組規(guī)則,放行TCP 5901端口。
b.注意:如果您的實(shí)例上開啟了防火墻,需要設(shè)置防火墻允許VNC訪問,如果沒有開啟防火墻,一定要開啟,否則本地遠(yuǎn)程連接不上,哥在這個問題上被坑了很多遍,終于總結(jié)出這個原因。
舉例:
以firewalld為例,您需要做如下設(shè)置:
firewall-cmd --permanent --add-service vnc-server #允許VNC訪問
systemctl restart firewalld.service # 重啟firewalld
如果提示防火墻沒有運(yùn)行,請先開啟
systemctl start firewalld.service
如果執(zhí)行 systemctl start firewalld 命令后出現(xiàn)Failed to start firewalld.service: Unit is masked,執(zhí)行以下命令:
systemctl unmask firewalld ,即可實(shí)現(xiàn)取消服務(wù)的鎖定
設(shè)置開啟自啟動防火墻,重啟centos時不用再手動開啟防火墻
systemctl enable firewalld.service
然后還需要設(shè)置防火墻規(guī)則允許VNC訪問。
這樣本地使用VNCViewer客戶端可以使用IP:1進(jìn)行遠(yuǎn)程桌面連接了。舉例:以iptables為例,您需要做如下設(shè)置:
iptables -A INPUT -p tcp --dport 5901 -j ACCEPT #放行TCP 5901端口
service iptables save # 保存規(guī)則
service iptables restart #重啟規(guī)則
ps:下面可能你需要的
1.報(bào)錯:Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.
處理方法:
rm -rf /tmp/.X11-unix/*
2、設(shè)置系統(tǒng)語言為簡體中文
查看當(dāng)前語言
echo $LANG
如果不是中文則手動設(shè)置為中文
臨時設(shè)置:
LANG=zh_CN.UTF-8
永久設(shè)置:
vi /etc/locale.conf
LANG=zh_CN.UTF-8