• WSL2-ubuntu18.04配置笔记5:基于vnc和xfce4实现远程桌面


    • 为了防止因为配置桌面系统导致系统意外崩溃,首先对WSL系统进行备份,然后再进行配置

    1. 系统备份

    1.1 首先彻底关闭退出WSL2 ubuntu系统 ,在powshell中运行

    • 查看正在WSL发行版本
    wsl --list --verbose
    
    • 1
    NAME                   STATE           VERSION
    * docker-desktop-data    Running         2
      docker-desktop         Running         2
      Ubuntu-18.04           Running         2
    
    • 1
    • 2
    • 3
    • 4
    • 关闭所有版本
    wsl --shutdown
    wsl --list--verbose
    
    • 1
    • 2

    可以看到所有的版本都已经关闭

     NAME                   STATE           VERSION
    * docker-desktop-data    Stopped         2
      docker-desktop         Stopped         2
      Ubuntu-18.04           Stopped         2
    
    • 1
    • 2
    • 3
    • 4

    1.2 打包备份系统

    在powshell中操作
    wsl --export

    • 查看现有的ubuntu
    wsl -l -v 
    
    • 1
      NAME                   STATE           VERSION
    * docker-desktop-data    Stopped         2
      docker-desktop         Stopped         2
      Ubuntu-18.04           Stopped         2
    
    • 1
    • 2
    • 3
    • 4
    • 打包Ubuntu-18.04到其他目录
    
    wsl --export Ubuntu-18.04 G:\WSL2\system1.0_before_desktop\Ubuntu-18.04.1.0.tar
    
    • 1
    • 2

    2.0 安装tightvncserver和xfce4

    apt-get install tigervnc xfce4
    
    • 1

    3.0 配置xstartup

    vi /root/.vnc/xstartup
    
    • 1
    #!/bin/sh
    # Uncomment the following two lines for normal desktop:
    # unset SESSION_MANAGER
    # unset DBUS_SESSION_BUS_ADDRESS
    # exec /etc/X11/xinit/xinitrc
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    startxfce4 &
    xsetroot -solid grey
    #autocutsel -fork
    vncconfig -iconic &
    vncconfig -nowin&
    x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    # x-window-manager &
    x-session-manager &
    xfdesktop & xfce4-panel &
    xfce4-menu-plugin &
    xfsettingsd &
    xfconfd &
    xfwm4 &
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    4 启动vnc服务

    vncserver :1 -geometry 1920x1440 --localhost no
    
    
    • 1
    • 2

    可以看到vnc服务已经启动,屏幕编号为1,对应的端口号为5901

    New 'X' desktop is LC-MS:1
    
    Starting applications specified in /etc/X11/Xvnc-session
    Log file is /root/.vnc/LC-MS:1.log
    
    • 1
    • 2
    • 3
    • 4

    初次使用会要求设置密码
    会询问是否设置为view-only。选择否,否则远程桌面只能看。不能操作,后续也可以通过vncpasswd命令更改
    在这里插入图片描述

    5.连接vnc服务

    5.1 局域网内连接

    5.1.1 查看ip地址

    ifconfig
    
    • 1

    可以看到ip地址是 172.24.183.30

    eth0: flags=4163  mtu 1500
            inet 172.24.183.30  netmask 255.255.240.0  broadcast 172.24.191.255
            inet6 fe80::215:5dff:fe1b:8f42  prefixlen 64  scopeid 0x20
            ether 00:15:5d:1b:8f:42  txqueuelen 1000  (Ethernet)
            RX packets 4379984  bytes 945201387 (945.2 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 5983406  bytes 6239649689 (6.2 GB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 1540571  bytes 280724970 (280.7 MB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 1540571  bytes 280724970 (280.7 MB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5.1.2 windows客户端下载vncviewer

    链接:https://pan.baidu.com/s/10gHannk5dlg8Wj2VO3Mtzw?pwd=h7fl
    提取码:h7fl
    –来自百度网盘超级会员V4的分享
    也可以自行百度下载,下载后可以直接运行

    5.1.3 连接vnc远程桌面

    输入ip地址和端口号即可
    在这里插入图片描述
    接下来输入vnc密码
    在这里插入图片描述
    连接成功
    在这里插入图片描述

    6.局域网连接

    在上一步中确定局域网ip172.24.183.30以及vnc端口为5901后,进行内网穿透即可,操作步骤与
    WSL2 ubuntu18.04配置-3内网穿透实现不同局域网下远程登陆
    中的教程完全一样,只是将内网端口改为5901即可

    6 tips

    6.1 端口占用

    有时由于开启端口忘记关闭,会出现端口占用情况
    比如我刚刚已经通过
    vncserver :1 -geometry 1920x1440
    将编号设置为1,因此不能重复开启
    A VNC server is already running as :1
    在这里插入图片描述

    6.1.1 第一种选择,关闭端口

    vncserver -kill :1
    
    • 1

    6.1.2 第二种选择,查看端口,并通过kill关闭进程

    netstat -anp |grep tcp
    
    • 1

    可以看到5901的PID为15836

    tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      15836/Xtightvnc
    tcp        0      0 0.0.0.0:8787            0.0.0.0:*               LISTEN      4332/rserver
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      7554/sshd
    tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      15836/Xtightvnc
    tcp        0      0 172.24.183.30:5901      172.24.176.1:53868      ESTABLISHED 15836/Xtightvn
    
    • 1
    • 2
    • 3
    • 4
    • 5

    kill即可

    kill 15836
    
    • 1

    6.1.3 不理会,开启新的端口(不推荐,端口不用时及时关掉)

    该方法可以用来开启多个vnc
    此时开启的vnc编号为2 则对应的连接端口为5902

    vncserver :2 -geometry 1920x1440 --localhost no
    
    • 1

    7. 启动dbus服务

    不启动dbus服务的会导致软件管理中心报错,至于会不会有其他的影响就不知道了

    service dbus start
    
    • 1

    8. 安装中文字体

    在连接远程桌面后依次打开application -> settings -> language support/region & language
    此时会提示更新语言包,更新之后再安装中文字体即可
    在更新之前要先运行

    apt-get update
    
    • 1

    接下来安装ibus语言框架

    apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4
    
    • 1

    安装pinyin输入法

    apt-get install ibus-pinyin
    
    • 1

    安装完成后就可以在application->settings->ibus preference里面打开ibus,会提示没有运行ibus框架,点确定运行就可以
    打开ibus,添加中文输入法即可。
    在这里插入图片描述

    9. 配置完的桌面

    在这里插入图片描述
    现在再配合内网转发工具将桌面ip和端口映射至公网之后就可以实现跨局域网连接了

    10. 养成好习惯,配置不容易,赶快备份

    powershell中

    wsl --shutdown
    wsl --export Ubuntu-18.04 G:\WSL2\sytem2.0_xfce4_rstudioserver_frpc_ssh\Ubuntu-18.04.2.0.tar
    
    • 1
    • 2
  • 相关阅读:
    YbtOJ「动态规划」第4章 树形DP
    三磷酸腺苷牛血清白蛋白纳米粒|去甲肾上腺素人血清白蛋白纳米粒|多巴胺卵清白蛋白纳米粒(制备)
    前端工程化精讲第十五课 版本特性:Webpack 5 中的优化细节
    Vue/React 项目部署到服务器后,刷新页面出现404报错
    C++知识点5:如果一个函数中是if else的结构,在每个条件判断后返回值,和在函数的结尾处返回值有什么区别?
    某模块休眠时接收短信不能在串口显示的问题
    DDD--战略设计和战术设计
    用Java语言简单做几个数组相关的练习题吧
    MiniDump
    Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis
  • 原文地址:https://blog.csdn.net/qq_42756195/article/details/125785075