通过 VNC 客户端远程连接 CentOS 7 图形化界面

一、场景介绍
  • 在某些特定场景下,我们需要通过 Linux 环境来调试代码,比如 Shell 脚本的调试

  • 如果每次通过盲写好的 shell 脚本,全盘复杂到 Linux 环境的 .sh 文件中执行,很难找到问题

  • 遂出现此文章:通过 VNC 连接 Linux 的图形化桌面,在图形化桌面安装 IDEA 来调试 Shell 脚本

二、名词解释
  • VNCVNC(Virtual Network Computing) 为一种使用 RFB 协议的屏幕画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的屏幕画面。VNC 与操作系统无关,因此可跨平台使用,例如可用 Windows 连线到某 Linux 的计算机,反之亦同。甚至在没有安装客户端程序的计算机中,只要有支持 JAVA 的浏览器,也可使用。VNC 包含客户端和服务器两个操作软件。

  • VNC ServerVNC 服务器,接收 VNC Viewer 的连接请求,传输画面到客户端。本例需要在 CentOS 7 上安装 VNC Server

  • VNC ViewerVNC 客户端,将键盘和鼠标的动作转递给服务器,例如:在 Windows 上安装 Viewer 连接到远程的 Linux 服务器,Mac 通过 Royal TSXVNC 插件来连接 Linux 服务器

  • Linux桌面环境Linux 不像 Windows,安装完系统就有可视化的图形界面,并且每个版本图形化界面完全一致,Linux 图像界面有很多种可供你选择,你可以选择你喜欢的图形界面环境进行安装,VNC 上传输的图形界面,就是你安装的界面。本例选择的是 GNOME

  • X Window SystemX 窗口系统(X Window System,也常称为 X11X )是一种以位图方式显示的软件窗口系统。最初是 1984 年麻省理工学院的研究,之后变成 UNIX、类 UNIX、以及 OpenVMS 等操作系统所一致适用的标准化软件工具包及显示架构的运作协议。X 窗口系统通过软件工具及架构协议来创建操作系统所用的图形用户界面,此后则逐渐扩展适用到各形各色的其他操作系统上。现在几乎所有的操作系统都能支持与使用 X。更重要的是,今日知名的桌面环境—— GNOMEKDE 也都是以 X 窗口系统为基础建构成的

三、CentOS 图形安装
  1. 安装图形用户接口 X Window System

    yum groupinstall "X Window System"
    
  2. 安装 GNOME

    yum groupinstall "GNOME Desktop"
    
  3. 启动 X Windows

    startx
    
    # 启动日志
    xauth:  file /root/.serverauth.152726 does not exist
    
    
    X.Org X Server 1.20.4
    X Protocol Version 11, Revision 0
    Build Operating System:  3.10.0-957.1.3.el7.x86_64 
    Current Operating System: Linux node44 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64
    Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-1160.25.1.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=zh_CN.UTF-8
    Build Date: 24 February 2021  09:09:20PM
    Build ID: xorg-x11-server 1.20.4-15.el7_9 
    Current version of pixman: 0.34.0
            Before reporting problems, check http://wiki.x.org
            to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
            (++) from command line, (!!) notice, (II) informational,
            (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.2.log", Time: Mon Nov 22 10:01:23 2021
    (==) Using config directory: "/etc/X11/xorg.conf.d"
    (==) Using system config directory "/usr/share/X11/xorg.conf.d"
    (II) [KMS] Kernel modesetting enabled.
    resizing primary to 1024x768
    primary is 0x55e7f1230140
    
四、VNC 服务端安装
  1. 查看 Linux 是否已经安装 tigervnc-server

    [root@node44 ~]# rpm -q tigervnc tigervnc-server
    package tigervnc is not installed
    package tigervnc-server is not installed
    
  2. Linux 服务器上安装 tigervnc-server 服务

    yum install tigervnc-server -y
    
  3. 启动 tigervnc-server 服务

    vncserver
    
    # 部分启动日志
    You will require a password to access your desktops.
    
    Password:
    Verify:
    Would you like to enter a view-only password (y/n)? n
    A view-only password is not used
    
    New 'node44:1 (root)' desktop is node44:1
    
    Creating default startup script /root/.vnc/xstartup
    Creating default config /root/.vnc/config
    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/node44:1.log
    

    P.S

    • 在启动过程中,请牢记设置的密码,提示为预览密码时请选择 n ,不然无法操作图形化界面,只能查看图形化界面

    • 其它事项

      # 启动命令依据 vncserver@:1.service 为参考
      vncserver :n
      
      # 这里的 n 是 sessionnumber,不指定默认为 1,也可以是 2、3 等。第一次会提示输入密码,以后可以使用vncpasswd命令修改密码。
      
  4. 设置 vncserver 开机启动

    # 将 /lib/systemd/system/vncserver@.service 文件复制为 /lib/systemd/system/vncserver@:1.service (重命名为 1 2 3 都可以,但是启动的时候需要采用 vncserver :1 vncserver :2 vncserver :3 对应,不知道默认为 1)
     cp /lib/systemd/system/vncserver@.service vncserver@:1.service
     
    # 编辑复制后的 vncserver@:1.service 文件,将 <USER> 替换为 Linux 系统用户,这里以 root 为例
    ExecStart=/usr/bin/vncserver_wrapper root %i
    
    # 重加载 systemd
    systemctl daemon-reload
    
    # 设置为开机启动
    systemctl enable vncserver@:1.service
    
    # 启停 vncserver 服务
    systemctl start vncserver@:1.service
    systemctl stop vncserver@:1.service
    
  5. 开启 vncserver 服务端防火墙端口

    firewall-cmd --zone=public --add-port=5901/tcp --permanent
    
    firewall-cmd --reload
    
五、VNC 客户端连接
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值