• 在Linux下配置RealVNC和TigerVNC


    作者:alittlemc | 更新中 | 原创文章,可能有技术理解错误,欢迎指正,请与我联系,谢谢!
    命令和快速总结
    realvnc创建
    # :会话id -name 取名字 -depth 色深 -geometry 分辨率 vncserver :5 -name VNC1 -depth 24 -geometry 1920x1080
    # 看一下有哪些端口
    vncserver -list
    
    # kill掉:2
    vncserver -kill :2

    配置文件位置

    #当前用户
    cat ~/.vnc/config
    
    # 总的
    cat /etc/vnc/config

    VNC

    Linux有许多版本,大致可以分为桌面版和服务器版本(桌面也是个应用程序,叫X),有时候安装了桌面版但是身边没有额外显示器,或者是对服务器集群中的linux进行操作时候,我们可以使用VNC来实现远程控制。

    RealVNC

    其实我是更喜欢Real的,但是这个要收费了

    1、安装

    # redhat系列
    sudo yum install tigervnc-server
    
    # debian系列
    sudo apt-get install realvnc-vnc-server
    • 也可去官网下载二进制文件离线安装
    • 也可以下载现成的二进制文件deb、rpm离线安装

      0

    2、运行vncserver

    每执行一次vncserver,就会启动一次VNC会话,多一对vnc端口监听。
    复制代码
    [root@client_149 .vnc]# vncserver -h
    
    usage: vncserver [:] [-name ] [-depth ]
                     [-geometry x]
                     [-pixelformat rgbNNN|bgrNNN]
                     [-fp ]
                     [-cc ]
                     [-fg]
                     [-autokill]
                     [-noxstartup]
                     [-xstartup <file>]
                     [-fallbacktofreeport]
                     ...
    
           vncserver -kill 
    
           vncserver -list
    复制代码

    常用的参数:

    参数
    备注
    :<端口id>
    可以理解是指定会话id,同时对应的监听端口,5900+id
    -name <名字>
    给会话命名
    -depth <色深>
    在创建时候自定义色深
    -geometry x
    在创建时候自定义分辨率
    -list
    查看全部的会话
    -kill :<端口id>
    选择要关闭的端口id啦
     
     vncserver :2 -name VNC:2 -geometry 1920x1080 -depth 24

    执行完成后会显示提示:这里提示了日志保存在~/.vnc/client_149:2.log,不过log太多了哈哈,看不明白。

    如果出现Error: No license keys found.之类的提示,是因为新版本的RealVNC开始商业化了(收费),需要授权码,去网上找一下。

    复制代码
    # 授权码
    vnclicense -add WHJRK-UXY7V-Q34M9-CZU8L-8KGFA
    # 如果这个不得可以试一下其他授权码
    S4J7A-XWXY5-KXAJW-54KRA-TP3QA
    48R4P-NFZ46-NBCWY-Q2ZJT-3H9RA
    Z456C-LMKTC-NLGWQ-H5CUR-ZVWEA
    A5HDP-LXKYN-UK4W6-XACZJ-ENWLA
    NRDX9-ZF9C5-JLGY7-CUC5J-77J2A
    SSEWK-HBDM6-YYCWC-M3BQV-9XMDA
    
    # 激活成功了运行一下
    vncserver :2 -name VNC:2 -geometry 1920x1080 -depth 24

    #使用netstat看一下监听端口
    sudo netstat -apn | grep vnc
    复制代码

      安装好RealVNC,systemd会自带两个相关的service。

    • x11-serverld和virtuald和效果类似,但是也是有所不同,根据需要任选一个即可
    • x11直接连接到linux的x桌面,如果有其他vnc会话,也是共用查看界面
    • virtuald和TightVNC原理差不多,每一个用户有独立的桌面,有点像云主机?
    # 启动 & 开机启动
    sudo systemctl start vncserver-virtuald.server && systemctl enable vncserver-virtuald.server
    sudo systemctl start vncserver-x11-serviced.service && systemctl enable vncserver-x11-serviced.service

    3、登录

    在手机或者电脑安装VNC Client之类的软件,ip:port即可完成连接,比如我这里使用的是VNC Viewer。账号密码使用系统中的账号密码即可。
    冒号后加端口,可以直接使用netstat监听的ip:5902,也可以使用之间启动venserver定义的端口,会自动转换5900+端口。
     

     

    4、修改分辨率

    其实修改分辨率只是个药引子,主要是引出配置文件的路径,其他设置也是同理的。

    方法1在启动时候定义

    vncserver -geometry 1920x1080

    方法2修改~/.vnc.config

      

     

    方法3修改/etc/vnc/config

    可以直接修改在/etc/vnc/config下的配置文件,比如在后面追加参数 -geometry 1920x1080。
    sudo echo -geometry 1920x1080 >> /etc/vnc/config

    参考官方的修改分辨率的方法:如何在 Linux 下调整虚拟桌面的屏幕分辨率?– RealVNC帮助中心

    方法4修改/etc/X11/vncserver-virtual-dummy.conf

    gtf生成文本
    gtf x y 刷新率

    0

    请注意,输入gtf命令后并没有生效,它只是生成一段配置,我们要在/etc/X11/vncserver-virtual-dummy.conf中再修改。
    0
     
    0
    修改好后重新启动服务生效啦。

    5、管理

    在此之前我执行了三次vncserver,对应的也有三对端口(比如图中5902和6002,5903和6003,5904和6004);三个unix。

     

    关闭可以直接使用kill之类的命令杀死进程,(感觉有点残忍哈哈,不推荐)。

    可以使用vncserver -list和-kill
    # 看一下有哪些端口
    vncserver -list
    # kill掉:3
    vncserver -kill :3

     

    TigerVNC

    1、安装

    # redhat系列
    sudo yum install tigervnc tigervnc-server
    
    #debian系列
    sudo apt install tigervnc-standalone-server tigervnc-common

     

    • 如果网络下载过慢可以访问官网TigerVNC
    • 官网下载源代码mark一下

    2、配置

    一般的模板的配置文件在这路径中/usr/lib/systemd/system/vncserver@.service
    将文件copy到/etc/systemd/system/vncserver@.service
    为了兼顾多用户,可以这样命名vncserver@:1.service、vncserver@:2.service等这样命名。
    cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    
    vim /etc/sysconfig/vncservers@:1.server

    ExecStart=/usr/bin/vncserver_wrapper  %i 这行中的改为本地的用户,比如再另外adduser个新用户,passwd修改密码用于vnc登录也可行。

    0
    图中我偷懒,直接用root吧
    # 刷新一下systemd
    sudo systemctl daemon-reload

    3、设置密码和启动

    # 设置密码
    # 就是用户的密码啦,和你ssh登录密码一样的passwd
    # 启动服务
    sudo systemctl start vncserver@:1.service

     


    常见故障

    监听端口

    服务监听端口可以使用netstat查看,使用apn和tlpn都可以啦,个人习惯使用apn。
    sudo netstat -apn | grep vnc
    sudo netstat -tlpn | grep vnc

    防火墙

    外部设备无法访问
    可能是是防火墙的问题

    iptables

    # 看一下规则条目
    sudo iptables -L -n

    依据netstat的结果,对对应的端口的tcp和udp开放,不过显然是有点麻烦。

    sudo iptables -I INPUT -p tcp --dport 5999-j ACCEPT
    sudo iptables -I INPUT -p udp --dport 5999 -j ACCEPT
    
    # 同理直接编辑配置文件也可以
    sudo systemctl reload

    firewall

    复制代码
    # 查看一下防火墙配置
    sudo firewall-cmd --list-all
    
    # 永久 添加vnc-server到public区,(推荐)
    sudo firewall-cmd --permanent --zone=public --add-service=vnc-server
    sudo firewall-cmd --reload
    
    
    # 也可以直接通过添加端口tcp、udp都要加上,局限性较大
    sudo firewall-cmd --add-port=5901/tcp --permanent --zone=public
    sudo firewall-cmd --add-port=5901/udp --permanent --zone=public
    sudo firewall-cmd --add-port=6001/tcp --permanent --zone=public
    sudo firewall-cmd --add-port=6001/udp --permanent --zone=public
    sudo firewall-cmd --reload
    复制代码
    0
    如果有桌面啦,在桌面的终端试一下firewall-config图形化界面。
    0
     
  • 相关阅读:
    局域网体系结构是怎么样的
    Informatica使用操作流程--聚合、表达式转换、查找、排序组件的使用 案例3
    Day7—zookeeper基本操作
    学习编程的第十九天
    网络安全(黑客)自学
    SpringCloud-05 Hystrix学习笔记
    SAP UI5 SmartTable 控件的使用介绍试读版
    平衡二叉树的插入,删除以及平衡调整。
    java 线上java应用CPU过高排查
    Java 中你绝对没用过的一个关键字?
  • 原文地址:https://www.cnblogs.com/alittlemc/p/16639892.html