1. 程式人生 > >windows遠端登入 ubuntu Linux 系統及互連共享桌面

windows遠端登入 ubuntu Linux 系統及互連共享桌面

一、windows直連Ubuntu16.04共享桌面

1、開啟終端,安裝xrdp,vncserver

sudo apt-get install xrdp vnc4server xbase-clients

2、安裝desktop sharing(Ubuntu16.04預設已經安裝),可以到應用商店下載。開啟desktop sharing,設定如下

這裡寫圖片描述

3、 安裝安裝dconf-editor,取消許可權限制

sudo apt-get install dconf-editor

dconf-editor設定:org > gnome > desktop > remote-access,取消 “requlre-encryption”

4、 windows 遠端登陸

cmd
mstsc
選擇vnc-any
輸入Ubuntu IP地址
埠 5900
桌面共享設定的密碼

xrdp支援xfce4和mate桌面,不支援gnome和ubuntu桌面

準備工作:

/usr/share/applications目錄下開啟“桌面共享”選項,桌面共享選項中首先要開啟共享,關於是否允許其他使用者控制,遠端連線時是否需要本機確認,遠端連線的密碼等專案根據需要自己設定。如果需要從公網即外部網路訪問此ubuntu計算機需要開啟”自動配置UPnP路由器開放和轉發埠專案”。一般建議如下圖(可以按自己的要求設定):

這裡寫圖片描述

很多情況下 xrdp 支援不了gnome,解決辦法就是裝個xface 介面。

××××××××××××××××××××××××××××

xrdp的配置文件在/etc/xrdp目錄下的xrdp.ini和sesman.ini

xrdp.ini 關鍵部分在globals

[globals]
bitmap_cache=yes       #點陣圖快取
bitmap_compression=yes #點陣圖壓縮
port=3389              #監聽埠
crypt_level=low        #加密程度(low為40位,high為128位,medium為雙40位)
channel_code=1         #不知道是什麼
max_bpp=24
XRDP最大連線數
[xrdp1] name=sesman-Xvnc XRDP的連線模式 lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1

sesman.ini

[Globals]
ListenAddress=127.0.0.1      #監聽ip地址(預設即可)
ListenPort=3350              #監聽埠(預設即可)
EnableUserWindowManager=1    #1為開啟,可讓使用者自定義自己的啟動指令碼
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=1              #允許root登陸
MaxLoginRetry=4               #最大重試次數
TerminalServerUsers=tSUSErs   #允許連線的使用者組(如果不存在則預設全部使用者允許連線)
TerminalServerAdmins=tsadmins #允許連線的超級使用者(如果不存在則預設全部使用者允許連線)

[Sessions]
MaxSessions=10           #最大會話數

KillDisconnected=0       #是否立即關閉斷開的連線(如果為1,則斷開連線後會自動登出)
IdleTimeLimit=0          #空閒會話時間限制(0為沒有限制)
DisconnectedTimeLimit=0  #斷開連線的存活時間(0為沒有限制)

[Logging]
LogFile=./sesman.log     #登陸日誌檔案
LogLevel=DEBUG           #登陸日誌記錄等級(級別分別為,core,error,warn,info,debug)
EnableSyslog=0           #是否開啟日誌
SyslogLevel=DEBUG        #系統日誌記錄等級

執行一段時間後,出現xrdp_mm_process_login_response: login failed

問題原因:遠端桌面沒有正確關閉,雖然在windows 系統關閉遠端桌面連線,但是在裡linux上的程序還在執行,導致連線數量達到上限,出現問題。
解決:通過設定sesman.in檔案內的引數,解決。
Set session limits to avoid login failed error

[Sessions]
X11DisplayOffset=10
MaxSessions=100 #將最大會話限制改大
KillDisconnected=0
IdleTimeLimit=0
DisconnectedTimeLimit=0

將KillDisconnected=1;則每次斷開連線時,linux都會關閉會話程序。不建議修改KillDisconnected,否則會自動關閉回話程序。最後重啟xrdp即可。

重啟xrdp

sudo /etc/init.d/xrdp restart
或者
sudo service xrdp restart

××××××××××××××××××××××××××××

二、ubuntu16.04搭建xrdp遠端xface桌面連結,xface桌面太難看且不好使用

1. 安裝 XRDP及 vncserver

 sudo apt-get install tightvncserver xrdp 
 sudo apt-get install vnc4server tightvncserver

* 2. 安裝 Xfce桌面環境*

 sudo apt-get install xubuntu-desktop

* 3. 設定 xRDP*

 cd /home/youruser(youruser 是每個人自己的使用者名稱)
 echo “xfce4-session” >~/.xsession

* 4. 設定配置檔案*

#重啟xrdp
sudo /etc/init.d/xrdp restart
或者
sudo service xrdp restart

此方法不需要額外修改配置檔案

$  :  sudo gedit ~/.vnc/xstartup 

三、ubuntu16.04搭建xrdp遠端mate桌面連結

安裝mate桌面

sudo apt-get install mate-core mate-desktop-environment mate-notification-daemon

安裝tightvncserver

sudo apt-get install tightvncserver

安裝xrdp

sudo apt-get install xrdp

配置xrdp

echo mate-session >~/.xsession
gedit /etc/xrdp/startwm.sh
#在./etc/X11/Xsession前插入
mate-session
#重啟xrdp
sudo /etc/init.d/xrdp restart
或者
sudo service xrdp restart

要注意地方

一定要先裝tightvncserver後裝xrdp,不能夠裝vnc4server,已改為tightvncserver.

解除安裝xrdp和tightvncserver

sudo apt-get purge xrdp
sudo apt-get purge tightvncserver

四、Ubuntu 16.04: Remote connect to Unity with VNC/XRDP

1 Install tigervnc

Running the following script will install tigervnc

#!/bin/sh

# Refresh repository.
sudo apt update -y

# Install git and devscript.
sudo apt install -y git devscript

# Remove vnc4server.
sudo apt remove -y vnc4server

# Create working directory.
mkdir tigervnc
cd tigervnc

# Download source code.
git clone https://github.com/TigerVNC/tigervnc
cd tigervnc/

# Avoid compiler error.
git checkout ff872614b507d0aa8bfbd09ef41550390cfe658a

# Prepare to build package.
ln -s contrib/packages/deb/ubuntu-xenial/debian
chmod a+x debian/rules
sudo apt install -y -o 'apt::install-recommends=true' \
     `dpkg-checkbuilddeps 2>&1 | \
sed -e 's/.*build dependencies://g' -e 's/([^)]*)//g'`

# Build package.
fakeroot debian/rules binary
cd ..

# Install package with resolving dependent package.
sudo dpkg -i *.deb || (sudo apt-get -f install -y ; sudo dpkg -i *.deb || exit 1)
cd ..

2 ${HOME}/.xsession

Create the following .xsession

$ cat ~/.xsession
/usr/lib/gnome-session/gnome-session-binary --session=ubuntu &
/usr/lib/x86_64-linux-gnu/unity/unity-panel-service &
/usr/lib/unity-settings-daemon/unity-settings-daemon &

for indicator in /usr/lib/x86_64-linux-gnu/indicator-*; do
  basename=`basename ${indicator}`
  dirname=`dirname ${indicator}`
  service=${dirname}/${basename}/${basename}-service
  ${service} &
done

unity

3 Add gnome-control-center

With this article’s configuration, selecting “Sytem settings…” at the upper right will call gnome-control-center instead of unity-control-center. Add gnome-control-center which is symbolic link to unity-control-center.

$ sudo ln -s /usr/bin/unity-control-center /usr/bin/gnome-control-center

4 Run VNC server

Create password with vncpasswd

$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Run vncserver. Remote access port is 5900 + display nummber. A port of below example is 5901

$ vncserver

New 'ubuntu-16:1 (hiroom2)' desktop is ubuntu-16:1

Starting applications specified in /home/hiroom2/.vnc/xstartup
Log file is /home/hiroom2/.vnc/ubuntu-16:1.log

5 Run XRDP server

$ sudo apt install -y xrdp

五、Ubuntu 16.04: Remote connect to GNOME Classic Desktop with VNC/XRDP

1 Preparation

Remove vnc4server and tightvncserver.
You can also switch vncserver to tigervncserver with update-alternatives command.

$ sudo apt remove -y vnc4server tightvncserver

Install git and devscripts

$ sudo apt install -y git and devscripts

Install packages for GNOME Classic Desktop

$ sudo apt install -y gnome-panel metacity

2 Install tigervncserver

tigervnc repository already has a devscripts files for Ubuntu 16.04.
I with that tigervnc ported to xenial-update.

Download tigervnc from repository. Checkout with hash which was used by this article.

$ mkdir tigervnc
$ cd tigervnc
$ git clone https://github.com/TigerVNC/tigervnc
$ cd tigervnc/
$ git checkout 044e2b87da7121ef6cbd59e88b101d7d8e282896 -b 044e2b87da7121ef6cbd59e88b101d7d8e282896

Move devscripts files to the top of directory with symbolic link

$ ln -s contrib/packages/deb/ubuntu-xenial/debian
Install packages for building tigervnc.
$ sudo apt install -y $(grep Build-Depends: debian/control | \
sed -e 's/Build-Depends://g' -e 's/([^\)]*)//g' -e 's/,//g')

Build tigervnc.

$ chmod a+x debian/rules
$ fakeroot debian/rules binary

Install deb files while installing depend package with running “apt -f install”.

$ cd ..
$ sudo dpkg -i *.deb || (sudo apt -f install -y; sudo dpkg -i *.deb)
$ cd ..

3 ${HOME}/.xsessionrc

This article will not use .vnc/.xstartup and .xsession, will use .xsessionrc which run program for GNOME Classic Desktop.

$ cat <<EOF > ~/.xsessionrc
gnome-panel &
metacity &
EOF
$ rm ~/.xsession

4 Run VNC server

Create password with vncpasswd

$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

Run vncserver. Remote access port is 5900 + display nummber.
A port of below example is 5901.

$ vncserver

New 'ubuntu-16:1 (hiroom2)' desktop is ubuntu-16:1

Starting applications specified in /home/hiroom2/.vnc/xstartup
Log file is /home/hiroom2/.vnc/ubuntu-16:1.log

5 Run XRDP server

Install and run xrdp

$ sudo apt install -y xrdp
$ sudo systemctl enable xrdp
$ sudo systemctl restart xrdp

六、ubuntu中通過remmina遠端連線終端軟體通過rdp協議連線win7

1. 在win7中開啟允許遠端訪問
2. ubuntu中開啟remmina軟體,輸入win7的ip,username,password就可以連線了

可能出現的問題

  1. 安裝 XRDP及 vncserver
  sudo apt-get install tightvncserver xrdp 
  sudo apt-get install vnc4server tightvncserver
  2. 安裝 Gnome桌面環境
    sudo apt-get install gnome-panel
  3. 設定 xRDP
    cd /home/youruser(youruser 是每個人自己的使用者名稱)
     echo “gnome-session --session=ubuntu-2d" >.xsession
  4. 設定配置檔案
      sudo /etc/init.d/xrdp restart

sudo apt-get install tightvncserver xrdp
sudo apt-get install vnc4server tightvncserver
echo “gnome-session –session=gnome-classic” >~/.xsession
sudo /etc/init.d/xrdp restart
配置後,結果會出現背景是灰色的情況,說明xrdp不支援GNOME,建議安裝xface介面。

經常會出現 windows無法遠端連線的情況,ssh 也是可以的。雖然IP都是正確的,這是因為你沒有安裝xrdp
這裡寫圖片描述

開啟終端:依次安裝

sudo apt-get install tightvncserver xrdp
sudo apt-get install vnc4server tightvncserver

安裝完畢以後,執行以下命令(該命令的作用是由於安裝了 gnome桌面,ubuntu12.04中同時存在unity、GNOME多個桌面管理器,需要啟動的時候指定一個,不然即使遠端登入驗證成功以後,也只是背景,其他什麼也沒有)

sudo /etc/init.d/xrdp restart

若出現出現connecting to sesman ip 127.0.0.1 port 3350,而無其他問題顯示,則需要重啟伺服器

七、Ubuntu 16.04: Remote connect to windows Desktop with rdesktop

rdesktop IP

八、SSH遠端連線 Ubuntu

1. 安裝 open ssh

sudo apt-get install openssh-server

2. 修改root密碼

sudo passwd root

3. 輯配置檔案,允許以 root 使用者通過 ssh 登入

sudo vi /etc/ssh/sshd_config
找到:PermitRootLogin prohibit-password禁用
新增:PermitRootLogin yes
sudo service ssh restart

參考文獻