VNC 修改默認端口號5900+爲15900+

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鏈接一下。可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章