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鏈接一下。可以了。
以前另一個文章介紹了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鏈接一下。可以了。