저는 astra(slackware 15)와 nebula(macos mojave)라는 두 대의 컴퓨터에서 X를 실행하고 있습니다. Astra에서 로컬로 xeyes를 실행하고 성운에 표시하고 싶습니다. 다양한 문서를 통해 내가 이해한 바는 다음을 실행할 수 있어야 한다는 것입니다.
xeyes -display nebula:X.Y
Astra에서 X는 성운의 디스플레이 인덱스이고 Y는 화면 번호입니다.
나는 X와 Y의 조합, X나 Y의 조합 등을 여러 번 시도했지만 소용이 없었습니다. 오류 메시지가 계속 나타납니다.
오류: 디스플레이를 열 수 없습니다:nebula:XY
로컬에서 다음 명령을 사용하여 원격 컴퓨터에서 실행 중인 X 프로그램을 표시할 수 있습니다.
ssh -Y host
문제는 없습니다. 하지만 제가 해결하려는 것은 그게 아닙니다. 위에서 설명하고 Xorg 서버에서 지원하는 대로 로컬 클라이언트를 로컬에서 실행하고 디스플레이를 원격으로 표시할 수 있기를 원합니다.
과거의 작동 방식과 현재 작동 방식에는 차이가 있을 수 있습니다. 제가 찾은 문서는 더 오래되었습니다.
답변1
Nebula에 표시하려면 astra의 MacOS Mojave 컴퓨터, Slackware 15 컴퓨터에서 몇 가지 단계를 수행해야 합니다.
- XQuartz 환경 설정 - 보안 -> 네트워크 클라이언트로부터의 연결 허용.
- XQuartz 다시 시작
- Nebula에서 MIT-MAGIC-COOKIE-1 가져오기
- Astra의 xauth 목록에 추가하세요.
- Astra에서 클라이언트를 실행하면 Nebula 화면에 표시됩니다.
세부사항은 다음과 같습니다:
X가 어떻게 시작되는지 보려면 다음을 실행하세요 ps aux | grep X
.
user 96691 0.0 0.0 4279568 5012 ?? S 12:39PM 0:00.01 /opt/X11/bin/Xquartz :0 -nolisten tcp -iglx -auth /Users/user/.serverauth.96532
주목해야 할 핵심 사항은 -nolisten tcp
및 입니다 -auth
. 이는 각각 X 서버가 TCP를 수신하고 있지 않으며 X 서버에 대한 연결에 인증이 필요함을 나타냅니다.
네트워크 연결을 허용하도록 XQuartz의 기본 설정을 변경하고 다시 시작하면 다음과 같은 변경 사항이 발생합니다.
user 97993 0.0 0.0 4279568 5004 ?? S 2:08PM 0:00.01 /opt/X11/bin/Xquartz :0 -listen tcp -iglx -auth /Users/user/.serverauth.97835
이제 XQuartz는 아래와 같이 TCP를 수신하고 있습니다.-listen tcp
Nebula, Nebula 또는 원격 로그인을 통해 매직 인증 쿠키를 얻으려면 다음을 실행 xauth list
하고 올바른 쿠키를 찾으십시오.
nebula:0 MIT-MAGIC-COOKIE-1 240800a1f435f70d92f8f8c706eeb547
Astra에서 다음 명령을 사용하여 xauth 목록에 쿠키를 추가합니다.
xauth add nebula:0 . 240800a1f435f70d92f8f8c706eeb547
모든 것이 순조롭게 진행되었다면 이제 Astra에서 xeyes를 실행할 수 있습니다.
xeyes -display nebula:0
참고 사항:
- 실행을 위해서는 XQuartz가 필요합니다 :)
- 쿠키는 최신 상태여야 합니다. 그것은 바뀔 것이다.
- 명령에 점이
xauth add
필요합니다.