我正在使用 Amazon Linux 2(类似 Fedora/Cent 操作系统的发行版)EC2 机器以及深度学习 AMI (Amazon Linux 2) 版本 30.1AMI。
我想在远程实例中使用xclip
and 。gedit
但如果我输入xclip
我得到
Error: Can't open display: (null)
如果我这样做gedit filename
我得到
(gedit:6012): Gtk-WARNING **: 00:18:40.117: cannot open display:
我已经浏览过以下链接:
- https://github.com/microsoft/WSL/issues/4933
- xsel:无法打开显示:(空)
- https://askubuntu.com/questions/1035903/how-can-i-get-around-using-xclip-in-the-linux-subsystem-on-win-10
- https://www.cyberciti.biz/faq/error-couldnt-open-display-null-and-solution/
- https://superuser.com/questions/310197/how-do-i-fix-a-cannot-open-display-error-when-opening-an-x-program-after-sshi
- https://www.linuxquestions.org/questions/linux-software-2/xdotool-error-can%27t-open-display-null-4175527094/
- https://serverfault.com/questions/765606/xming-cant-open-display-error
- https://serverfault.com/questions/425346/cant-open-display-x11-forwarding-cent-os
- https://askubuntu.com/questions/305654/xclip-on-headless-server/305681#305681
因而有,
- 已安装
xauth
- 手动将环境变量 DISPLAY 设置为
export DISPLAY="IP_of_remote_machine:0"
export DISPLAY="127.0.0.1:0"
export DISPLAY=:0.0
export DISPLAY=localhost:0
当我这样做时,我得到(gedit:6053): Gtk-WARNING **: 00:23:36.052: cannot open display: 127.0.0.1:0
- 我已经尝试过该
-Y
标志(-X
出于安全原因,这不是一个选项,也-X
不起作用) - 我已经
ForwardX11 yes
在客户端~/.ssh/config
和X11Forwarding yes
服务器端添加了/etc/ssh/sshd_config
什么都不起作用。有什么指示吗?
编辑:
我也看了这视频说DISPLAY
不应进行硬编码。但我的DISPLAY
不是自动设置的。当我做 a 时,echo $DISPLAY
我什么也得不到。
所以我做了一个xauth list
给了我
ip-x-y-x.ec2.internal/unix:10 MIT-MAGIC-COOKIE-1 c84bcd904dd50f7776f667eca7a480f5
所以我做了
export DISPLAY=localhost:10.0
我仍然遇到同样的错误。
答案1
我通过简单地将 $DISPLAY 硬编码为:1 解决了这个问题,
export DISPLAY=:1
在我的.bashrc
文件中。
然而,我仍然不明白为什么这有效。这是输出xauth list
ip-172-31-74-230.ec2.internal:1 MIT-MAGIC-COOKIE-1 8a44b41e42cae52c6acd4747763bb985
ip-172-31-74-230.ec2.internal/unix:1 MIT-MAGIC-COOKIE-1 8a44b41e42cae52c6acd4747763bb985
ip-172-31-74-230.ec2.internal:2 MIT-MAGIC-COOKIE-1 e24f36d585762b0c0fe24010b99e448d
ip-172-31-74-230.ec2.internal/unix:2 MIT-MAGIC-COOKIE-1 e24f36d585762b0c0fe24010b99e448d
ip-172-31-74-230.ec2.internal/unix:10 MIT-MAGIC-COOKIE-1 c84bcd904dd50f7776f667eca7a480f5
答案2
环境DISPLAY
变量将导出到任何需要原始计算机(您输入命令的 PC)上的 x-server 规范的 x-Client 程序ssh
。
这些天我这样做的方法是偷懒并询问环境:
$ env | grep SSH
SSH_CLIENT=192.168.182.159 45462 22
SSH_TTY=/dev/pts/28
SSH_CONNECTION=192.168.182.159 45462 192.168.188.120 22
SSH_CLIENT
并SSH_CONNECTION
显示您的始发终端的 IP 地址。在这种情况下我export
如下:
$ export DISPLAY="192.168.182.159:0.0"
$ xeyes
启动 xeyes 让自己确信一切都为你服务。您的显示器已可供使用。