realvncserver黑屏_我的VNC远程桌面黑屏,一个小正方形光标,奇怪!

在尝试使用VNC Viewer从Windows连接到Linux时遇到黑屏问题,只有小方块光标显示。已尝试修改.vnc/xstartup文件,包括运行gnome和startkde,但未成功。日志显示存在RGB_DB打开失败、字体路径元素初始化错误等问题。讨论了可能的解决方法,如检查端口设置、使用默认的xstartup文件、通过ssh隧道连接等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

你的位置:

问答吧

-> Linux 软件

-> 问题详情

我的VNC远程桌面黑屏,一个小正方形光标,奇怪!

有装过vnc的大侠么,我的进入后黑屏。从Windows的VNC Viewer进入Linux,只是黑屏,光标是个小方块 .

要如何设定阿?我用rpm安装vncserver后,将.vnc/xstartup内的内容注释掉,写上 gnome &  ,后来改为startkde & 都不行。

从Windows的Run VNC Viewer输入服务器IP:5900(只有5900可以进入,其他的拒绝访问)进入就是黑屏,只有一个小正方形的光标。

[root@local ~]# vncserver

New 'local:1 (root)' desktop is local:1

Starting applications specified in /root/.vnc/xstartup

Log file is /root/.vnc/local:1.log

[root@local ~]#

查看root/.vnc/local:1.log的内容:

[root@local .vnc]# vi local:1.log

Couldn't open RGB_DB '/usr/X11R6/lib/X11/rgb'

Xvnc version 4.0 - built Jun 14 2004 12:01:28

Underlying X server release 40201000, The XFree86 Project, Inc

Fri May 18 11:10:09 2007

vncext: VNC extension running!

vncext: Listening for VNC connections on port 5901

vncext: Listening for HTTP connections on port 5801

vncext: created VNC server for screen 0

error opening security policy file /usr/X11R6/lib/X11/xserver/SecurityPolicy

Could not init font path element /usr/X11R6/lib/X11/fonts/misc/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!

Could not init font path element /usr/X11R6/lib/X11/fonts/75dpi/, removing from list!

郁闷阿,搞了两周了都没搞出来!

作者: baojian2002125

发布时间: 2007-05-18

你要设置 vncserver 的启动文件,

应该是在

~/.vnc/xstartup

作者: 晨想

发布时间: 2007-05-18

你的很奇怪呢, 你试试用它的默认的会怎么样?

我用的是realvnc 版本4.1.1(比较老了,而且还听说有漏洞,不过debian一直没更新). 一直都没有问题.

vnc默认的端口是59xx. 按理说第一个server是5901,第二个是5902

而且你的log里也说了是听5901

引用:

vncext: Listening for VNC connections on port 5901所以你连5900肯定是有问题的.

你可以sudo netstat -tap 看一下有没有类似这样的东西

代码:

tcp 0 0 *:5901 *:* LISTEN 6527/Xvnc4我以前用inetd的方式连接,在/etc/inetd.conf里加上

代码:

localhost:5951 stream tcp wait lastart /usr/bin/Xvnc Xvnc -inetd -query localhost -once securitytypes=nonelocalhost:5951表示只听从本机的连接. 这样强制先用ssh连上去

代码:

ssh user@host -L 5951:localhost:5951 -X然后vncviewer :51才能连上.

wait表示关掉viewer时不退出, 直到logout.

/usr/bin/Xvnc是Xvnc的路径.

Xvnc -inetd -query localhost -once securitytypes=none 这是运行的参数.

securitytypes=none 表示不验证密码. (因为上面已经限制了它只听localhost的端口)

说明:inetd方式要求gmd/xdm/kdm启动XDMCP

我现在用的最多的是直接连到:0上

我在/etc/gdm/Init/Default里加上

代码:

x0vncserver -localhost -PasswordFile /home/lastart/.vnc/passwd &这样每次启动gdm我就可以连上,-localhost 参数限制只能在本机上连. 不足是不能启动vncconfig

而且realvnc早就内建了一个叫vnc的模块,在xorg.conf里调用就可以直接连上:0.

详细见http://www.realvnc.com/products/free/4.1/x0.html

但是我测试觉得不稳定. 经常一退出viewer,那边的X就重启, 所以才用了上面的方法.

更详细的参见man Xvnc/vncserver

作者: lastart

发布时间: 2007-05-19

呵呵,谢谢关注!我现在察看监听情况如下:

[root@local ~]# sudo netstat -tap

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 dns1:2208 *:* LISTEN 2240/hpiod

tcp 0 0 *:swat *:* LISTEN 2274/xinetd

tcp 0 0 *:netbios-ssn *:* LISTEN 19004/smbd

tcp 0 0 *:5900 *:* LISTEN 2796/vino-server

tcp 0 0 *:sunrpc *:* LISTEN 2047/portmap

tcp 0 0 *:976 *:* LISTEN 2066/rpc.statd

tcp 0 0 *:ftp *:* LISTEN 2285/vsftpd

tcp 0 0 dns1:ipp *:* LISTEN 6467/cupsd

tcp 0 0 dns1:smtp *:* LISTEN 2303/sendmail: acce

tcp 0 0 *:microsoft-ds *:* LISTEN 19004/smbd

tcp 13851 0 local:5900 192.168.1.220:aal-lm CLOSE_WAIT 2796/vino-server

tcp 1303 0 local:5900 192.168.1.220

n-requester CLOSE_WAIT 2796/vino-server

tcp 1 0 local:5900 192.168.1.22:inova-ip-disco ESTABLISHED 2796/vino-server

tcp 2482 0 local:5900 192.168.1.220:down CLOSE_WAIT 2796/vino-server

tcp 1141 0 local:5900 192.168.1.220:global-dtserv CLOSE_WAIT 2796/vino-server

tcp 1 0 local:38095 opal.cat.pdx.edu:http CLOSE_WAIT 2416/python

tcp 8557 0 local:5900 192.168.1.220:starschool CLOSE_WAIT 2796/vino-server

tcp 1795 0 local:5900 192.168.1.220:ardusuni CLOSE_WAIT 2796/vino-server

tcp 6503 0 local:5900 192.168.1.220:icg-iprelay CLOSE_WAIT 2796/vino-server

tcp 1189 0 local:5900 192.168.1.220:fc-ser CLOSE_WAIT 2796/vino-server

tcp 0 0 *:ssh *:* LISTEN 2264/sshd

tcp 0 0 localhost.localdomain:ipp *:* LISTEN 6467/cupsd

tcp 0 0 local:ssh ::ffff:192.168.1.220:wafs ESTABLISHED 16602/1

[root@local ~]#

作者: baojian2002125

发布时间: 2007-05-22

我的Linux主机在那边机房里,也没有显示器,所以我也想直接连:0。怎么配置呢?

我用root用户进去的(可以么?),然后Vi到/etc/gdm/Init/Default内:

[root@local Init]# vi Default

#!/bin/sh

# Stolen from the debian kdm setup, aren't I sneaky

# Plus a lot of fun stuff added

# -George

PATH=/usr/bin:$PATH

OLD_IFS=$IFS

gdmwhich () {

COMMAND="$1"

OUTPUT=

IFS=:

for dir in $PATH

do

if test -x "$dir/$COMMAND" ; then

if test "x$OUTPUT" = "x" ; then

OUTPUT="$dir/$COMMAND"

fi

fi

done

IFS=$OLD_IFS

echo "$OUTPUT"

}

sysresources=/etc/X11/Xresources

# merge in defaults

if [ -f "$sysresources" ]; then

xrdb -merge "$sysresources"

fi

sysmodmap=/etc/X11/Xmodmap

XMODMAP=`gdmwhich xmodmap`

if [ x$XMODMAP != x ] ; then

if [ x$GDM_PARENT_DISPLAY = x ]; then

if [ -f $sysmodmap ]; then

$XMODMAP $sysmodmap

fi

else

( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -

fi

#

# Switch Sun's Alt and Meta mod mappings

#

UNAME=`gdmwhich uname`

PROCESSOR=`$UNAME -p`

if [ x$PROCESSOR = xsparc ]; then

if $XMODMAP | /usr/bin/grep mod4 | /usr/bin/grep Alt > /dev/null 2>/dev/null

then

$XMODMAP -e "clear Mod1" \

-e "clear Mod4" \

-e "add Mod1 = Alt_L" \

-e "add Mod1 = Alt_R" \

-e "add Mod4 = Meta_L" \

-e "add Mod4 = Meta_R"

fi

fi

fi

SETXKBMAP=`gdmwhich setxkbmap`

if [ x$SETXKBMAP != x ] ; then

# FIXME: is this all right? Is this completely on crack?

# What this does is move the xkb configuration from the GDM_PARENT_DISPLAY

# FIXME: This should be done in code. Or there must be an easier way ...

if [ -n "$GDM_PARENT_DISPLAY" ]; then

XKBSETUP=`( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $SETXKBMAP -v )`

if [ -n "$XKBSETUP" ]; then

XKBKEYMAP=`echo "$XKBSETUP" | grep '^keymap' | awk '{ print $2 }'`

XKBTYPES=`echo "$XKBSETUP" | grep '^types' | awk '{ print $2 }'`

XKBCOMPAT=`echo "$XKBSETUP" | grep '^compat' | awk '{ print $2 }'`

XKBSYMBOLS=`echo "$XKBSETUP" | grep '^symbols' | awk '{ print $2 }'`

XKBGEOMETRY=`echo "$XKBSETUP" | grep '^geometry' | awk '{ print $2 }'`

if [ -n "$XKBKEYMAP" ]; then

$SETXKBMAP -keymap "$XKBKEYMAP"

elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" -a -n "$XKBGEOMETRY" ]; then

$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS" -geometry "$XKBGEOMETRY"

elif [ -n "$XKBTYPES" -a -n "$XKBCOMPAT" -a -n "$XKBSYMBOLS" ]; then

$SETXKBMAP -types "$XKBTYPES" -compat "$XKBCOMPAT" -symbols "$XKBSYMBOLS"

elif [ -n "$XKBSYMBOLS" ]; then

$SETXKBMAP -symbols "$XKBSYMBOLS"

fi

fi

fi

fi

exit 0

好长哦!按仁兄说的,加一句(什么我忘了:(),要加到那个位置呢?

作者: baojian2002125

发布时间: 2007-05-22

加在exit 0前面就可以了.

你已经启动了vino可能会冲突. 两种应该只能用一种

作者: lastart

发布时间: 2007-05-22

引用:

作者: lastart

加在exit 0前面就可以了.

你已经启动了vino可能会冲突. 两种应该只能用一种那应该怎样去掉vino呢?谢谢!

作者: baojian2002125

发布时间: 2007-05-22

如何解答呢?多多评论以下,对错都是个启发啊!

作者: baojian2002125

发布时间: 2007-05-28

你可以把vino包卸掉或或者只把vino文件改名/删除. 当然也可以选择把vnc卸掉. 设置一下vino你估计没设置过吧? man vino看一下.

作者: lastart

发布时间: 2007-05-29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值