• Ubuntu-Server-22.04安装桌面+VNC


    前提:Ubuntu Server安装好后,ubantu其他版本是否适用这里未知,欢迎大佬们前来评论

    一、默认没有图形界面,有时觉得用图形界面操作更简单直接,于是用如下命令安装:

    1.更新本地环境

    sudo apt-get update
    sudo apt-get upgrade
    
    • 1
    • 2

    2.安装桌面

    sudo apt-get -y install ubuntu-desktop // 桌面程序
    
    • 1

    3.安装 Windows兼容层程序

    sudo apt-get -y install wine    //wine(Windows兼容层程序)
    
    • 1

    4.重启

    reboot
    
    • 1

    二、安装vnc方式一 GNOME 桌面环境,非root用户操作。[推荐使用该方法]

    1.更新软件源。

    sudo apt update
    
    • 1

    2.安装桌面环境所需的软件包,包括系统面板、窗口管理器、文件浏览器、终端等桌面应用程序。

    sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
    
    • 1

    3.安装 TightVNC 服务器。

    sudo apt install tightvncserver
    
    • 1

    4.启动 vncserver

    首次启动需要设置密码两次
    注意输入两次密码

    更改密码:sudo vncpasswd
    
    • 1

    5.备份VNC的xstartup配置文件。

    sudo mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
    
    • 1

    6.修改VNC的xstartup配置文件。

    sudo vim ~/.vnc/xstartup
    
    • 1

    写入内容

    #!/bin/sh
    
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    export XKL_XMODMAP_DISABLE=1
    export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
    export XDG_MENU_PREFIX="gnome-flashback-"
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    vncconfig -iconic &
    #gnome-terminal &
    #nautilus &
    gnome-session --session=gnome-flashback-metacity --disable-acceleration-check &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    7. 设置权限

    sudo chmod 777 ~/.vnc/xstartup
    
    • 1

    8.设置开机自启(VNCUSER=‘xxx’,xxx为你的用户名)

    sudo vim /etc/init.d/vncserver
    
    • 1

    写入内容

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides: tightvncserver
    # Required-Start: $syslog $remote_fs $network
    # Required-Stop: $syslog $remote_fs $network
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Starts VNC Server on system start.
    # Description: Starts tight VNC Server. Script written by James Swineson.
    ### END INIT INFO
    # /etc/init.d/vncserver
    VNCUSER='cnki'
    case "$1" in
            start)
            		#以pi用户运行'vncserver :1'指令,如果使用的是其他VNC 直接替换成对应的启动命令即可
                    su $VNCUSER -c 'vncserver :1'
                    echo "Starting VNC Server for $VNCUSER"
            ;;
            stop)
                    su $VNCUSER -c 'vncserver -kill :1'
                    echo "TightVNC Server stopped"
            ;;
            *)
                    echo "Usage: /etc/init.d/vncserver {start|stop}"
                    exit 1
            ;;
    esac
    exit 0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    9.然后对自启文件添加可执行权限

    sudo chmod 755 /etc/init.d/vncserver
    
    • 1

    10.自启文件添加到开机启动列表

    sudo update-rc.d vncserver defaults
    
    • 1

    三、安装vnc方式二(不推荐)

    1.安装XFCE

    sudo apt update
    sudo apt install xfce4 xfce4-goodies
    
    • 1
    • 2

    2.安装vnc服务端

    sudo apt install tigervnc-standalone-server
    
    • 1

    3.修改VNC密码

    注意需要输入两次密码

    vncpasswd
    
    • 1

    4.修改VNC启动文件内容

    修改这个文件,更换成:

    ~/.vnc/xstartup
    
    • 1

    内容

    #!/bin/sh
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    exec startxfce4
    
    • 1
    • 2
    • 3
    • 4

    5.使用 chmod 命令设置文件权限

    chmod u+x ~/.vnc/xstartup
    
    • 1

    6.允许其他ip访问

    vncserver -localhost no
    
    • 1

    四.注意修改iptables

    如果访问失败,可能是iptables被限制了

    sudo vim /etc/iptables/rules.v4
    
    • 1

    大概如下,请根据自身情况而定:

    # Generated by iptables-save v1.8.7 on Sat Sep 16 15:22:31 2023
    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [539324:46894725]
    -A INPUT -s 10.15.6.0/24 -p tcp -m multiport --dports 19911,2181,5901 -j ACCEPT
    -A INPUT -s 10.21.0.0/24 -p tcp -m tcp --dports 19911,5901 -j ACCEPT
    -A INPUT -s 10.11.0.0/24 -p tcp -m tcp --dports 19911,5901 -j ACCEPT
    -A INPUT -s 10.1.0.0/24 -p tcp -m tcp --dports 19911,5901 -j ACCEPT
    -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dports 19911,5901 -j ACCEPT
    -A INPUT -s 10.200.0.0/24 -p tcp -m tcp --dports 19911,5901 -j ACCEPT
    -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
    -A INPUT -m addrtype --src-type LOCAL -j ACCEPT
    -A INPUT -s 10.0.0.0/8 -p tcp -m multiport --dports 80,443,4567,4568,6789,5901 -j ACCEPT
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -j DROP
    COMMIT
    # Completed on Sat Sep 16 15:22:31 2023
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    修改完需要重启

    reboot
    
    • 1
  • 相关阅读:
    史上最全电商API接口(数据参数返回值说明)
    由Redis Cluster集群引发的对几种算法的思考
    MyBatis
    网络工程师知识点7
    xxl-job的使用及简述原理
    Spark--经典SQL50题
    做了8年前端,细说那些曾经让你浴霸不能的后端
    [spring]spring详细总结
    NodeJs实战-待办列表(7)-connect组件简化代码
    electron 起步
  • 原文地址:https://blog.csdn.net/qq_40539437/article/details/133384087