vnc的默認(rèn)端口是5901椅野,這個(gè)說法是不對(duì)的鸣峭。vnc并不是只有一個(gè)端口盆犁。?
以前另一個(gè)文章介紹了nvcserver的配置用戶的過程殿遂,里面提到了桌面號(hào)诈铛,這個(gè)桌面號(hào)就可以端口有密切關(guān)系?
先看看這個(gè)配置?
VNCSERVERS="1:oracle 2:root"?
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd"?
......?
這里是摘自/etc/sysconfig/vncservers里的一段。 這里就配置了2個(gè)桌面墨礁,一個(gè)桌面號(hào)是1幢竹, 一個(gè)是2.?
vncserver在調(diào)用的時(shí)候,會(huì)根據(jù)你的配置來啟用server端的監(jiān)聽端口恩静, 從5900開始焕毫,加上你的桌面號(hào),比如這里的oracle就是5901,root就是5902?
所以通過這里的桌面號(hào)也是可以達(dá)到我們的目的的,根據(jù)你的目標(biāo)端口來設(shè)定用戶的周面好咬荷,雖然可以解決冠句,但是總是感覺有些沒有拉干凈的感覺轻掩,這不是 這次的研究?jī)?nèi)容幸乒,還是找個(gè)痛快的方式吧。?
這次的研究主要就是顛覆這樣的默認(rèn)規(guī)則唇牧,直接的深入進(jìn)去罕扎,我要直接修改5900+為15900+?
在網(wǎng)上沒有找到比較好的方法和文檔,自己動(dòng)手吧?
從vncserver這個(gè)啟動(dòng)命令開始吧丐重,?
[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))) {?
經(jīng)過這幾個(gè)回合腔召,解決方法已經(jīng)大白于天下了。?
這里啟動(dòng)的腳本hard code了5900扮惦,我們可以替換這里就OK了?
先定義一個(gè)$default_port=15900?
然后替換118和274行的5900為$default_port就可以了?
現(xiàn)在啟動(dòng)服務(wù)?
[root@redflag1 ~]# service vncserver restart?
查看端口?
[root@redflag1 ~]# netstat -l | grep 159?
tcp 0 0 *:15901 *:* LISTEN?
tcp 0 0 *:15902 *:* LISTEN?
已經(jīng)成功了臀蛛。用vncviewer鏈接一下⊙旅郏可以了