Linux虚拟远控桌面

折腾了好久终于搞好了这个,说说这个作用吧

对于一般的电脑,如果不插入显示屏,那么显卡就不干活,功耗等会压制的非常低,同时桌面环境无法使用;而接入了显示屏后,既要考虑能耗,被偷看等问题,修改分辨率刷新率又成为新问题。总不能专门为了远程连接整一个4k屏幕吧(雾)

常见的解决方案可能有买一个显卡欺骗器,显卡欺骗器简单直接,插入后模拟显示屏,完事。对于Windows办公,很多人也喜欢配合向日葵远控,效果还真不错。不过问题是显卡欺骗器一般只支持一种协议+刷新率,不能调节,也会占用一个HDMI/DP接口,也需要花钱买,同时生成这种东西多半为小厂家,风险不可控。

这里我使用的是虚拟屏幕+VNC远控,支持DIV分辨率,远控效果好延迟低,也避免了显示器功耗。

在Ubuntu中创建一个虚拟显示器并通过其他设备访问,可以通过以下步骤来实现:

前提:被控主机:安装好ssh,Ubuntu系统(其它系统类似),自己主机:下载VNC_Viewer

1. 安装虚拟显示器驱动

首先,安装虚拟显示器驱动(如xserver-xorg-video-dummy),这是一个虚拟的显卡驱动程序,允许创建一个虚拟显示器。

sudo apt update
sudo apt install xserver-xorg-video-dummy

2. 配置Xorg以使用虚拟显示器

创建或编辑Xorg配置文件,以添加一个虚拟显示器。编辑/etc/X11/xorg.conf文件(如果没有此文件,可以新建一个),并添加以下内容:

Section "Device"
    Identifier  "Configured Video Device"
    Driver      "dummy"
EndSection

Section "Monitor"
    Identifier  "Configured Monitor"
    HorizSync   28.0-80.0
    VertRefresh 48.0-75.0
EndSection

Section "Screen"
    Identifier "Default Screen"
    Monitor    "Configured Monitor"
    Device     "Configured Video Device"
    DefaultDepth 24
    SubSection "Display"
        Depth   24
        Modes   "1920x1080"
    EndSubSection
EndSection

Modes字段中,你可以根据需要设置分辨率,例如 "1920x1080""1280x720" 等。

3. 重启X服务器

在编辑好配置文件后,重启X服务器以应用更改:

sudo systemctl restart display-manager

4. 安装并配置VNC服务器

为了远程访问这个虚拟显示器,可以安装VNC服务器。TigerVNCx11vnc是常用的VNC服务器。

安装TigerVNC

sudo apt install tigervnc-standalone-server

配置文件

nano ~/.vnc/xstartup

#!/bin/sh

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

. /etc/profile.d/apps-bin-path.sh
. /etc/profile.d/xdg_dirs_desktop_session.sh

export GNOME_SHELL_SESSION_MODE=ubuntu

XAUTHORITY=$HOME/.Xauthority
export XAUTHORITY
export DISPLAY=:1
export DRI_PRIME=1

/usr/bin/gnome-session --disable-acceleration-check

缺啥库补啥库

从这里往后,都需要用SSH远控操作,这是5901转发本机,-p为指定ssh端口,默认为22,我这里自己修改了

ssh -L 5901:localhost:5901 djs@10.80.168.94 -p 2222

启动VNC服务器

配置VNC服务器的显示器设置,例如,拥有一个2k屏

vncserver :1 -geometry 2560x1440 -depth 24

如果是这样,那你就成功了。如果被占用,就vncserver kill :1,杀了

5. 远程访问

打开VNC_Viewer,配置VNC Server:

localhost:5901

输入连接即可

建议设置永不息屏,因为我登录时候卡过,bug随机触发,原理未知

想以后再外接显卡,感觉更酷!

6. 配置开机启动(可选)

为了每次启动时都自动运行虚拟显示器和VNC服务,可以将VNC服务器添加到系统启动项中。创建一个systemd服务:

sudo nano /etc/systemd/system/vncserver@.service

并添加以下内容:

[Unit]
Description=Sta   rt TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=your_username
PAMName=login
PIDFile=/home/your_username/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver :%i -geometry 1920x1080 -depth 24
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

your_username替换为你的用户名。然后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@1.service
sudo systemctl start vncserver@1.service

完成后,VNC服务将自动启动,并可以通过其他设备访问虚拟显示器。

对于直接连接显示屏

/usr/bin/x11vnc -auth /run/sddm/xauth_LwBQCn -display :0 -forever -loop -noxdamage -bg

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇