美文网首页我爱编程
linux vnc的默认端口修改

linux vnc的默认端口修改

作者: AI_Finance | 来源:发表于2018-04-05 16:43 被阅读0次

    vnc的默认端口是5901,这个说法是不对的。vnc并不是只有一个端口。 

    以前另一个文章介绍了nvcserver的配置用户的过程,里面提到了桌面号,这个桌面号就可以端口有密切关系 

    先看看这个配置 

    VNCSERVERS="1:oracle 2:root" 

    VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd" 

    ...... 

    这里是摘自/etc/sysconfig/vncservers里的一段。 这里就配置了2个桌面,一个桌面号是1, 一个是2. 

    vncserver在调用的时候,会根据你的配置来启用server端的监听端口, 从5900开始,加上你的桌面号,比如这里的oracle就是5901,root就是5902 

    所以通过这里的桌面号也是可以达到我们的目的的,根据你的目标端口来设定用户的周面好,虽然可以解决,但是总是感觉有些没有拉干净的感觉,这不是 这次的研究内容,还是找个痛快的方式吧。 

    这次的研究主要就是颠覆这样的默认规则,直接的深入进去,我要直接修改5900+为15900+ 

    在网上没有找到比较好的方法和文档,自己动手吧 

    从vncserver这个启动命令开始吧, 

    [root@redflag1 ~]# which vncserver 

    /usr/bin/vncserver 

    [root@redflag1 ~]# file /usr/bin/vncserver 

    /usr/bin/vncserver: a perl script text executable 

    [root@redflag1 ~]# grep "59" /usr/bin/vncserver -n 

    18:# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 

    118:$vncPort = 5900 + $displayNumber; 

    238:# n is taken if something is listening on the VNC server port (5900+n) or the 

    257:# (5900+n) or the X server port (6000+n). 

    274: if (!bind(S, pack('S n x12', $AF_INET, 5900 + $n))) { 

    经过这几个回合,解决方法已经大白于天下了。 

    这里启动的脚本hard code了5900,我们可以替换这里就OK了 

    先定义一个$default_port=15900 

    然后替换118和274行的5900为$default_port就可以了 

    现在启动服务 

    [root@redflag1 ~]# service vncserver restart 

    查看端口 

    [root@redflag1 ~]# netstat -l | grep 159 

    tcp 0 0 *:15901 *:* LISTEN 

    tcp 0 0 *:15902 *:* LISTEN 

    已经成功了。用vncviewer链接一下。可以了

    相关文章

      网友评论

        本文标题:linux vnc的默认端口修改

        本文链接:https://www.haomeiwen.com/subject/rbkdhftx.html