???????????👍如果大家覺得本文有用的話,希望能點個贊鼓勵一下,十分感謝各位的支持 
文章目錄
- 前言
- 1 vnc的安裝、啟動與配置[^1]
- ? 1.1 安裝vncserver
- ? 1.2 啟動vncserver
- ? 1.3 安裝虛擬桌面并配置vncserver
- 2 進一步給vncviewer權限[^2]
- ? 2.1. 開放共享桌面
- ? 2.2 利用dconf-editor取消加密限制
- 3 win端下利用vnc訪問linux端桌面[^1] [^2]
- ? 3.1 vnc軟體的下載[^2]
- ? 3.2 vnc軟體的直接連接[^2]
- ? 3.3 vnc軟體通過虛擬桌面連接
- ? 3.4 洗掉虛擬桌面
- ? 3.5 開機自動啟動虛擬桌面
- 4 離線安裝軟體包[^3]
- ? 4.1 制作離線源(下載包并建立依賴)
- ? 4.2 將離線源設定為離線ubuntu的本地源
- 5 總結
前言
本文主要參考了以下四篇文章,轉載本文需要附上本文鏈接,
[1] 解決vncviewer連接ubuntu的灰屏問題(虛擬gnome桌面)
[2] 實作Windows直接遠程訪問Ubuntu 16/18(原生桌面+直接訪問)
[3] Ubuntu離線安裝軟體包
[4] 為 CentOS 與 Ubuntu 制作離線本地源
提示:
??[1]講述了如何解決vnc連接的灰屏問題,只需設定xstartup的權限和內容即可成功載入虛擬桌面,但是對于部分人群該方法使用后依然會灰屏,這就需要增加一步設定虛擬桌面和xstartup檔案,并引入[2]中的dconf-editor工具,取消requlre-encryption的勾選解決問題,
??[2]不僅能解決[1]的問題,而且提供了不需要桌面環境直接使用的方法,但是沒法自定義解析度,因此需要[1]和[2]結合實作,此外,[2]中的安裝指令只是vnc的一部分,建議安裝vnc4server的完整內容,
??[3]則是提供了如何離線安裝軟體的方法,利用一個相同環境的虛擬機在線安裝,再打包成"本地服務器",通過設定本地源從而實作離線安裝,由于ubuntu安裝deb檔案需要大量依賴包同步安裝,一個個下載安裝一方面由于鑲套依賴導致沒法安裝成功,而且很麻煩,因此這種方案提供了方法,
本文主要分為兩部分
(1)如何在線安裝vnc并實作遠程鏈接,
(2)如何離線安裝軟體,然后按照離線的方法,(1)在執行所有安裝命令前,只要在相同環境的在線系統下提前下載好本地源,拷貝至離線系統并配置好該系統源的source.list后,方可安裝,
[提示]:
? ? 在線安裝只需看1-3節即可
? ? 離線安裝則需先看第4節學會如何離線安裝,再看第1-3節,想直接看ssh離線安裝請直接看第4節,離線安裝所需的ubuntu16.04的本地離線源(包含ssh,vnc,虛擬桌面,dconf-editor),需要下載的請點擊下載地址(提取碼:aghd)
? ? 若版本不是ubuntu16.04,或者需要自己制作其他安裝包,請見4.1,使用方法見4.2,
1 vnc的安裝、啟動與配置1
? 1.1 安裝vncserver
打開終端,輸入如下代碼安裝vnc:
sudo apt-get install vnc4server --allow-unauthenticated #在線安裝可不加--allow-unauthenticated
? 1.2 啟動vncserver
右鍵點擊桌面,點擊打開終端,輸入如下代碼并回車,啟動vnc:
vncserver
彈出以下內容,":1"表明新建了一個編號為1的虛擬桌面1,windows下vnc輸入地址+ip,如192.168.34.54:1,就是表示在ip地址192.168.34.54下連接桌面1,具體連接后續再描述,
?New ‘root12:1 (root12)’ desktop is root12:1
?Starting applications specified in /home/root12/.vnc/xstartup
?Log file is /home/root12/.vnc/root12:1.log
現在使用vnc會有灰屏問題(如下圖所示),需要進一步設定

? 1.3 安裝虛擬桌面并配置vncserver
(1) 提高vnc權限:打開終端,輸入如下代碼并回車
chmod +x ~/.vnc/xstartup
(2) 安裝虛擬桌面:打開終端,輸入如下代碼并回車
sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal --allow-unauthenticated
#在線安裝可不加--allow-unauthenticated
(3) xstartup檔案下修改vnc的默認虛擬桌面:
?打開終端,輸入如下代碼并回車,從而以編輯模式打開xstartup
(其實vi,vim,nano,gedit都可以,權限從強到弱,操作難度從低到高)
sudo gedit ~/.vnc/xstartup
備份原檔案后,可以注釋掉所有內容(所有內容前加#),然后在后面的空行輸入如下代碼,并ctrl+S保存檔案
#!/bin/bash
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
# [ -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" &
# x-window-manager &
exec gnome-session &
2 進一步給vncviewer權限2
? 2.1. 開放共享桌面
? ? 首先,我們先設定Ubuntu的遠程控制,將其設定為允許被遠程連接,進入系統/首選項-/桌面共享,或者直接搜索桌面共享,如圖所示:

?? 將【允許其他人查看您的桌面】這一項勾上,然后在安全那項,勾選【要求遠程用戶輸入此密碼】,并設定遠程密碼,并且我們取消勾選【必須為對本機器的每次訪問進行確定】(這樣做,是為了被遠程的時候不需要再確認,否則每次遠程都要人為確認才能被遠程,會很繁瑣)如圖所示:

? 2.2 利用dconf-editor取消加密限制
(1) 安裝dconf-editor:打開終端,輸入如下代碼并回車
sudo apt-get install dconf-editor --allow-unauthenticated #在線安裝可不加--allow-unauthenticated
(2) 利用dconf-editor更改權限:安裝完成之后,我們需要打開dconf-editor工具,在桌面搜索dconf-editor打開,打開之后,依次展開org->gnome->desktop->remote-access,然后取消 “requlre-encryption”的勾選即可,如圖所示:


3 win端下利用vnc訪問linux端桌面1 2
? 3.1 vnc軟體的下載2
? 大家可以到VNC官網(https://www.realvnc.com/en/connect/download/viewer/)下載最新的版本,根據自己實際情況,選擇相對應的版本,其中standalone是免安裝便攜版,推薦使用這個版本,
? 此外,也可以使用Windows自帶的遠程桌面控制工具mstsc,使用vnc-any也可以訪問,只不過沒vnc清晰,
? 3.2 vnc軟體的直接連接2
? 終端輸入ifconfig并回車,可查看本地ip,也可以右上角設定查看本地ip,
ifconfig
輸入我們需要遠程控制的PC主機的IP和密碼,如圖所示:

如果成功連接上了,結果則如圖所示:

如果像素比較模糊,則可以vnc界面右鍵,properties,general的影像品質設定high,scaling設定100%(這樣能避免影像發生拉伸)

? 3.3 vnc軟體通過虛擬桌面連接
?上述方法的好處是可以直接連接,缺點是沒法自定義桌面,在這里提供自定義桌面尺寸的方式,
?新建虛擬桌面: vncserver -geometry 寬x高 -depth 色彩深度(顏色豐富度,8-32) :桌面編號 (注意空格),如下面的命令是建立像素為1920x1080的桌面,色彩深度為24,編號為2,值得注意的是,每次關機后虛擬桌面都會消失,需要重新設定,如果要開機自動設定,見3.5,另外,如果較卡,可以設定色彩深度=8,
vncserver -geometry 1920x1080 -depth 24 :2
?windows下打開vnc軟體設定連接:與3.2唯一的不同是ip地址后面要加:2

? 3.4 洗掉虛擬桌面
?洗掉虛擬桌面: vncserver -kill :桌面編號 (注意空格),如下面的命令是洗掉像素編號為2的虛擬桌面
vncserver -kill :2
? 3.5 開機自動啟動虛擬桌面
參考文章:Linux下vnc的安裝、使用以及設定開機啟動
?(1)創建執行檔案
sudo gedit /etc/init.d/vncserver
輸入以下內容并保存(ctrl+S):
#!/bin/sh
### BEGIN INIT INFO
# Provides: tightvncserver
# Required-Start: $syslog $remote_fs $network
# Required-Stop: $syslog $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Starts VNC Server on system start.
# Description: Starts tight VNC Server. Script written by James Swineson.
### END INIT INFO
# /etc/init.d/vncserver
VNCUSER='pi' #可以改成你的用戶名
case "$1" in
start)
#以pi用戶運行'vncserver :1'指令,如果使用的是其他VNC 直接替換成對應的啟動命令即可
su $VNCUSER -c 'vncserver -geometry 1920x1080 -depth 24 :1' #像素1920x1080,可自己調,色深為色彩豐富度,8-24,根據網路情況進行調整,
echo "Starting VNC Server for $VNCUSER"
;;
stop)
su $VNCUSER -c 'vncserver -kill :1'
echo "TightVNC Server stopped"
;;
*)
echo "Usage: /etc/init.d/vncserver {start|stop}"
exit 1
;;
esac
exit 0
?(2)然后對該檔案添加可執行權限:
sudo chmod 755 /etc/init.d/vncserver
?(3)添加到開機啟動串列:
sudo update-rc.d vncserver defaults
(注:取消開機啟動:sudo update-rc.d -f vncserver remove)
?設定完成,
4 離線安裝軟體包3
? 4.1 制作離線源(下載包并建立依賴)
??本人已經提前做好離線源(包含ssh,vnc,虛擬桌面,dconf-editor),需要請點擊下載地址(提取碼:aghd),下載后可直接跳過步驟4.1
復制這段內容后打開百度網盤手機App,操作更方便哦
?(1)下載安裝包所需deb包: 在相同環境下的在線ubuntu系統下執行以下命令,下載離線安裝所需的deb包和相應的依賴包
?sudo apt-get -y install 下載指令
下載指令 = vnc4server , gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal , dconf-editor ,
?其實就是利用apt-get的-y子命令可以保證deb包快取到指定位置/var/cache/apt/archives目錄下,
sudo apt-get update #(有時候不執行該命令更新也可以,如果安裝不了報錯就要先更新源再下載,否則會額外下載其他的東西)
sudo apt-get -y install 下載指令
#注:制作離線源時建議把系統設定/軟體和更新/更新下的`自動檢查更新`改為`從不`,不然更新的時候有可能會額外下載許多不需要的deb更新包,
如
sudo apt-get update #(有時候不執行該命令更新也可以,否則會額外下載其他的東西,如果安裝時報錯,則需要執行該命令更新源再下載,)
sudo apt-get -y install openssh-server #(如果沒裝ssh可以順帶安裝)
sudo apt-get -y install vnc4server
sudo apt-get -y install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
sudo apt-get -y install dconf-editor
注1:如果提示E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用) ,E: 無法獲取 dpkg 前端鎖 (/var/lib/dpkg/lock-frontend),是否有其他行程正占用它?,則可能原因有兩種,①apt-get前忘記加sudo,則需重新加上, ②此外,如果你使用的是克隆虛擬機,也可能會出此問題,需要重新啟動電腦,, ③如果還不行,ps -e | grep apt 查看行程編號,利用sudo kill 行程編號殺掉相應行程,(見網站) ④如果還是不行,則需要在安裝輸入sudo apt-get update更新源,再重新輸入安裝指令,
注2:關于為什么本人包只有12mb,而部分人的離線包在170mb的原因:
(1)有時候安裝不需要sudo apt-get update,這樣就不會下載額外的deb包,
(2)建議在線機器先右上角的系統設定/軟體安全與更新,更新頻率設定為從不,否則有時候檔案夾/計算機/var/archives會額外快取很多版本更新的deb包(100+MB)比較占空間,
(3)此外,如果安裝openssh-server,前面多打一個空格,也會多下載很多東西(類似于自動下載更新),不過其他軟體安裝多打一個空格不一定會多下載其他軟體的deb包,只有openssh-server有這個特性,
?(2)將deb包拷貝至指定位置并打包:
?a.新建一個檔案夾,在專案根目錄新建檔案夾offlinePackage
sudo mkdir /offlinePackage
?b.拷貝下載的deb包,將下載的deb包拷貝到上述新建的檔案夾下
sudo cp -r /var/cache/apt/archives /offlinePackage
?c.修改檔案夾權限,修改檔案夾的權限,使該檔案夾可讀可寫可執行,(該檔案在ubuntu檔案系統的計算機部分)
sudo chmod 777 -R /offlinePackage/
?d.建立deb包的依賴關系
sudo dpkg-scanpackages /offlinePackage/ /dev/null |gzip >/offlinePackage/Packages.gz
注:如果出現錯誤sudo: dpkg-scanpackages: command not found,則需要安裝dpkg-dev工具: sudo apt-get install dpkg-dev
?e.打包成壓縮包,壓縮到根目錄下,
sudo tar zcvf offlinePackage.tar.gz /offlinePackage/
保存offlinePackage.tar.gz檔案到U盤或服務器,需要時拷貝到需要離線安裝的系統上,
? 4.2 將離線源設定為離線ubuntu的本地源
? 做好離線包后,將離線包里的deb包轉移到指定位置,變成本地源,這樣安裝的時候就把該檔案夾(offlinePackage)看做一個"服務器”,下載相應的“安裝包”和“依賴包”進行自動配置,
?(1)拷貝安裝檔案:插入U盤或光碟將offlinePackage.tar.gz復制到根目錄下,解壓到原位置
sudo tar zxvf offlinePackage.tar.gz -C /
?(2)修改系統源source.list之前先進行備份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
?(3)將安裝包所在的源路徑添加到系統源source.list:打開源檔案sources.list并編輯,推薦使用gedit或者nano
sudo gedit /etc/apt/sources.list
或
sudo nano /etc/apt/sources.list
注意: nano模式保存方式是ctrl+O后按回車鍵(^O), 退出編輯模式是ctrl+X(^X)
增加一行,內容如下(注意file:///后頭有一個空格!)
deb file:/// offlinePackage/
添加結果如下圖所示

?(4)更新系統源: 相當于重新建立對新拷貝進來的deb檔案的索引
sudo apt-get update
?(5)安裝程式
? 分別安裝vnc4server,gnome虛擬桌面以及權限設定軟體dconf-editor,
必注意:使用apt-get install -y 軟體名,后面一定要帶–allow-unauthenticated,因為它是私有的,還沒有簽名!
sudo apt-get install -y openssh-server --allow-unauthenticated #(如果沒裝ssh可以順帶安裝)
注1:如果要啟用ssh,可以輸入代碼sudo service ssh start,并查看狀態sudo service ssh status,如果狀態顯示active則表示運行成功,部分內容參考(1)ubuntu上安裝ssh , (2)Ubuntu16.04離線安裝openssh-server , (3)Ubuntu16.04 離線安裝openssh所需的安裝包deb,
注2:不建議使用sshcilent,會報錯,建議使用putty(輕量)或Mobaxterm(功能強大,也能傳輸檔案)進行連接與指令,FileZilla Client進行檔案傳輸,
sudo apt-get install -y vnc4server --allow-unauthenticated
sudo apt-get install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal --allow-unauthenticated
sudo apt-get install -y dconf-editor --allow-unauthenticated
注3:關于centOS的配置,與本地服務器的離線源的進一步配置,請見:為 CentOS 與 Ubuntu 制作離線本地源,
?安裝好后,便可以按照1-3節的內容進行設定與vnc連接了,
5 總結
1-3章主要講了vnc的在線安裝與使用,4章講如何安裝程序變成離線安裝,如果1-3章是離線安裝,則需要提前配置好本地源,安裝的時候apt-get指令改為apt-get -y,安裝指令后加–allow-unauthenticated
注:小白補充內容 sudo = 超級權限下執行命令,super do,比如用apt-get/dpkg命令安裝軟體、用vi/vim/nano/gedit命令修改關鍵檔案等行為會有安全隱患,需要用到比較深層的權限,需要輸入用戶密碼允許運行,
vi/vim/nano/gedit 類似windows的txt編輯器,從前到后,使用越來越方便,但權限越來越低
apt-get install = ,Advanced Packaging Tools - get install 即安裝軟體,centOS則是yum
--allow-unauthenticated 相當于增加私人下載權限
【轉載本文需要附上本文及本文參考的地址鏈接】
解決vncviewer連接ubuntu的灰屏問題 ?? ??
實作Windows直接遠程訪問Ubuntu 16/18 ?? ?? ?? ??
ubuntu遠程安裝離線包 ??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/227615.html
標籤:其他
下一篇:empire3.6.1使用教程
