CentOS圖形界面及VNC/Xmanager遠程訪問
文章來源: 陶老師運維筆記- 微信公眾號
在某些特殊工作場景中(如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很方便的安裝更新。
配置阿里云源:
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
- vncviewer軟件下載: https://www.realvnc.com/en/connect/download/vnc/
登錄遠程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"
登錄成功后效果:
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即可。
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項內容不需要修改。
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
參考:
- http://mirrors.163.com/.help/centos.html
- https://www.netsarang.com/zh/all-downloads/
- 用Xmanager及VNC登錄遠程桌面 https://www.cnblogs.com/ivictor/p/4760914.html?utm_source=tuicool
- vnc viewer mac http://mac.orsoon.com/Mac/153107.html
- Xshell,SecureCRT X11轉發圖像https://blog.csdn.net/u010472607/article/details/80356216