最近工作需要做一些遠端管理,除了ssh以外還需要能夠遠端桌面的環境,在CentOS上可以用VNC(Virtual Network Computing)方式登入,Centos 6和7的安裝方式不太一樣,所以來記錄一下。
VNC server講白話就是遠端桌面,如果機器當初是裝文字介面沒有圖形介面的話,先安裝桌面環境。
[root@localhost ~]# yum groupinstall "GNOME Desktop"
安裝VNC server。
[root@localhost ~]# yum install tigervnc-server
VNC組態檔為一個帳戶一個組態檔,例如我機器上想要開放root和user1兩個帳戶能夠被遠端登入,就需要兩個組態檔。
CentOS 7的VNC預設組態檔在:(以前是
/etc/sysconfig/vncservers
)/lib/systemd/system/vncserver@.service
VNC server port使用59xx,如果要使用5909的話,那麼組態檔名稱這樣取:
/etc/systemd/system/vncserver@:9.service
所以複製一下組態檔:
[root@localhost ~]# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:9.service
編輯組態檔:
[root@localhost ~]# vim /etc/systemd/system/vncserver@:9.service
[Service]部分修改
PIDFile
,像我要開放root帳戶,root的home目錄在/root
,如果是user1的home目錄在/home/user1
(#後面是註解,看清楚要開放哪個帳戶)。還有ExecStart的<User>改成要開放的帳戶名稱。
[Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i" # user1 # PIDFile=/home/user1/.vnc/%H%i.pid # root PIDFile=/root/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
接著設定VNC連上後的密碼(要先用指令
su
切換到要開放的帳戶,假如我要開放user1要先su user1
切換成user1):[root@localhost ~]# vncpasswd Password: Verify:
然後開啟VNC service,以及 daemon化這個service。
[root@localhost ~]# systemctl daemon-reload [root@localhost ~]# systemctl start vncserver@:9.service [root@localhost ~]# systemctl enable vncserver@:9.service
最後開啟防火牆允許VNC的連線,以及重新load防火牆,這邊我多開放了port 5909。
[root@localhost ~]# firewall-cmd --permanent --add-service="vnc-server" --zone="public" success [root@localhost ~]# firewall-cmd --add-port=5909/tcp --permanent success [root@localhost ~]# firewall-cmd --reload success
以下指令可以列出目前已經開放的遠端虛擬桌面。
[root@localhost ~]# vncserver -list TigerVNC server sessions: X DISPLAY # PROCESS ID :9 25049
在Mac OS X上要遠端桌面的話,開啟Safari輸入網址「vnc://[ip]:[port]」。
然後開啟後,會要輸入密碼,那個密碼就是指令
vncpasswd
的時候設定的密碼(不是帳戶密碼)。最後就完成啦。
其他人的教學都是使用port 5901,CentOS 7預設的防火牆是可以針對特定server設定,但是我是使用port 5909,防火牆還是會擋下來,所以我就再另外開放5909啦。
如果無法正常啟動daemon,像是:
[root@localhost ~]# systemctl start vncserver@:9.service Job for vncserver@:9.service failed because the control process exited with error code. See "systemctl status vncserver@:9.service" and "journalctl -xe" for details.
指令:
[root@localhost ~]# rm -rf /tmp/.X11-unix/
沒有留言:
張貼留言