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
參考文獻