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的默认端口修改的主要内容,如果未能解决你的问题,请参考以下文章