You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OSX系统下无法在远程主机打开X11窗口问题求助

解决OSX Sierra下SSH X11转发突然失效的问题

我之前也碰到过类似的突发状况,结合你的环境(OSX 10.12.6 + XQuartz)和报错信息(xeyes connect localhost port 6000: Connection refused Error: Can't open display: localhost:10.0),给你整理了几个针对性的排查和修复步骤,按顺序试应该能解决:

1. 确认XQuartz的网络权限配置

打开XQuartz的偏好设置(顶部菜单栏点击XQuartz -> Preferences),切换到Security标签页,务必勾选Allow connections from network clients选项。修改后一定要完全退出XQuartz(包括后台进程,比如在Activity Monitor里杀掉所有XQuartz相关进程)再重新打开,这个配置必须重启才会生效。

2. 检查本地X11端口监听状态

打开本地终端,执行以下命令查看XQuartz是否在监听正确的端口:

lsof -i :6000

如果输出里能看到Xquartz进程监听*:6000或者localhost:6000,说明本地监听正常;要是没有任何输出,大概率是XQuartz没正确启动监听,彻底退出再重新打开一次试试。

3. 调整本地SSH客户端的X11转发配置

编辑你本地的~/.ssh/config文件(没有的话直接新建一个),添加以下配置:

Host *
  ForwardX11 yes
  ForwardX11Trusted yes

保存文件后,重新用ssh user@remote连接远程主机(不用再手动加-Y参数,配置里已经开启了信任级别的X11转发),再尝试启动xeyes测试。

4. 检查远程主机的sshd配置

登录远程主机后,用sudo权限编辑/etc/ssh/sshd_config文件,确保以下配置处于开启状态:

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

修改完成后重启远程主机的sshd服务:

  • Ubuntu/Debian系统:sudo systemctl restart sshd
  • CentOS/RHEL系统:sudo service sshd restart

5. 手动指定DISPLAY变量临时测试

如果前面几步都没解决问题,登录远程主机后先手动设置DISPLAY变量试试:

export DISPLAY=localhost:10.0

然后运行xeyes,要是还是报错,换成export DISPLAY=127.0.0.1:10.0再试,有些系统对localhost的解析可能存在小问题。

6. 排查防火墙干扰

  • 本地OSX防火墙:打开系统偏好设置 -> 安全与隐私 -> 防火墙,点击“防火墙选项”,确保XQuartz在“允许传入连接”的列表中。
  • 远程主机防火墙:检查远程主机的防火墙(比如ufw、iptables)是否阻止了6010端口(因为X11DisplayOffset设为10,对应端口是6000+10=6010),需要允许该端口的入站连接。

你可以一步步执行,每完成一步就测试xeyes是否能正常启动,应该能定位到问题所在。

内容的提问来源于stack exchange,提问作者user9587609

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:41:11