DISPLAY 환경 변수가 설정되지 않았습니다.

DISPLAY 환경 변수가 설정되지 않았습니다.

저는 Amazon Linux 2(Fedora/Cent OS와 유사한 배포판) EC2 시스템을 사용하고 있으며Deep Learning AMI(Amazon Linux 2) 버전 30.1AMI.

원격 인스턴스에서 및 를 사용하고 싶습니다 xclip. gedit하지만 내가 입력 xclip하면

Error: Can't open display: (null)

내가 이렇게 하면 gedit filename나는 얻는다.

(gedit:6012): Gtk-WARNING **: 00:18:40.117: cannot open display:

다음 링크를 탐색했습니다.

  1. https://github.com/microsoft/WSL/issues/4933
  2. xsel: 디스플레이를 열 수 없습니다: (null)
  3. https://askubuntu.com/questions/1035903/how-can-i-get-around-using-xclip-in-the-linux-subsystem-on-win-10
  4. https://www.cyberciti.biz/faq/error-couldnt-open-display-null-and-solution/
  5. https://superuser.com/questions/310197/how-do-i-fix-a-cannot-open-display-error-when-opening-an-x-program-after-sshi
  6. https://www.linuxquestions.org/questions/linux-software-2/xdotool-error-can%27t-open-display-null-4175527094/
  7. https://serverfault.com/questions/765606/xming-cant-open-display-error
  8. https://serverfault.com/questions/425346/cant-open-display-x11-forwarding-cent-os
  9. https://askubuntu.com/questions/305654/xclip-on-headless-server/305681#305681

그러므로 있다,

  1. 설치됨xauth
  2. 환경 변수 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
    
  3. 플래그 를 사용해 보았습니다 -Y( -X보안상의 이유로 이는 옵션이 아니며 -X작동하지 않습니다).
  4. ForwardX11 yes클라이언트측 ~/.ssh/configX11Forwarding yes서버측 에 추가했습니다./etc/ssh/sshd_config

아무것도 작동하지 않습니다. 어떤 지침이 있나요?

편집하다:

나도 봤는데이것비디오에는 DISPLAY하드코딩하면 안 된다고 나와 있습니다. 하지만 내 것은 DISPLAY자동으로 설정되지 않습니다. 내가 할 때 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_CLIENTSSH_CONNECTION발신 터미널의 IP 주소를 표시합니다 . 이 경우 나는 export다음과 같습니다:

 $ export DISPLAY="192.168.182.159:0.0"
 $ xeyes

xeyes를 시작하고 모든 것이 잘 작동하고 있음을 확인하세요. 모니터를 사용할 준비가 되었습니다.

관련 정보