windows远程登陆Ubuntu图形桌面
摘要:通过windows远程Ubuntu的一般方式都是登入Ubuntu的命令行终端界面,但是有时候可能会有登陆Ubuntu的图形桌面的需求。文本将介绍如何在windows上使用windows自带的远程工具(mstsc)远程登陆Ubuntu的图形界面窗口。
Ubuntu版本:Linux ubuntu98 5.11.0-37-generic #41~20.04.2-Ubuntu SMP Fri Sep 24 09:06:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
第一步:配置远程工具的环境
windows的远程桌面使用的协议为RDP,首先需要再Ubuntu的操作系统中安装xrdp。
sudo apt-get install tightvncserver xrdp
其中,安装xrdp需要依赖安装tightvncserver组件。
第二步:远程控制
在windows的cmd上输入mstsc打开windows远程桌面连接工具,输入需要连接的Ubuntu系统的ip地址,勾选“始终要求凭证”,然后填写用户名如下图:
注意:
1、必须勾选“始终要求凭证”
2、此时仅仅第二步,只能使用root用户才能登进Ubuntu的图形桌面,否则登入后是黑屏。
进入控制界面后,输入用户密码,即可登陆成功。
第三步:普通用户登陆
前面的步骤只有通过root用户才能进入Ubuntu图形桌面,如果想要普通用户也可以登入,还需要修改.ICEauthority文件的权限。将其改为666权限。文件的目录位于"/home/用户"下。
注:第三步未实验成功,并且有的文章说是修改成600权限。
第四步:外网windows主机访问内网Ubuntu主机
先对下面的步骤进行解释:
一、由于windows属于外网主机,Ubuntu是内网主机,想要windows远程Ubuntu,也就相当于windows与Ubuntu需要进行通信,这时候就需要通过内网穿透等方式来实现。
二、windows自带的mstsc远程工具进行远程时的端口默认是3389,并且在Ubuntu上xrdp远程工具进行监听的端口也是3389,windows的mstsc远程工具和Ubuntu的xrdp远程工具基于RDP协议实现两个主机之间的远程控制。正常情况下两个主机的端口号无需修改,但是此处由于需要对Ubuntu主机进行内网穿透,当windows访问Ubuntu实际上是中转访问,首先访问125.64.92.159:21827,然后再转发到ip对应的Ubuntu主机上特定的绑定端口号。所以windows直接访问的主机是125.64.92.159,且只能访问其21827端口。所以windows进行远程控制时首先需要修改默认的远程端口号为21827,只有这样才能与125.64.92.159进行通信。125.64.92.159接收到来自端口21827的数据后,再转发到内网穿透时绑定好的内网Ubuntu固定端口,默认时该固定端口为22,此处需要修改为3389,逻辑在于125.64.92.159与windows的通信后,下一步就需要与Ubuntu进行通信了,而Ubuntu端的远程控制监听端口还是3389。
一、内网穿透
见参考文章:
外网访问内网实战(笔记本上的vscode连接公司电脑进行远程开发)
基于Windows的vscode远程开发环境搭建+内网穿透教程【windows+vscode+SSH+ubuntu+Xshell+Xftp】
此处我已经实现了这个过程,所以略过。
二、修改windows主机进行远程连接的端口
注意:所谓内网穿透,实际上就是一个中转服务器,外网windows无法与内网Ubuntu进行通信,但是中转服务器可以与Ubuntu进行通信,所以外网windows先与中转服务器通信,然后中转服务器再与内网Ubuntu进行通信。此处的windows远程登陆Ubuntu同理,windows先与中转服务器通信,所以windows的远程连接工具先与中转服务器的监听端口进行通信,所以此处就需要修改windows远程通信时的访问端口号为中转服务器的远程控制监听端口号。然后中转服务器再与内网Ubuntu进行通信,此时就需要中转服务器的访问端口号修改为Ubuntu的远程控制监听端口号。这样windows就可以将信息发送给Ubuntu,同理,Ubuntu发送信息给windows也是如此,该修改就是让访问端口号和监听端口号一一对应。
1、修改windows访问中转服务器的访问端口号
打开windows的注册表register。
修改计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
和HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
上面的PortNumber。
如下图所示,原本端口号是3389,此处我将它修改为内网穿透的映射端口号21827。
修改时要注意使用的是十进制还是十六进制方式。
修改端口后,在远程输入IP时,就要显式指定端口号,形如ip:port。
2、修改中转服务器访问Ubuntu的访问端口号
进入内网穿透的配置界面,修改如下,将原来的默认端口22修改为3389。修改好了之后,需要暂停内网穿透服务,然后重新启动该服务,让配置生效。配置如下图: