VNC是一个远程桌面协议。按照本文的说明进行操作可以实现用VNC对Ubuntu 20.04进行远程控制。一般的VNC安装方式在主机没有插显示器的时候是无法使用的。下面的操作可以在主机有显示器和没有显示器时都能够正常工作。

首先安装x11vnc

sudo apt-get install x11vnc -y

设置vnc密码

sudo x11vnc -storepasswd /etc/x11vnc.pass 

创建x11vnc自启动服务

创建 /etc/systemd/system/x11vnc.service,并写入以下内容

[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth /run/user/1000/gdm/Xauthority -forever -loop -noxdamage -repeat -rfbauth /etc/x11vnc.pass -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target

启动x11vnc服务

sudo systemctl enable x11vnc
sudo service x11vnc start

此时如果远程的主机上接了显示器,那么就可以在局域网通过VNC进行访问了。

为了能够保证远程主机无论是否有显示器,我们都能通过VNC进行远程访问,我们还要做下面的修改

创建默认的xorg.conf文件

sudo Xorg :1 -configure

此时程序会生成 /root/xorg.conf.new文件

我的默认文件内容如下

Section "ServerLayout"
 Identifier   "X.org Configured"
 Screen   0 "Screen0" 0 0
 InputDevice  "Mouse0" "CorePointer"
 InputDevice  "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
 ModulePath  "/usr/lib/xorg/modules"
 FontPath   "/usr/share/fonts/X11/misc"
 FontPath   "/usr/share/fonts/X11/cyrillic"
 FontPath   "/usr/share/fonts/X11/100dpi/:unscaled"
 FontPath   "/usr/share/fonts/X11/75dpi/:unscaled"
 FontPath   "/usr/share/fonts/X11/Type1"
 FontPath   "/usr/share/fonts/X11/100dpi"
 FontPath   "/usr/share/fonts/X11/75dpi"
 FontPath   "built-ins"
EndSection

Section "Module"
 Load "glx"
EndSection

Section "InputDevice"
 Identifier "Keyboard0"
 Driver   "kbd"
EndSection

Section "InputDevice"
 Identifier "Mouse0"
 Driver   "mouse"
 Option   "Protocol" "auto"
 Option   "Device" "/dev/input/mice"
 Option   "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
 Identifier  "Monitor0"
 VendorName  "Monitor Vendor"
 ModelName  "Monitor Model"
EndSection

Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
    ### <percent>: "<f>%"
    ### [arg]: arg optional
    #Option   "Accel"        # [<bool>]
    #Option   "AccelMethod"     # <str>
    #Option   "Backlight"      # <str>
    #Option   "CustomEDID"     # <str>
    #Option   "DRI"         # <str>
    #Option   "Present"       # [<bool>]
    #Option   "ColorKey"      # <i>
    #Option   "VideoKey"      # <i>
    #Option   "Tiling"       # [<bool>]
    #Option   "LinearFramebuffer"  # [<bool>]
    #Option   "HWRotation"     # [<bool>]
    #Option   "VSync"        # [<bool>]
    #Option   "PageFlip"      # [<bool>]
    #Option   "SwapbuffersWait"   # [<bool>]
    #Option   "TripleBuffer"    # [<bool>]
    #Option   "XvPreferOverlay"   # [<bool>]
    #Option   "HotPlug"       # [<bool>]
    #Option   "ReprobeOutputs"   # [<bool>]
    #Option   "XvMC"        # [<bool>]
    #Option   "ZaphodHeads"     # <str>
    #Option   "VirtualHeads"    # <i>
    #Option   "TearFree"      # [<bool>]
    #Option   "PerCrtcPixmaps"   # [<bool>]
    #Option   "FallbackDebug"    # [<bool>]
    #Option   "DebugFlushBatches"  # [<bool>]
    #Option   "DebugFlushCaches"  # [<bool>]
    #Option   "DebugWait"      # [<bool>]
    #Option   "BufferCache"     # [<bool>]
 Identifier "Card0"
 Driver   "intel"
 BusID    "PCI:0:2:0"
EndSection

Section "Screen"
 Identifier "Screen0"
 Device   "Card0"
 Monitor  "Monitor0"
 SubSection "Display"
 Viewport  0 0
 Depth   1
 EndSubSection
 SubSection "Display"
 Viewport  0 0
 Depth   4
 EndSubSection
 SubSection "Display"
 Viewport  0 0
 Depth   8
 EndSubSection
 SubSection "Display"
 Viewport  0 0
 Depth   15
 EndSubSection
 SubSection "Display"
 Viewport  0 0
 Depth   16
 EndSubSection
 SubSection "Display"
 Viewport  0 0
 Depth   24
 EndSubSection
EndSection

将此文件复制至 /usr/share/X11/xorg.conf.d/xorg.conf

这个文件保证在主机上插有显示器的时候,系统界面能在显示器上正常显示。下面我们再给系统添加一个虚拟显示器,当主机没有显示器的时候系统就使用这个虚拟显示器。

安装虚拟显卡驱动

sudo apt install xserver-xorg-video-dummy

在这个文件的最后添加下面的内容

Section "Monitor"
 Identifier "Monitor1"
 HorizSync  1.0 - 2000.0
 VertRefresh 1.0 - 200.0
 # Add 16:9 modes, others are automatically detected.
 Modeline "1280x720" 74.48 1280 1336 1472 1664 720 721 724 746
 Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection


Section "Device"
 Identifier "Card1"
 Driver "dummy"
 VideoRam 256000
EndSection

Section "Screen"
 DefaultDepth 24
 Identifier "Screen1"
 Device "Card1"
 Monitor "Monitor1"
 SubSection "Display"
  Depth 24
  Modes "1920x1080"
 EndSubSection
EndSection

这样我们就创建了一个使用虚拟显卡的虚拟显示器。为了让虚拟的显示器和真实显示器都能工作,我们需要把最上面的ServerLayout 进行更改

Section "ServerLayout"
    Identifier   "X.org Configured"
    Screen   0 "Screen0" 0 0
 Screen   1 "Screen1" 0 0
EndSection

现在重新启动远程电脑,就可以在没有显示器的情况下远程了。

以上的方法还有一个问题。就是在用户没有登录的其情况下是没办法远程的。所以需要把用户设置成自动登录。

标签:
Ubuntu20.04,VNC,安装,Ubuntu20.04,VNC,设置

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“Ubuntu20.04 VNC 安装与设置实现”
暂无“Ubuntu20.04 VNC 安装与设置实现”评论...

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。