我正在尝试使用vncserver(有很多变体。我可以接受任何东西。)它侦听Unix域套接字而不是标准端口(5900)(即Internet域套接字)。我没有找到任何支持它的版本。 (我确实知道什么是域套接字,并且想在同一盒子上使用服务器和客户端。很奇怪的要求。)我已经有了它的客户端。我有点修改以支持我的要求。是否有人知道任何支持此要求的vnc服务器?
我怀疑https://stackoverflow.com/a/2150188/20146可以工作。
这里有一些额外的字符可以减轻StackOverflow的负担,该字符至少要30个:-|
至少有两种方法,Tigervnc和X2go:
Tigervnc用-rfbunixpath
添加了Unix域套接字。
您可以使用官方构建或您的OS软件包系统以两种方式以更少的方式获得Tigervnc,它们之间有一些差异(对于Debian而言,可能也有所不同,也许其他操作系统也是如此:]]
您可以从源代码构建它,也可以使用-rfbunixpath
中的二进制文件:
here然后将其复制到
curl -sSfL -o tigervnc-1.10.0.x86_64.tar.gz https://bintray.com/tigervnc/stable/download_file?file_path=tigervnc-1.10.0.x86_64.tar.gz tar xz -f tigervnc-1.10.0.x86_64.tar.gz
或您喜欢的任何位置。
使用以下命令创建密码以保护vnc服务器:/usr/local
运行服务器:
vncpasswd
例如,您现在可以使用以下方法远程连接ssh:
vncserver :1 -geometry 1600x1000 -rfbunixpath /tmp/vnc_myunixSocket -nolisten tcp
Debian的Tigervnc(破坏程序)与官方版本不同,并且其vncserver(perl脚本)有问题,您不能使用Unix套接字,因为它们会检查开放端口,如果找不到,则脚本认为该vncserver遇到问题并关闭它。为了解决这个问题,您可以从该脚本中删除支票或直接使用xtigervnc,而无需使用vncserver脚本,如下所示:
ssh -fx -e none -o ExitOnForwardFailure=yes -L 4321:/tmp/vnc_myunixSocket user@IP & vncviewer localhost:4321
如您所见,它不太好但是可以用,所以我更喜欢正式版本。
x2go也使用Unix域套接字,并且不需要服务器中的任何开放端口。我一直使用官方的Xtigervnc :1 -auth ~/.Xauthority -geometry 1600x1000 -depth 24 -rfbwait 30000 -rfbauth ~/.vnc/passwd -pn -localhost -SecurityTypes VncAuth -nolisten tcp -rfbunixpath /tmp/vnc_myunixSocket
来安装它,但是现在我看到它也被添加到了Debian仓库中。它也可以正常工作,这对于低资源服务器来说更好,因为它在客户端PC中使用X服务器(VNC使用服务器的X,因此会消耗更多资源)