next up previous contents
Next: 一般用戶啟動 vncserver Up: VNC Previous: VNC 簡介   Contents

VNC Server

  1. 安裝 tigervnc-server 套件
    [root@dywH ~]# yum install tigervnc-server
    
  2. 啟動 vncserver,出現以下錯誤訊息為正常,因為還沒設定。
    [root@dywH ~]# /etc/init.d/vncserver restart
    Shutting down VNC server:                                  [  OK  ]
    Starting VNC server: no displays configured                [FAILED]
    
  3. 修改 vncserver 設定檔,在最後增加如下兩行,表示 root 使用 5900+2=5902 埠號,解析度為 1024x768 16 位元。
    [root@dywH ~]# vim /etc/sysconfig/vncservers 
    [root@dywH ~]# tail -n2 /etc/sysconfig/vncservers 
    VNCSERVERS="2:root"
    VNCSERVERARGS[2]="-geometry 1024x768 -depth 16 -nolisten tcp"
    
  4. vncserver 設定選項:
    1. -geometry: 使用 XWindow 開啟
    2. 1024x768 : 指定連接到 XWindow 使用的解析度
    3. -depth 16: 指定 XWindow 色彩品質的位元數
    4. -nolisten tcp: 禁止使用 tcp 連線登入
    5. -nohttpd: 禁止使用瀏覽器登入
    6. -localhost: 指定使用本機端登入
    7. -alwaysshared:允許多使用者同時登入
  5. 設定好 vncserver 後重新啟動,出現以下訊息,是因字體版本有問題。
    [root@dywH ~]# /etc/init.d/vncserver restart
    Shutting down VNC server:                                  [  OK  ]
    Starting VNC server: 2:root 
    WARNING: The first attempt to start Xvnc failed, possibly because the font
    catalog is not properly configured.  Attempting to determine an appropriate
    font path for this system and restart Xvnc using that font path ...
    Could not start Xvnc.
    
    /usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids
    /usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids
    
  6. 更新 pixman 字型版本
    [root@dywH ~]# yum install pixman pixman-devel libXfont
    
  7. 重新啟動 vncserver,要求設定 root 密碼。
    [root@dywH ~]# /etc/init.d/vncserver restart
    Shutting down VNC server:                                  [  OK  ]
    Starting VNC server: 2:root 
    VNC password for user root is not configured
                                                               [FAILED]
    
  8. 設定 vncserver 密碼
    [root@dywH ~]# vncpasswd 
    Password:
    Verify:
    
  9. 重新啟動 vncserver,要求設定 root 密碼。
    [root@dywH ~]# /etc/init.d/vncserver restart
    Shutting down VNC server:                                  [  OK  ]
    Starting VNC server: 2:root 
    New 'dywH:2 (root)' desktop is dywH:2
    
    Creating default startup script /root/.vnc/xstartup
    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/dywH:2.log
    
                                                               [  OK  ]
    
  10. 重新啟動 vncserver,若出現以下錯誤訊息,就是指定的 port 已被虛擬機佔用。
    socket.error: [Errno 98] Address already in use
    
  11. 可以先關閉 libvirtd 服務,也就是關閉虛擬機 qemu-kvm 佔用的 port,等 vncserver 重啟成功後,再啟動 libvirtd 服務,這時 qemu-kvm 會自動找到可以使用的 port。
    [root@dywH ~]# /etc/init.d/libvirtd stop 
    [root@dywH ~]# /etc/init.d/vncserver restart 
    [root@dywH ~]# /etc/init.d/libvirtd start
    
  12. 查詢 Xvnc 開啟在埠號 5902。
    [root@dywH ~]# netstat -tlunp | grep vnc
    tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN      6598/Xvnc
    
  13. 設定防火牆。
    [root@dywH ~]# vim /etc/sysconfig/iptables
    [root@dywH ~]# grep 5902 /etc/sysconfig/iptables -B1
    .....
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
    ......
    
  14. 重新啟動防火牆。
    [root@dywH ~]# /etc/init.d/iptables restart
    iptables: Flushing firewall rules:                         [  OK  ]
    iptables: Setting chains to policy ACCEPT: nat filter      [  OK  ]
    iptables: Unloading modules:                               [  OK  ]
    iptables: Applying firewall rules:                         [  OK  ]
    



2017-05-01