linux vnc的默认端口修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux vnc的默认端口修改相关的知识,希望对你有一定的参考价值。

参考技术A 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链接一下。可以了

怎样查vnc端口,Linux下根据进程名怎样查端口

VNC是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。

IIS7服务器管理工具是一款免费的远程控制软件,它可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新。IIS7服务器管理工具适用于Windows操作系统和liunx操作系统;支持Vnc客户端和Ftp客户端批量操作。

技术图片

技术图片

技术图片

在具体的Linux系统维护中,特别对于某些我们初次接触的新应用程序,我们往往需要根据进程名查对应的端口号(当然,前提是进程要处于启动状态),或者反过来,根据端口号查对应的进程名。具体操作方法如下:

1、根据进程名查对应的端口号

如果你在网上搜索一下,发现有不少这方面的资料,仔细尝试,却发现多半是不正确的。其实这个很容易做到:

#netstat -tlnp | grep /processname

注意:processname前面最好加上/,这样便于缩小查询范围。

2、根据端口号查对应的进程名

网上推荐使用两种方法,分别用到lsof和netstat命令,在这里根据我的使用经验总结一下:

1)使用lsof命令

#lsof -Pnl -i :portnumber

lsof(list open files)是一个列出当前系统中打开文件的工具。在linux环境下,everything is file,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。

上述lsof命令参数解释:
-P :该选项禁止端口号到端口名的转换,这样可以加快lsof运行速度。
-n :该选项禁止端口号到主机名称的转换,这样不仅可以加快lsof的运行速度,而且在主机名称查找不能奏效时非常有用。
-l :该选项禁止用户ID号到登录名的转换,这在登录名查找不正确或很慢时非常有用。
-i [info]:该选项指定显示与info中互联网地址相匹配的信息。

2)使用netstat命令

#netstat-tlnp | grep :portnumber
注意:portnumber前面最好加上:,这样便于缩小查询范围。这种方法与第一种方法实际查找的结果不是同一内容,但都可以查到进程名,差别在于,这种方法看到的是最简单的端口监听信息,而第一种方法看到的是跟该端口关联的具体网络连接,大家各取所需吧。

以上列举的只是常用方法,希望能对您有所帮助,如果列位还有更好的方法和建议,也请不吝赐教。

以上是关于linux vnc的默认端口修改的主要内容,如果未能解决你的问题,请参考以下文章

Centos7安装VNC实现远程桌面

Fedora 28 设置 VNC

Linux里面php默认端口是多少?

Linux里面怎么修改默认80端口?

Linux修改SSH默认22端口

linux修改mysql默认端口