我有一个运行 Xming 的 Win 11 机器,这是我在 Win 7 上使用的二进制文件,没有出现任何问题。
Xming 是 6.9 版本,32位二进制尽管如此,它似乎可以在 64 位 Linux 上运行。但是我想知道是否由于位宽错误而无法理解传入协议? netstat -an
Win11 盒子上报告没有使用端口 6000(默认的 X 服务器侦听端口)。我启动 Xming,netstat -an
现在报告端口 6000:
TCP 0.0.0.0:6000 0.0.0.0:0 LISTENING
我有一个 Fedora 31 盒子。我可以使用 DISPLAY=:0 运行 xeyes 并在 Linux 机器上获得显示,无论终端是 Linux 机器上的 xterm 还是 Win11 上的 Putty 窗口。
strace xeyes |& less
显示连接正常。 Connect() 返回 0(成功)。它正在写入套接字。文件描述符 3 是 TCP 连接,由 socket() 返回,并且当我们看到它正在写入并接收一些数据时,它一定已打开:8 字节标头和字符串“未指定协议”。
socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_TCP) = 3
setsockopt(3, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
connect(3, {sa_family=AF_INET, sin_port=htons(6000),
sin_addr=inet_addr("192.168.11.17")}, 16) = 0
getpeername(3, {sa_family=AF_INET, sin_port=htons(6000),
sin_addr=inet_addr("192.168.11.17")}, [124->16]) = 0
access("/home/fs/.Xauthority", R_OK) = 0
openat(AT_FDCWD, "/home/fs/.Xauthority", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=702, ...}) = 0
read(4, "\0\0\0\4\300\250\10\6\0\0010\0\22MIT-MAGIC-COOKIE-1\0"..., 4096) = 702
read(4, "", 4096) = 0
close(4) = 0
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{iov_base="l\0\v\0\0\0\0\0\0\0\0\0", iov_len=12}, {iov_base="", iov_len=0}],2) = 12
recvfrom(3, 0x562bca54c080, 8, 0, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\0\26\v\0\0\0\6\0", 8, 0, NULL, NULL) = 8
recvfrom(3, "No protocol specified\n\0\0", 24, 0, NULL, NULL) = 24
write(2, "No protocol specified\n", 22No protocol specified) = 22
shutdown(3, SHUT_RDWR) = 0
close(3) = 0
此外:在连接报告失败后,单击图标托盘(右下角)中的 Xming 图标并打开日志文件:
AUDIT: client 4 rejected from IP
那么为什么我无法连接呢?
答案1
我没有在文档中看到这一点,但编辑C:\Program Files (x86)\Xming\X0.hosts
以包含 Linux 盒子的地址现在允许连接。
命令行选项-ac
将简单地忽略该X0.hosts
文件。但是,这将允许来自任何计算机的连接,因此不适合公共网络。