今天讲的内容没有什么实用价值,纯粹是好玩。
1. xrdp远程桌面连接ubuntu
windows连接ubuntu一般使用ssh,如果需要连接图形化界面,可以用之前介绍过的xming+putty的方式,也可以使用teamviewer。今天介绍直接用windows的远程桌面连接。
新版的ubuntu使用gnome图形界面,需要对xrdp做一些配置,否则会出现远程桌面连接黑屏的现象。
首先安装xrdp,并将xrdp添加到ssl-cert用户组:
sudo apt install xrdp
sudo adduser xrdp ssl-cert
然后修改xrdp配置:
sudo vim /etc/xrdp/startwm.sh
将文档最后两行test和exec注释掉,并添加:gnome-session
还需要对gnome进行配置,可以使用dconf-editor进行可视化配置。dconf-editor类似于windows下的注册表编辑器,安装dconf-editor:
sudo apt install dconf-editor
启动dconf-editor(可在终端直接输入dconf-editor启动,或者到应用程序列表中选择“dconf系统配置编辑器”启动),切换到org->gnome->desktop->remote access->require encrytion,将该选项关闭。
接着还需要开启屏幕共享,到系统设置中(右上角setting)选择“共享/sharing->屏幕共享/Screen Sharing”,将当前的Networks启用。
最后需要重启系统即可。
在windows上用远程桌面,输入ip地址和用户名即可远程连接(注意配置远程桌面的显示分辨率),如果ubuntu上启用了防火墙,则需要更改防火墙规则,允许3389端口(这个默认端口也可以在startwm.sh中修改)。
2. natapp内网穿透
natapp是成都一家公司基于ngrok搭建的内网穿透服务。理论上,自己有一个公网ip也可以的搭建类似的服务,但租用公网ip的费用不便宜,况且natapp提供的免费隧道也能满足简单的应用,要想获得更宽的带宽和更多的协议,也可以通过远低于维护公网IP的费用进行服务升级。
这是natapp的官网,软件下载和文档说明官网上都有。使用也非常简单。
首先需要注册一个帐号,如果要使用免费隧道,则需要实名认证,认证方式也很便捷,输入姓名和身份证号,再通过支付宝扫码进行实名认证。
认证后,可以添加一个免费隧道(免费隧道仅支持http协议),并配置该隧道的映射端口。如下图,是一个已经配置好的隧道,需要将这个token拷贝下来,用于natapp的启动。
实名认证后,下载netapp(有windows、mac、linux版),就是一个可执行文件,如果在mac或linux系统下,需要给该文件可执行权限:
chmod a+x natapp
有两种方式运行这个可执行文件:
- 在命令行中附加authtoken参数
./natapp -authtoken=xxxxxxxxxxx(刚才复制的token)
- 通过配置文件启动
将下面的内容复制保存为config.ini文件,保存到natapp同一目录下,注意修改authtoken字段的值。
有了该配置文件,以后直接启动natapp就可以:
./natapp
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=xxxxxxxx #刚才复制的token
clienttoken= #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=none #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=ERROR #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy= #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
启动成功后,会出现如下内容,其中红框中则为映射到外网的网址,可通过该网址访问内网绑定的端口,每次重启natapp都会分配不同的网址。
有了内网穿透,就可以在内网向外发布服务了。结合前文介绍的xrdp远程连接,可以穿透远控了,也能达到类似teamviewer的效果。(穿透可视化远控其实没什么卵用,配置ssh的22号端口穿透还有点意义,或者在内网发布个网站测试一下也是可以的)。
3. wine运行exe
之前介绍过windows下的linux子系统,让windows也可以跑linux应用。而这个wine是个对称,可以让linux运行windows的exe程序。比如要在ubuntu上跑微信,甚至运行一个windows下的游戏,就可以借助于wine。下图2,没想过ubuntu上也能玩CS吧。
下面介绍wine的安装和配置,包括解决中文字体的问题、输入框无法显示的问题和微信截图黑屏的折中解决方法。
3.1 wine安装
新版ubuntu安装wine比较容易,不会出现依赖包缺失的问题。
首先需要将dpkg设置为支持32位体系架构,然后再安装:
sudo dpkg --add-architecture i386
sudo apt install wine
安装就这么简单,但此时还存在一些问题,如字体缺失的问题,安装微信后输入框不显示输入文字的问题等。这些后面再来解决,先到腾讯官网下载微信安装包(exe文件),下载后直接到下载目录下启动终端,并运行wine weixininstall.exe,后面的安装过程和windows一致。
实际上,wine在用户根目录下新建了一个.wine目录,该目录下有一个drive_c目录,wine将该目录映射为windows的c盘目录,安装程序默认安装在其中。
3.2 wine的配置
wine可以通过winetricks进行配置,安装winetricks,在应用列表里会多出一个红酒杯的图标。
sudo apt install winetricks
3.2.1 修复输入框问题
在终端,通过winetricks安装riched20,可以修复微信等程序输入框看不到输入内容的问题。
winetricks riched20
安装过程中可能会出现网络不可达的问题,可以将我分享在百度网盘的压缩包解压后移动到~/.cache/winetricks目录下:
链接: https://pan.baidu.com/s/19ALfQBISU445d-vFhUf5WQ 密码: oqoi
再次重新执行winetricks riched20就可以安装成功(注意没有sudo)。
安装成功后,微信的输入框就恢复正常了。
3.2.2 修复乱码问题
再来解决乱码的问题。wine安装后,默认没有安装字体文件。可以转到~/.wine/driver_c/windows/Fonts文件夹下看看,是空的。我们只需将windows系统中对应目录下的Fonts文件覆盖进去即可(可以用scp命令从windows向ubuntu拷贝文件),重启后字体即恢复正常。
微信还有一个问题没有修复,就是截图。wine运行微信后,点开截图,会黑屏。但有替代方案,可以使用linux下的flameshot截图软件,截图后复制,直接在微信中粘贴就可以了。
4. ubuntu下的一个好用的截图软件
linux下有一个功能非常强大的截图软件:火焰截图(flameshot)。它不仅能截图,更能对截图进行充分的编辑、涂画、标记、具备的功能更强于QQ截图。
安装也很简单:sudo apt install flameshot
安装后会在应用程序列表中多出一个火焰的图标,右键可选择开始截图,也可以直接启动它,启动后在屏幕右上角托盘处有一个火焰图标,点击后可以选择相关功能。flameshot不仅有linux版本,也有windows版本,免费又好用,还不快去试试,这是github上的地址,寻找mis文件可以在windows上安装。