1

你能帮我找到一个支持 UNIX 域套接字或任何其他调整的 vncserver

tightvnc 在 /tmp/.X11-unix/X${display_number} 下创建一个套接字文件,但我不确定这是否可行

提前致谢

4

1 回答 1

0

你可以用 Tigervnc 或 X2go 来做:


老虎vnc

Tigervnc 添加了带有-rfbunixpath.

您可以通过两种方式获得 Tigervnc,使用官方版本或您的操作系统软件包系统,它们略有不同(对于 Debian,也许其他操作系统也是如此):

  • 官方版本(首选):

您可以从源代码构建它,也可以像这样使用此处的二进制文件:

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

然后将其复制到/usr/local您喜欢的任何位置。

创建一个密码来保护 vnc 服务器:vncpasswd

运行服务器:

vncserver :1 -geometry 1600x1000 -rfbunixpath /tmp/vnc_myunixSocket -nolisten tcp

例如,您现在可以通过以下方式远程连接 ssh:

ssh -fx -e none -o ExitOnForwardFailure=yes -L 4321:/tmp/vnc_myunixSocket user@IP & 
vncviewer localhost:4321
  • 使用包管理器(Debian apt)

Debian (buster) 的 Tigervnc 与官方版本不同,并且他们的 vncserver (perl 脚本) 有问题,你不能使用 Unix 套接字,因为他们检查开放端口,如果没有找到,那么脚本认为 vncserver 得到了一个问题并关闭它。要解决这个问题,您可以从该脚本中删除检查或直接使用 xtigervnc 而不使用这样的 vncserver 脚本:

Xtigervnc :1 -auth ~/.Xauthority -geometry 1600x1000 -depth 24 -rfbwait 30000 -rfbauth ~/.vnc/passwd -pn -localhost -SecurityTypes VncAuth -nolisten tcp -rfbunixpath /tmp/vnc_myunixSocket

如您所见,它并不好,但它可以工作,这就是我更喜欢官方版本的原因。


x2go

x2go 也使用 Unix 域套接字,并且不需要在服务器中打开任何端口。我一直使用官方网站来安装它,但现在我看到它也被添加到了 Debian 存储库。它也可以正常工作,这对于低资源服务器来说更好,因为它在您的客户端 PC 中使用 X 服务器(VNC 使用服务器的 X,因此消耗更多资源)

于 2019-11-24T19:42:39.360 回答