Windows10 Linux子系统安装图形化界面的两种方法及其对比
理论上讲,所有Win10的Linux子系统都可以通过Windows10本机远程桌面和Xming的方法来安装使用图形化界面,笔者目前只接触了Debian系的Linux系统,故以Debian GNU/Linux系统和xfce4为例介绍(Ubuntu系统装完Xming就能使用,在此不再叙述,详情请关注IT之家极客学院,同时本文也是为了方便一些有一定Linux使用经验朋友而写的,不喜勿喷)。另外,如果是Linux使用比较多的话,笔者推荐使用Debian系统,稳定性、依赖方面强过Ubuntu及Kali Linux等。
一、使用Windows10本机远程桌面连接
1.1、首先安装好Debian
具体过程不再叙述,参见IT之家Win10使用进阶:一周年更新14316如何开启Linux Bash命令行,安装好并设置密码之后如下:

1.2.使用国内软件源
众所周知的原因,在国内如果使用官方源的话,更新软件、安装软件会非常的慢,非常痛苦,我们需要替换成国内软件源:
1、在win10资源管理器中打开C:\Users\username\AppData\Local\Packages\TheDebianProject.DebianGNULinux_76v4gfsz19hv4\LocalState\rootfs\etc\apt文件夹(将username替换为你自己的win10账户名)。
2、编辑sources.list文件,用#号注释掉原有的官方更新源,增加国内源。下面我贴出中科大比较稳定的stretch分支的源,软件比较老,但是稳定。然而我个人用的是buster分支,软件比较新,有些奇怪的事,Ubuntu默认用的很多软件的版本就比较新,所以系统稳定性要比Debian差些,求稳的同志们就用下面的源吧:
deb https://mirrors.ustc.edu.cn/debian/ stretch main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian/ stretch main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian/ stretch-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free
deb-src https://mirrors.ustc.edu.cn/debian-security/ stretch/updates main contrib non-free
笔者在此也放出中科大大佬的工具,上面有常用的Linux发行版的国内源文件,已经设置好的,供各位下载:https://mirrors.ustc.edu.cn/repogen/
3、编辑完保存,如图:

1.3.更新软件源
代码:sudo apt-get update

注意:这里有个坑,因为是https协议的,但Win10的Debian子系统,并没有安装apt-transport-https,直接更新会报错,建议第一次更新先使用http协议或者官方源,在装完apt-transport-https之后,再使用1.2中https协议的软件源(Debian的buster以上分支也不需要,stable类的分支必须先安装apt-transport-https才能使用https协议的软件源,使用https协议可以有效防止运营商劫持)。
更新完如图:

1.4.安装xorg
xorg是xfce桌面需要的一个基础依赖性质东西,开机时候提供登陆界面。这里我说的可能不太准确,个人理解就是要装xfce必须先安装xorg,不然使用起来会有些问题,比如缺少这个组件那个组件的,如果装Ubuntu桌面的话替换成kdm,xfce也可以先装xdm,看个人喜好。
代码:sudo apt-get install xorg
大约需要占用361M空间。

选择语言区域(建议选英文,选汉语也没用,就当学英语了),一路回车:


最后那行报错不用管,研究好些天都没解决掉,反正软件安装成功了。
1.5.安装xfce4
代码:sudo apt-get install xfce4

大概需要441M空间,如果不换国内源的话怕是需要下载一天。
1.6.安装并配置xrdp
Xrdp允许Windows或Linux系统通过远程桌面的方式来访问另外一台主机,特别适合本地虚拟机使用,详情参考Linux公社文章:xrdp完美实现Windows远程访问Ubuntu 16.04。
1、安装xrdp,代码:sudo apt-get install xrdp

2、设置使用3390端口
代码:sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini

3、向xsession中写入xfce4-session
代码:sudo echo xfce4-session >~/.xsession
4、重启xrdp服务,代码:sudo service xrdp restart

这时,可能会有防火墙提示,允许就好。
1.7.启动远程桌面
1、在Cortana中搜索远程桌面并启动:

2、点击显示选项,填入本机IP(这里是局域网IP,所以你也可以用局域网内其他Windows10电脑试试,建议使用静态ip)、刚刚设置的端口号、还有你的Linux子系统用户名(也可以使用root账户登陆,比较麻烦,因为Debian默认是禁止使用root账户登陆的),如图:

3、点击链接:


4、输入Linux子系统密码:

5、尽情享(shí)用吧:


至于后面需要做的配置,参见:debian 9安装后需做的几件事。
二、使用Xming及ssh连接
如果你用的Windows10子系统是Ubuntu,那安装完就能用了,很简单的详见IT之家相关教程,理论上所有Linux都可以通过本方法来实现安装,下面是Debian以及Kali Linux等系统需要做的配置,参考了:Use SSH and XMing to Display X Programs From a Linux Computer on a Windows Computer
首先需要安装Debian还有xfce4,与上面第一种方法述1.1至1.5的内容完全一致,在此不再赘述,安装好之后近些如下操作:
2.1.安装xming
没什么特殊的,下载安装,打开就行。
地址:https://xming.en.softonic.com/?ex=REG-60.2
2.2.确定OpenSSH已经安装
在终端执行:sudo apt-get install openssh-server
要是如下图这样,那就是没有安装,输入y确认就是了:

2.3.配置DISPLAY方法运行变量
安装完xming之后你会发现并不能像Ubuntu一样运行DISPLAY=:0 startxfce4指令来启动Debian的应用程序,提示找不到DISPLAY方法,那是没有配置ssh相关内容,我们需要做如下配置:
1、打开${HOME}/.bashrc文档,在最后面加入:
if [ -d "${HOME}/bin" ] ; then
export? PATH="${PATH}:${HOME}/bin"
if [ -f "${HOME}/bin/ssh_login" ] ; then
. "${HOME}/bin/ssh_login"
fi
fi
2、在${HOME}/bin/文件夹下新增ssh_login文件(bin文件夹没有就新建一个),内容如下:
if [ -n "${SSH_CLIENT}" ] ; then
if [ -z "${DISPLAY}" ] ; then
export DISPLAY='localhost:10'
fi
fi
3、给ssh_login文件777权限,代码:sudo chmod 777 ${HOME}/bin/ssh_login



2.4.在终端中启动xfce4桌面
如果你没有配置xming,没改里面东西,那默认实在0号显示器上显示Linux系统的程序,输入代码如下:
DISPLAY=:0 startxfce4
也可以直接启动root账户:
sudo su
DISPLAY=:0 startxfce4
默认状态会只有两个比较简陋的panel,如下图:

你也可以再进行拖动调整,比如笔者上面是Windows10的任务栏,下面是Debian的panel,结合到一起美滋滋:

其实正常状态下,还会启动一个桌面进程的,由于我用的是buster分支的软件源,这就导致软件不是最稳定版本,然后desktop启动失败,于是就剩下这两个panel,然而因祸得福,个人感觉这样很舒服,所以保留了这种,如果你用了我上面写的源,启动后的将会和前面的远程桌面类似。
三、Win10远程桌面与Xming连接的对比
其实实现原理都比较接近,都需要配置一系列东西,但两者体验还是有些不一样的,下面做个简要的对比:
1、安装难易度:
个人感觉,就Debian来讲使用xming的方式安装稍微简单一些,但二者相差不多,如果是Ubuntu,那会更加简单,各位可以自行体验。
2、启动便携度:
相同点是:两者都需要先在powershell或者cmd中先启动bash。
不同点是:远程桌面的方法启动bash后再启动远程桌面,只用配置一次,以后点击链接就可以,相当于每次启动需要鼠标点击一次powershell,输入bash,点击远程桌面,点击链接;
xming的方法需要再启动xming,然后在powershell里输入DISPLAY=:0 starxfce4,但是终端都会记录以前输入的内容,所以也不用每次都输入,其实就我个人而言,xming的方法更加方便启(zhuang)动(bi),哪怕每次都输入DISPLAY=:0 startxfce4。
使用远程桌面的方法启动后,可以关掉powershell了,只要后台服务在运行,就不会影响体验,但是xming不行,如果刚刚那个启动xfce4的powershell关掉,所有打开的窗口都会关闭。
3、使用体验:
采用远程桌面连接的方式,将会有非常完整的沉浸式体验,你会获得一个完整而不割裂的Linux系统,如在电脑上单独安了一个完整的Linux体验:

而使用xming的方法,你会感觉两个系统合二为一了,有种混血儿的感觉,每一个Linux程序都将会开启一个xming窗口,而且这些窗口也支持win10的分屏功能:


4、资源占用情况:在启动系统只开一个文件管理器的情况下,使用远程桌面的方法资源占用稍多,个人猜测可能是远程桌面本身占用的资源稍多一些,另外说一下,两者是可以同时打开的:

5、与Windows10系统的互通性:
文件互通性:两者都支持在两个系统下实时更改文件,但是都需要使用root账户登陆才能完全实现实时更改文档,不然在Windows10下的更改,在Linux下看不见,但在Linux下的更改立刻就能在Windows10上看到。
剪贴板互通性:两者都可以实现剪贴板文本内容的互通,但对于文件就有所不同。如使用远程桌面,文件的话由于两个系统的路径不同,无法从Windows10下粘贴文件到Linux下,如图:

但是可以从Linux下把文件粘贴到Windows10下的,比如粘贴到桌面,这是通过远程桌面本身实现的,如图:

而如果使用xming的话,只能文本互通,文件无法通过剪贴板复制粘贴,有时候还会有意外发生,需要清空剪贴板,比如笔者就在桌面上放了个

6、性能方面
个人实际体验,xming方式的性能较差,比如使用Firefox的时候往往比较卡,这可能是实现方式不同的原因,尝试过提高xming优先级,也没多大用。
综上所述,如果希望有完整的沉浸式Linux体验,推荐使用远程桌面连接的方式,如果主要用的还是Windows10,希望使用Windows10的同时也使用Linux,那么笔者推荐使用xming的方式,这种方式可以将两个系统同时结合起来,从而获得很神奇的体验。在此再感谢下参考文献中的大神,有了他们的无私奉献,我们才能学到更多的知识。
参考文献:
1、Win10使用进阶:一周年更新14316如何开启Linux Bash命令行
3、使用xrdp实现windows远程桌面ubuntu linux
5、Use SSH and XMing to Display X Programs From a Linux Computer on a Windows Computer
Windows10 Linux子系统安装图形化界面的两种方法及其对比的更多相关文章
- Linux服务器安装图形化界面
Linux服务器安装图形化界面 1.检查有无安装gnome桌面 [root@localhost ~]# rpm -qa |grep gnome 2.查看可安装组件列表 [root@localhost ...
- linux访问windows共享文件夹的两种方法
有时需要在linux下需要访问windows的共享文件夹,可以使用mount挂载或者使用samba连接. 1.mount挂载 首先创建被挂载的目录: $ mkdir windows 将共享文件夹挂载到 ...
- (转)linux访问windows共享文件夹的两种方法
有时需要在linux下访问window的共享文件,可以使用mount挂载或使用samba连接. 1,mount挂载 $ mkdir windows 将共享文件夹挂载到windows文件夹: mount ...
- Linux上安装Perl模块的两种方法
Linux/Unix下安装Perl模块有两种方法:手工安装和自动安装.第一种方法是从CPAN上下载 您需要的模块,手工编译.安装.第二种方法是联上internet,使用一个叫做CPAN的模块自动完 ...
- Linux(Centos)安装图形化界面步骤
最近有重新来捣鼓捣鼓Linux了,这次撸的版本是centos7.4的,虽然说是不要桌面,但是感觉还是安装一下比较好balalalala.........废话不说的直接进入正题: 安装X 首先安装X(X ...
- linux服务器上安装jdk8的两种方法
这里介绍两种安装方式: yum安装(力荐) 从官网下载包安装 获得一台linux服务器 要在linux下安装jdk,首先你得先有一台linux服务器,虚拟机或者租一台都可以 yum安装jdk 在l ...
- Linux 第一个静态库 (两种方法)
方法1 --------------------------------------------- Linux下 静态库 一般为.a为扩展名 类似 lib***.a 的文件名.利用静态函数库编译 ...
- Win7系统取消登录界面的两种方法(图文)
windows7系统设置电脑密码后,即使取消密码,也会出现登录界面 ,每次都要点击用户图标才能进入系统,这样比较麻烦.那么有什么办法可以取消登录界面呢?方法当然是有的,阅读下文教程,我们一起来看下Wi ...
- jQuery中清空元素.empty()和.html(''),两种方法的对比
jQuery 中有 .empty() 和 .html() 两种方式,都能够清空所选父元素中的所有子元素.但是这两者清空元素的方式上,有着很大的区别: 1.empty() jQuery对象.empty( ...
- mybatis学习之路----批量更新数据两种方法效率对比
原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...
随机推荐
- webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全
webpack 的运行流程是一个串行的流程,从启动到结束会依次执行以下步骤 : 1. 初始化参数:在配置文件,读取并合并参数,得到最终的参数 : 2. 开始编译:拿着上一步的参数初始化 Compile ...
- kotlin协程——>select 表达式(实验性的)
select 表达式(实验性的) select 表达式可以同时等待多个挂起函数,并 选择 第⼀个可⽤的. 在通道中 select 我们现在有两个字符串⽣产者:fizz 和 buzz .其中 fizz ...
- AWR分享案例
[深度长文]循序渐进解读Oracle AWR性能分析报告 - ORACLE - dbaplus社群:围绕Data.Blockchain.AiOps的企业级专业社群.技术大咖.原创干货,每天精品原创文章 ...
- 征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略
近期,KubeSphere 社区的讨论中频繁出现关于 Docker 官方镜像仓库访问受限的问题. 本文旨在为您提供一个详细的指南, 展示在 Docker 官方镜像访问受限的情况下,如何通过 KubeK ...
- linux 配置apache的虚拟主机
基于web的开发,若没有配置虚拟主机,一直在浏览器输入localhost/projectname有点复杂 特别是类似thinkphp框架的,一大串:localhost/php/tp5/public.. ...
- Chrome使用回退,出现表单提交失败,ERR_CACHE_MISS问题
是什么.为什么.怎么办 "ERR_CACHE_MISS" 错误通常发生在你使用浏览器的"返回"按钮时.这种错误与浏览器处理缓存数据的方式有关,特别是在处理表单和 ...
- (系列九)使用Vue3+Element Plus创建前端框架(附源码)
说明 该文章是属于OverallAuth2.0系列文章,每周更新一篇该系列文章(从0到1完成系统开发). 该系统文章,我会尽量说的非常详细,做到不管新手.老手都能看懂. 说明:OverallAuth2 ...
- 使用netsh命令行进行网络管理
显示网络适配器状态 netsh interface show interface 显示各个网络适配器的名称和状态 启用(禁用)网络适配器 本系列命令需要以"以管理员身份运行". 禁 ...
- NES 名词解释
本文介绍了 NES(FC.红白机.小霸王)中一些名词或者术语,主要与 PPU 有关. Tile 8x8 像素图像.每像素 2 比特, 共 16 字节大小.每个像素可以使用 4 种颜色. Sprite ...
- 为什么我越来越喜欢用DDD — DDD架构篇(1)
Hello DDD DDD 是一种软件设计方法,DDD 是指导我们做软件工程设计的一种手段.它提供了用切割工程模型的各类技巧,如:领域.界限上下文.实体.值对象.聚合.工厂.仓储等.通过 DDD 的指 ...