https://blog.csdn.net/qq_22370409/article/details/88914093
很多情况下,有必要的使用Windows 远程登录Ubuntu系统继续学习以及工作。主要分为两种。
第一种:通过SSH服务(使用xshell/SecureCrt等工具)来远程访问,编写终端命令,不过这个是无界面的,很多人也喜欢这种方式,因为快捷方便,但是不足的地方没有可视化图形界面。如果工作或者学习当中需要图形界面的操作,则选择第二种
第二种:通过可视化界面远程访问,像Windows下的自带的远程工具一样,能够以图形化的界面远程操作完成以下使用SSH连接无法实现的操作。
该文章只讲述第二种,如有看客需要第一种,请自行百度或者留言。
在Ubuntu这一端,在终端执行以下指令:
1.
sudo apt-get install xrdp
2.
sudo apt-get install vnc4server // Ubuntu 20.04 则 sudo apt install tightvncserver
3.
sudo apt-get install xubuntu-desktop
安装完毕后:
4. 继续执行 echo "xfce4-session" >~/.xsession
5. 进入系统-》首选项-》桌面共享,或者直接搜索桌面共享,如图所示
将【允许其他人查看您的桌面】这一项勾上,如图所示:
6. 在终端执行:
sudo service xrdp restart
7. 最后查询Ubuntu的 IP地址
在终端下执行 ifconfig 指令获得ip地址
以上就是在Ubuntu的基本设置。
下面操作请在Windows下执行
按win+r 跳出如下窗口,并输入mstsc,回车
然后输入 Ubuntu的ip 地址 如:192.168.0.103,回车即可
然后将按以下图片所示:
Module : 默认不变
username: 输入ubuntu的用户名
password: 输入 ubuntu用户的对应密码即可。
以上是完成基本远程连接的操作。
以下是各种错误的解决方案:
如果你按上面执行后还是无法远程连接,请多次检查设置后,再看下文:
第一步: ping ubuntu电脑的对应ip,来排除是否网络问题:
ping 192.168.0.103
PING 192.168.0.103 56(84) bytes of data.
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=8.91 ms
说明网络不是问题,如果不是如上显示请检查网络问题
第二步: 在Ubuntu电脑上或者ssh进入
执行 /etc/init.d/xrdp restart //启动 xrdp 服务
Stopping xrdp: sesman xrdp.
Starting xrdp: It looks like xrdp is allready running,
if not delete the xrdp.pid file and try again xrdp sesman.
结果出错
解决方案:
查看是否还有xrdp 进程在运行
root@healer:~# ps -A | grep sesman
13244 pts/3 00:00:00 sesman
root@healer:~# ps -A | grep xrdp
显示没有xrdp 进程在运行,启动 xrdp 进程
root@healer:~# /etc/init.d/xrdp start //依然出错
Starting xrdp: It looks like xrdp is allready running,
if not delete the xrdp.pid file and try again
删除 xrdp.pid 文件再启动
root@healer:~# rm /var/run/xrdp/xrdp.pid
root@healer:~# # /etc/init.d/xrdp start
Starting xrdp: xrdp sesman.
root@healer:/var/run/xrdp# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3350 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5910 0.0.0.0:* LISTEN
最后:
启动xrdp服务,
sudo /etc/init.d/xrdp restart
此时会启用相应端口,配置方面默认即可。
通过命令:
netstat -tnl
查看 3350 3389 5910 这三个端口处于LISTEN,一般就没问题了。
再重新在windows电脑上远程连接。
如果还是远程连接不上:请执行以下操作
sudo vim /etc/xrdp/sesman.ini,添加如下两行:
param8=-SecurityTypes
param9=None
接着执行
rm /var/run/xrdp/xrdp.pid
sudo /etc/init.d/xrdp restart
最后windows那端继续执行远程链接即可。
运行一段时间后,出现xrdp_mm_process_login_response: login failed
问题原因:远程桌面没有正确关闭,虽然在windows 系统关闭远程桌面连接,但是在里linux上的进程还在运行,导致连接数量达到上限,出现问题。
解决:通过设置sesman.in文件内的参数,解决。
root@healer:~# cat /etc/xrdp/sesman.ini
[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=1
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh
[Security]
AllowRootLogin=1
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
[Sessions]
X11DisplayOffset=10
MaxSessions=50
KillDisconnected=1
IdleTimeLimit=0
DisconnectedTimeLimit=0
[Logging]
LogFile=/var/log/xrdp-sesman.log
LogLevel=DEBUG
EnableSyslog=0
SyslogLevel=DEBUG
[X11rdp]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp
[Xvnc]
param1=-bs
param2=-ac
param3=-nolisten
param4=tcp
param5=-localhost
param6=-dpi
param7=96
可以修改会话设置 :将最大会话限制该大 MaxSessions=50
将KillDisconnected=1;则每次断开连接时,linux都会关闭会话进程。
然后重启/etc/init.d/xrdp restart 就可解决问题
————————————————
原文链接:https://blog.csdn.net/qq_22370409/article/details/88914093