互联网上的所有 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。
转到 vcxsrv 安装目录,例如 C:\Program Files\VcXsrv。 查找名为“X0.hosts”的文件 用记事本.exe 打开它。 添加您想要的东西!
尝试使用root用户,成为root用户:sudo -i