nomachine连接无显示器的Ubuntu/Debian时黑屏
原因:无外接显示器时,Linux不会启动桌面GUI,或者说显卡就根本没有启动,这就是所谓的headless mode。
解决方法:官方给出了一些解决方案,见NoMachine - Connecting to Linux headless machines with NoMachine – Knowledge Base
方法一:用一个外置的诱骗器来骗Linux启动显卡,这样就有桌面了,这个太麻烦了。
方法二:装一个虚拟显示器:
首先安装xserver-xorg-video-dummy:
sudo apt install xserver-xorg-video-dummy
然后编辑虚拟显示器的配置文件:sudo vim /usr/share/X11/xorg.conf.d/xorg.conf
Section "Device"
Identifier "DummyDevice"
Driver "dummy"
VideoRam 256000
EndSection
Section "Screen"
Identifier "DummyScreen"
Device "DummyDevice"
Monitor "DummyMonitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1920x1080_60.0"
EndSubSection
EndSection
Section "Monitor"
Identifier "DummyMonitor"
HorizSync 30-70
VertRefresh 50-75
ModeLine "1920x1080" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 +Hsync +Vsync
EndSection
然后在设置的电源里面,把息屏改为从不,这样就不会自动登出了。
注意,用这种方法,如果下次要接物理显示器会不亮屏,需要把上面的配置文件删除掉。
方法三,停用X-Server,然后用nomachine自带的显示服务取而代之。
sudo systemctl stop gdm3
sudo /etc/NX/nxserver --restart
这里的gdm3也有可能是lightgdm,sddm之类的东西。
这种方法, 每次重启Linux都要通过SSH来执行以上命令才可以看到图形界面。
使用windows自带的远程工具来连接linux
nomachine毕竟要另外安装,不如使用自带的远程工具来连接Linux,最新版的Linux一般也默认支持这种连接方式了,用的是RDP协议,体验还不错。
首先,需要按照以上所述的方法2来安装一个虚拟显示器(当然,如果本身连着显示器就不必了)
然后,开启Linux的自动登录,因为这个远程连接还不是系统级的软件,用户没有登陆的话,远程连接软件是还没有启动的,也就不能连接,所以要设置自动登陆、自动进入桌面,就会自动启动远程连接服务了。
cd /etc/gdm3
sudo nano daemon.conf
# 或者下面这条,取决于你目录下有哪个
sudo nano custom.conf
把相应的行取消掉注释,然后把用户名改成自己的用户名就好了。我这里把Wayland也关了,不知道影不影响。
最后,开启Linux的远程服务,这里以debian12的gnome环境为例,把远程桌面开了。
上图的密码,就是远程登录时候要输入的密码,可以设置的跟用户密码一样,也可以不一样。
除此之外,还有一个密钥环的密码。密钥环密码不为空白会导致登陆密码发生改变。当初次开启远程连接的时候,会弹出要设置密钥环的窗口,记得把密码设置为空白(是空白,不是0),不然每次重启Linux,上图的登录密码就会自己发生改变。如果没有弹出这个密钥环的窗口,可以去密钥管理的软件里面,把默认密钥环的密码设置为空白,如下图所示。
到此为止,就配置好远程登陆了,打开windows的远程登陆软件。
这里的计算机名称是你的ip地址,需要输入用户名,然后弹出窗口输入密码,即可成功远程。如果出现分辨率太小的问题,改一下就好了。
最后吐槽下gnome4x版本,怎么会有桌面不让放桌面图标的啊,dash也藏起来了hhh,难道说以后的桌面真的就只有一张壁纸了???幸好我有dash to dock插件。