互联网上的所有 VcXsrv 示例都是在禁用访问控制和“-ac”开关的情况下运行的。但实际上我想打开基于主机的访问控制,目前还没有用。
首先,我使用 -auth 开关从名为 pc1 的 Windows 10 PC(最新版本/补丁)启动 VcXsrv。
> "C:\Program Files\VcXsrv\vcxsrv.exe" :0 -multiwindow -clipboard -wgl -auth "C:\users\myname\hosts.txt"
在 hosts.txt 中,我有以下内容,其中 linux1 是远程主机名
localhost
inet6:localhost
linux1
inet6:linux1
192.168.1.191
inet6:192.168.1.191
IP 地址是 linux1 的。
但是,当我从 linux1 启动 xterm 时,出现了这个错误
linux1$ /usr/bin/xterm -display pc1:0
Authorization required, but no authorization protocol specified
/usr/bin/xterm: Xt error: Can't open display: pc1:0
本地从 pc1 运行 xhost 时,没有提及我的远程主机或其 ip。
C:\Program Files\VcXsrv>xhost
access control enabled, only authorized clients can connect
INET:pc1.mshome.net
LOCAL:
INET:pc1
INET6:pc1
因此,看起来“-auth”没有加载 hosts.txt 文件
谁能分享一些想法?
最佳答案
所以 -auth
用于不同的身份验证/访问控制机制。要使用基于主机的访问控制,请在您的 Windows 10 PC 上运行类似于以下的命令:
xhost +inet:localhost
xhost +inet6:localhost
xhost +inet:linux1
xhost +inet6:linux1
xhost +inet:192.168.1.191
(但不需要用 inet6:
显式重复最后一行,因为那是专门的 IPv4 地址。)
然后再次自行运行xhost
。现在应该出现新的主机名和 IP 地址。从它们中的任何一个连接到 VcXsrv 现在应该可以工作。
关于windows - VcXsrv 基于主机的访问控制不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62845255/