CentOS圖形界面及VNC/Xmanager遠程訪問

CentOS圖形界面及VNC/Xmanager遠程訪問

文章來源: 陶老師運維筆記- 微信公眾號

CentOS圖形界面與vnc.png

在某些特殊工作場景中(如Oracle運維),使用圖形化界面操作Linux有時比命令行更加方便。 VNC和Xmanager都可以遠程連接到Linux并進行圖形化操作,今天給大家分享如何在Linux操作系統中安裝圖形界面及配置VNC/Xmanager遠程桌面。

1. 實驗環境

在Linux服務器上安裝圖形界面,在Mac/Windows客戶機上遠程訪問Linux服務器。

IP 機器 操作系統 版本
192.10.1.8 Linux服務器 CentOS 6.6
192.10.1.2 客戶機 Mac / windows -

2. 服務端篇

2.1 配置國內YUM源/EPEL源

安裝軟件時用國外yum源網速通常不如國內源速度快,為加快安裝速度可以改用國內yum 阿里云源。
[EPEL](Extra Packages for Enterprise Linux)是由 Fedora 社區打造,現在流行的nginx、htop、ncdu、vnstat等等,都可以使用EPEL很方便的安裝更新。

EPEL官網: https://fedoraproject.org/wiki/EPEL/zh-cn

配置阿里云源:

wget -O /etc/yum.repos.d/CentOS-6-aliyun.repo http://mirrors.aliyun.com/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel-aliyun.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum clean all
yum makecache

2.2 檢查可用組件

檢查Desktop等組件是否可以安裝。

#查看系統已裝組件和未裝組件
yum grouplist | more   
Installed Groups:
   Additional Development
   Base
...
Available Groups:
   Client management tools
   Debugging Tools
   Desktop

2.3 安裝圖形化界面軟件

安裝圖形化界面Desktop,X Window System等。

Linux常用來構建服務器的,所以基本上選擇Basic Server,但依實際情況也可以選擇如下:

  • Desktop  :基本的桌面系統,包括常用的桌面軟件,如文檔查看工具。
  • Minimal Desktop :基本的桌面系統,包含的軟件更少。
  • Minimal :基本的系統,不含有任何可選的軟件包。
  • Basic Server  :安裝的基本系統的平臺支持,不包含桌面。
  • Database Server :基本系統平臺,加上MySQL和PostgreSQL數據庫,無桌面。
  • Web Server :基本系統平臺,加上PHP,Web server,還有MySQL和PostgreSQL數據庫的客戶端,無桌面。
  • Virtual Host :基本系統加虛擬平臺。
  • Software Development Workstation :包含軟件包較多,基本系統,虛擬化平臺,桌面環境,開發工具。
yum groupinstall "Desktop"  
yum groupinstall 'X Window System'  
yum groupinstall "Chinese Support"  -y 
yum install xorg-x11-xdm  -y 

說明:
若是沒有外網,可以找一臺可以聯外網的機器把rpm軟件包down下來,傳到不聯網機器上完成安裝。(可用yum-plugin-downloadonly軟件幫助實現)。詳細見本文中問題處理章節

修改啟動級別:(可選)
若是希望服務器以后以圖形界面啟動,可以修改/etc/inittab,修改系統的運行級別為5。

Linux系統啟動過程: http://www.lxweimin.com/p/33437df8c969
Linux系統7個運行級別:
0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動
1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登陸
2:多用戶狀態(沒有NFS)
3:完全的多用戶狀態(有NFS),登陸后進入控制臺命令行模式
4:系統未使用,保留
5:X11控制臺,登陸后進入圖形GUI模式
6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動

#修改啟動級別
$cp /etc/inittab  /etc/inittab.backup #備份下
$sed -i 's/id:3/id:5/' /etc/inittab
$cat /etc/inittab  
id:5:initdefault:

2.4 啟動圖形界面

輸入startx啟動圖形界面。

startx &
#virt-manager &

3. 用VNC或Xmanager登錄遠程桌面

Xmanager及VNC都可以調用遠程桌面。咱們只需要安裝其中的一種就可。

VNC和Xmanager的區別:
VNC和Xmanager都可以遠程連接到UNIX或Linux并進行圖形化操作,但兩者的工作原理并不相同。

  • VNC是遠程連入操作系統,所有操作在UNIX、Linux主機服務端進行,即使操作中網絡斷開,也不影響操作的進行;
  • Xmanager是通過端口將主機服務器的UI界面引導到本地電腦進行展現,如果操作中網絡斷開,操作將失敗。
    VNC剪切板內容不能跨本地和遠程(同VMware沒有安裝VMtools的效果),而Xmanager可以(同VMware安裝VMtools后的效果)。VNC只有幾百K大小,Xmanager有幾十M大小。
    VNC以GPL授權,衍生出了幾個VNC軟件: RealVNC:由VNC團隊部份成員開發,分為全功能商業版及免費版。 TightVNC:強調節省帶寬使用。 UltraVNC:加入了TightVNC的部份程序及加強效能的圖型映射驅動程序,并結合Active Directory及NTLM的帳號密碼認證,但僅有Windows版本。
    Vine Viewer:MacOSX的VNC用戶端。

3.1 使用VNC登錄遠程桌面

VNC主要有兩部分組成:vncserver和vncviewer,其中vncserver是服務器端軟件,提供VNC服務,vncviewer是客戶端軟件,遠程調用VNC服務的。即vncviewer能遠程登錄到vncserver所在的主機。

3.1.1 安裝配置vncserver

在CentOS服務器上安裝及配置vncserve。
1)安裝vncserver軟件

#安裝軟件
yum install tigervnc  tigervnc-server -y
#配置為開機自啟動
chkconfig –level 345 vncserver on

2)設置vncserver密碼
第一次執行會讓你輸入密碼,至少6位,示例密碼為vncadmin。后續在vncviewer連接服務器端主機中需要用到。
注意:后續可用vncpasswd命令修改密碼。

$vncserver
You will require a password to access your desktops.
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/DB-132038:1.log

3)配置使用gnome桌面
配置為使用gnome桌面,修改 /root/.vnc/xstartup文件,把最后的 twm & 刪掉 加上 gnome-session &

vim /root/.vnc/xstartup
#twm &
gnome-session &

4)允許root訪問圖形界面
允許root訪問圖形界面和生成新的machine-id(可選)。

#注釋掉 auth       required    pam_succeed_if.so user != root quiet
cp /etc/pam.d/gdm /etc/pam.d/gdm.backup
sed -i 's/.*!= root.*/#&/' /etc/pam.d/gdm
cat  /etc/pam.d/gdm 
 #auth       required    pam_succeed_if.so user != root quiet   
#dbus-uuidgen >/var/lib/dbus/machine-id

5)啟動vncserver服務
修改配置文件:
修改配置文件,/etc/sysconfig/vncservers 。

#修改配置文件,填加VNCSERVERS="1:root"
#指該服務啟動時,會在root用戶下配置一個VNC服務,對應的端口為1。
vim /etc/sysconfig/vncservers 
VNCSERVERS="1:root"
VNCSERVERS="2:leuser"

啟動:

/etc/init.d/vncserver start

設置開機自啟動:

#chkconfig --add vncserver
$chkconfig --list |grep vnc -i
vncserver       0:off   1:off   2:off   3:off   4:off   5:off   6:off
#配置開機自啟動
$chkconfig --level 345 vncserver on
$chkconfig --list |grep vnc -i    
vncserver       0:off   1:off   2:off   3:on    4:on    5:on    6:off

6)檢查vnc服務

$ps aux|grep vnc -i
$netstat -ntlup |grep vnc
tcp        0      0 0.0.0.0:5902                0.0.0.0:*                   LISTEN      22738/Xvnc          
tcp        0      0 0.0.0.0:6002                0.0.0.0:*                   LISTEN      22738/Xvnc    

3.1.2 vncviewer登錄

服務端安裝配置好vncserver,咱們就可以利用vncviewer登錄服務器。

安裝vncviewer

登錄遠程Server:
??輸入IP:vncservers中序號,(即1:root,2:leuser ),輸入前一節設置的密碼vnc密碼(密碼vncadmin),點擊“OK”即可登錄。注意:Username為灰,無法填寫,在該例中,輸入為IP:2,即登錄的是leuser賬戶,若輸入IP:1,則為root用戶。

#CentOS VNCServer配置
vim /etc/sysconfig/vncservers 
VNCSERVERS="1:root"
VNCSERVERS="2:leuser"
vncviewer

登錄成功后效果:


image.png

3.2 使用Xmanager登錄遠程桌面

3.2.1 服務端配置

1)配置Xmanager

cp  /etc/gdm/custom.conf   /etc/gdm/custom.conf.backup
vim /etc/gdm/custom.conf
[daemon]  
  
[security]  
AllowRoot=true  
AllowRemoteRoot=true  #允許root登錄
  
[xdmcp]  
Enable=true  
Port=177  
  
[greeter]  
 
[chooser]  
  
[debug]  

2)修改xdm-config:
修改xdm-config,在尾行“DisplayManager.questPort: 0”前面加一個感嘆號。

cp /etc/X11/xdm/xdm-config  /etc/X11/xdm/xdm-config.backup
cat /etc/X11/xdm/xdm-config
! DisplayManager.requestPort:   0

3)修改Xaccess
vim /etc/X11/xdm/Xaccess ,找到“#any host can get a login window”這一行,去掉這行開頭的注釋
找到“#any indirect host can get a chooser”這一行,去掉這行開頭的注釋。

$vim /etc/X11/xdm/Xaccess 
*                                       #any host can get a login window
*               CHOOSER BROADCAST       #any indirect host can get a chooser
$cat /etc/X11/xdm/Xaccess  |grep -v '^#'|grep -v '^$'

4)修改prefdm.conf
修改/etc/init/prefdm.conf文件。注釋exec /etc/X11/prefdm -nodaemon,添加exec /usr/sbin/gdm

vim /etc/init/prefdm.conf
respawn limit 10 120
#exec /etc/X11/prefdm -nodaemon
exec /usr/sbin/gdm

5)關閉防火墻:

$iptables -L
#service  iptables  stop
$iptables  -A  INPUT  -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT

6)重啟linux 服務器
重啟linux 服務器,執行reboot now。

reboot now

7)檢查xdmcp服務:
由于xdmcp服務默認使用udp177端口,所以要查看xdmcp服務是否已啟動。

lsof -i:177
netstat    -antpu   |   grep 177

3.2.2 Xbrowser客戶端配置

安裝Xbrowser客戶端軟件:

遠程登錄:
打開Xmanager,點擊Xbrowser。(建議關閉本地計算機防火墻后再使用Xmanager遠程登陸。)

  • 方法1: 在Xshell中調用,設置會話屬性。
    如下圖所示,需在“隧道”選項上勾選“轉發X11連接到(X):”。


    Xshell
  • 方法2: 用Xstart登錄遠程桌面.
    輸入主機,用戶名和身份驗證是必須的,協議必須為SSH,關鍵在于命令的填寫(下面詳表),填寫完畢后,即可點擊“運行”。

登錄遠程桌面的主要有以下三個命令:
1> gnome-session 調用gnome桌面
2> startkde 調用kde桌面
3> /usr/bin/xterm -ls -display $DISPLAY 調用終端窗口
第一種和第二種比較容易理解,第三種出來的圖形其實如下,其實就是一個終端窗口。
如果報“/usr/bin/xterm: DISPLAY is not set”錯誤,可在終端上設置xhost +或者export DISPLAY=192.168.2.1:0.0,這里,192.168.2.1指的是客戶端地址。

在實際生產環境中,往往沒有必要登陸到遠程桌面,直接調用應用程序即可,譬如,安裝Oracle,直接執行./runInstaller即可。

Xstart

4. Xshell,SecureCRT等配置X11轉發

參考: [Putty, Xshell,SecureCRT] 本地顯示X11轉發圖像 https://blog.csdn.net/u010472607/article/details/80356216

4.1 SecureCRT配置X11轉發圖像

  • STEP 1: 選擇Session Options.
    Session
  • STEP 2: 選擇 Remote/X11, 勾選Forward X11
    iForward X11

4.2 Xshell配置X11轉發圖像

選擇相應會話的屬性,選擇[隧道], 然后在右側進行如下勾選, X DISPLAY項內容不需要修改。


image.png

5. 問題處理

5.1 無外網機器安裝桌面軟件

機器沒有外網,可以找一臺可以聯外網的機器把rpm軟件包down下來,傳到不聯網機器上完成安裝。(可用yum-plugin-downloadonly軟件幫助實現)。
下載軟件:

$yum install yum-plugin-downloadonly
$mkdir /root/rpm
#下載所需全部rpm包
yum --downloadonly --downloaddir=/root/rpm groupinstall  "Desktop" -y
yum --downloadonly --downloaddir=/root/rpm groupinstall  "X Window System" -y
yum --downloadonly --downloaddir=/root/rpm groupinstall  "Chinese Support" -y
yum --downloadonly --downloaddir=/root/rpm  install xorg-x11-xdm  -y

傳遞軟件:
使用nc來實現兩服務器軟件傳輸。 陶老師運維筆記- nc傳輸文件

#不聯外網機器A
nc -l 1234 | tar xzvf - >rpm
#已下載rpm的軟件的機器B
tar czvf - rpm | nc 目標機A 1234

完成安裝:

#進到下載軟件路徑/root/rpm
cd rpm #有Desktop等rpm包的目錄。
yum install  *.rpm

參考:


陶老師運維筆記
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容