在使用Xvnc4构建VNC服务器时,如果新建端口时提示:“A vnc server is already runing as :x”,此时网上的方法通常是使用vncserver -kill :x
来杀死端口,但是有时候这种方法并不管用。
实际上此时使用ps -aux | grep "Xvnc4 :x"
去查看端口x
对应的Xvnc4进程会发现根本没有该进程,但是使用cd ~username && [ -f .vnc/passwd ] && vncserver :x -geometry widthxheight
去新建端口x
仍然会提示:“A vnc server is already runing as :x”。
该问题实在是困扰了我很久,后来经过查看netstat -tunpl
终于发现了一些原因。原来是因为默认设置下每新建一个Xvnc4端口x
都会占用2个服务器网络端口,端口号分别是5900+x
和6000+x
。如果同时使用大于99的端口号100+x
和x
,那么就会出现两者同时占用了端口6000+x
的情况,从而导致新建端口时提示已使用。此外,还建议vnc端口号的范围在[0, 63]
之间,虽然实测使用大于63的值也不会出现什么问题,但是如无必要,不要使用大于63的端口号。