로컬 컴퓨터에서 응용 프로그램을 실행하고 원격 디스플레이에 GUI 표시


35

로컬 데스크톱에서는 응용 프로그램을 실행할 수 있지만 랩톱에는 GUI를 표시 할 수 있습니까 (원격 X)?

2 대의 개별 LAN 연결 시스템을 사용하여 듀얼 모니터 설정을 에뮬레이트 할 수 있는지 궁금합니다.

시너지 효과를 설치했으며 데스크탑 키보드 / 마우스로 랩톱을 쉽게 제어 할 수 있지만 데스크탑에서 무언가를 실행하고 랩톱 화면에 GUI를 표시하고 싶습니다.

X에 대한 제한된 경험을 통해 원격 컴퓨터에서 프로그램을 실행하고 첫 번째 디스플레이를 사용하여 출력을 표시 할 수는 있지만 다른 방법으로는 볼 수 없다는 것을 알고 있습니다.

모든 조언은 큰 도움이 될 것입니다. 고맙습니다

Ubuntu 12.10에서 XFCE 4.10을 실행하는 PS

답변:


39

변형 A-다른 디스플레이로 X Windows 촬영 :

  1. 랩톱의 Xserver가 TCP 연결을 청취하기 시작합니다. 슬프게도 X11-Networking은 대부분의 배포판에서 기본적으로 비활성화되어 있습니다. Xserver는 디스플레이 관리자 (gdm, lightdm)에 의해 시작되므로 다음과 같이 구성해야합니다.

    어떤 디스플레이 관리자를 사용하든 / etc /의 일부 구성 파일에는 아마도 책임있는 XServer 매개 변수가 포함되어있을 것입니다. grep -r 'nolisten tcp' /etc/랩탑에서 실행 하여 어떤 구성 파일이 책임이 있는지 확인하고 표시된 부분 -nolisten tcp(전체 행이 아니라이 매개 변수 만)을 제거하십시오. 랩톱에서 X를 다시 시작하십시오.

    이제 랩톱에 tcp 포트 6000에서 디스플레이가 실행되고 있어야합니다 ( nmap -p6000 Laptop포트가 "열림"으로보고 된 경우 데스크탑 PC에서 실행 해보 십시오).

  2. 데스크탑 컴퓨터에서 X 디스플레이를 사용할 수있게하십시오. X11은 인증 메커니즘을 사용하여 디스플레이에 대한 액세스 권한을 부여합니다. 데스크탑 PC가 Windows를 랩톱으로 쏠 수 있도록해야합니다. 일반적으로 디스플레이 쿠키를 교환합니다.

    우선 노트북에 손을 대고이 단계를 수행하십시오. DISPLAY변수와 모든 개념을 얻은 후에는 ssh를 통해이를 수행 할 수 있습니다.

    빠르고 더러워진 경우 : xhost +desktops.computers.ip.address랩톱에서 실행 하여 데스크톱 컴퓨터에 X 액세스 권한을 부여 할 수 있습니다. 하는 것으로 모든 사용자 여러분의 노트북 컴퓨터에 당신의 노트북을 사용할 수 있습니다 X이 방법을 표시합니다. 랩탑 디스플레이에 키로거를 설치하기에 충분합니다. 이 방법은 테스트 용도로만 사용하십시오.

    정확하고 안전한 : xauth extract cookie-file :0랩톱에서 실행 하여 디스플레이 액세스 암호를 "쿠키 파일"로 내 보냅니다. 쿠키를 데스크탑 컴퓨터로 전송하십시오. 를 실행하십시오 xauth merge cookie-file. 또는 한 단계 만 거치면 (데스크톱에서) ssh Laptop xauth extract - :0 |xauth merge -참고 : 랩톱과 데스크톱이 홈 디렉토리를 공유하는 경우 (즉, nfs를 통해) 자격 증명을 교환 할 필요가 없습니다. 신임 정보 데이터베이스는 홈 디렉토리의 .Xauthority 파일이며 다른 시스템간에 공유 할 수 있습니다.

  3. 프로그램 실행 : 데스크탑 PC의 터미널에서을 실행 export DISPLAY=Your.Laptops.IP.Address:0하고 동일한 터미널에서 X 프로그램을 실행하십시오. 노트북 디스플레이에 나타납니다.

변형 B-트위스트와 함께 SSH 사용.

SSH는 로컬 X11 소켓 (일반적으로 Unix 도메인 소켓)을 원격 시스템의 로컬 TCP 소켓으로 전달한 후 디스플레이 쿠키를 협상 한 다음 원격 시스템에서 DISPLAY-Environment를 설정하여 X11 전달을 수행합니다. 이렇게하면 모든 X11 트래픽이 ssh 터널을 통해 암호화됩니다. 일반적인 사용 사례는 로컬 디스플레이를 원격 컴퓨터로 전달하는 것입니다 (즉, 원격 응용 프로그램이 x 개의 창을 로컬로 표시 할 수 있음).

ssh 사용의 장점은 X-Server를 tcp 청취 모드로 둘 필요가 없다는 것입니다 (유닉스 소켓이 사용되기 때문에). 그리고 ssh는 자격 증명 교환을 처리합니다.

  1. 데스크탑 컴퓨터에서 랩톱으로 SSH 연결 (아직 -X를 사용할 필요는 없음)
  2. 원격 쉘에 export DISPLAY=:0이를 입력 하면 ssh를 통해 얻은 쉘에서 노트북에서 이미 실행중인 디스플레이를 사용할 수 있습니다. 지금 X 명령을 실행하면 노트북 화면에는 이미 표시되지만 노트북에서는 계속 실행됩니다 (안전하게 시도하십시오).
  3. 이 쉘 ssh에서 데스크탑 컴퓨터로 다시 돌아가서 이번에는 -X를 사용하십시오. 이제 ssh 세션이 시작된 시스템에 쉘이 있지만 이번에는 X를 사용하여 작업합니다. xeyes 또는 xcalc를 실행하여 테스트하십시오.
  4. echo $DISPLAY노트북 X 디스플레이가 데스크탑 컴퓨터에있는 지정을 보여줍니다. 즉 : 10 또는 : 11.
  5. 이제 터미널을 최소화 할 수 있습니다. export DISPLAY=:10데스크탑 컴퓨터에 입력 한 내용 (표시 번호 참조)은 나중에 동일한 쉘에서 실행하는 각 프로그램이 노트북 화면에 나타납니다.

    모든 X11 트래픽이 SSH를 통해 전달되므로이 변형은 쉽고 빠르다.

변형 C-원래 씬 클라이언트 개념 :

랩톱을 사용하여 데스크톱 컴퓨터에서 완전히 실행되는 데스크톱 세션을 열 수 있습니다.

  1. XDMCP 브로드 캐스트에 응답하도록 데스크탑의 디스플레이 관리자를 구성하십시오. 이를 수행하는 방법은 디스플레이 관리자에 따라 다릅니다. 일부 디스플레이 관리자는이 기능을 전혀 지원하지 않습니다 (예 : 슬림). XDM, KDM, WDM, GDM은이를 지원합니다.

  2. 데스크탑에서 디스플레이 관리자를 요청하는 랩톱에서 X-Server를 시작하십시오. 중첩 된 X : Xephyr :1 -query desktop또는 Xephyr :1 -broadcast 노트북 X- 서버를 종료하고 시스템 터미널에 입력하여sudo Xorg :0 -broadcast

    디스플레이 관리자는 자격 증명이 생성 및 교환되고 모든 것을 확인할 수 있습니다. 축하합니다. 이제 데스크톱 컴퓨터에서 제공 한 로그인 창이 나타납니다.


2
BTW. 이 멋진 X11-Functionality는 우분투가 Wayland로 전환되면 작동을 멈출 것입니다. 기본 웨이 랜드 애플리케이션은 더 이상 ssh를 통해 전달할 수 없습니다.
Paul Hänsch

6
X-Server를 제어 할 그래픽 툴체인이 없다는 것이 아이러니하지 않습니까? GUI를 실제로 사용하려면 먼저 명령 줄을 지배해야합니다.
Paul Hänsch

일반 힌트 : 원격 디스플레이에서 시작하려는 첫 번째 프로그램은 응용 프로그램 시작 기입니다. 즉, lxpanel 또는 무엇인가. 이것은 많은 명령 줄 작업을 절약합니다.
Paul Hänsch

이것은 여전히 ​​우분투 17의 + ...에서 작동합니까 아니면 Wayland 예측이 통과 되었습니까?
Xen2050

19

ssh X 전달을 사용하여 목표를 달성 할 수 있습니다. 동일한 서브넷에 있으면 빨리 종료됩니다.

랩톱 및 데스크탑 PC에 ssh 서버 및 클라이언트 설치

sudo apt-get install ssh

데스크탑 PC에 연결하려면 랩톱에서 터미널을 열고 다음을 입력하십시오.

ssh -X username@desktop_pc_ip

터미널을 사용하여 소프트웨어를 시작할 수 있습니다 (예 : Firefox 시작) firefox. 터미널을 입력 하면됩니다.


2
sshd 구성 파일 (일반적으로 / etc / ssh / sshd_config)에 X11Forwarding도 yes로 설정되어 있는지 확인하는 것을 잊지 마십시오.
Matrix Mole

내 유스 케이스는 다음과 같습니다. 예를 들어 데스크탑에 있고 Firefox를 엽니 다. 그러나 랩탑 디스플레이에서 브라우저 창을 열고 데스크탑에서 계속 실행하고 싶습니다. 작업 공간과 유사한 기능을 찾고 있지만 원격 작업 공간 (노트북)을 사용하기 위해 로컬 작업 공간 (같은 PC에 4 개의 화면) 대신
Vlad Balmos

2
또한 x2x패키지 를 사용해 볼 수 있으며 다른 컴퓨터에서 하나의 키보드와 마우스를 사용할 수 있습니다. 예 :ssh -X user@host x2x -west -to :0
OHLÁLÁ

@iUngi 이미 시너지 효과를 사용하고 있습니다. 어쨌든 고맙습니다
Vlad Balmos

데스크탑의 X 서버에 대한 액세스를 열어 원격 시스템에 대한 광범위한 액세스를 제공한다는 점에 유의하십시오. 서버가 손상된 경우 데스크탑으로 들어가는 데 사용될 수도 있습니다. X11 포워딩은 유용하지만 수행중인 작업에 대해 생각하고 기본적으로 설정하지 마십시오.
mc0e

7

예비

(이 작업은 한 번만 수행)

데스크탑에서 SSH 서버 설치

sudo apt-get 설치 openssh-server


노트북에서 :

ssh -X username @ desktop_pc_ip

터미널에서 당신은 당신이 무엇을 실행 바탕 화면에 있지만 노트북에 표시됩니다 얻을. 바탕 화면에 앉아있는 동안 동일한 작업을 수행하고 랩톱에서 창을 보내려면 계속하십시오.

터미널에서 당신은 실행

에코 $ DISPLAY

이것은 당신에게 다음과 같은 것을 보여줄 것입니다 :

localhost:10.0

데스크탑에서 :

터미널을 열고 실행

DISPLAY=:10.0 firefox

firefox랩톱 에는 창이 있지만 데스크탑에서는 실행 중이 어야 합니다. 입력 한 숫자 (예 :) 10.0echo결과 와 같은지 확인하십시오


3

SSH와 화면의 조합을 사용하여 원하는 상황을 찾고 있습니다.

데스크탑에서 설치 화면 :

sudo apt-get 설치 화면

거기에서 새로운 스크린 세션을 시작하십시오 :

화면

그 안에 파이어 폭스를 엽니 다.

파이어 폭스

데스크탑에서 원하는대로 Firefox를 사용하고 랩톱에서 컴퓨터로 ssh하십시오.

ssh -X username @ hostname

실행중인 화면 세션을 보려면 다음 명령을 입력하십시오.

화면 -ls

화면 세션에 로그인하십시오 (1234는 screen -ls가 제공 한 숫자입니다).

화면 -x 1234

그런 다음 랩톱에서 파이어 폭스를 사용하고 바탕 화면에서 터미널을 닫을 수 있습니다.


그것을 시도했다. 터미널에서 화면을 열고 바탕 화면에서 파이어 폭스를 시작한 다음 랩톱에서 바탕 화면으로 썰어 화면 세션을 연결했지만 랩톱에 창이 없으며 화면에서 실행중인 프로그램의 출력 만 표시됩니다.
Vlad Balmos

당신은 그것을 섞고 있었다. 잠깐만 ... 최소한 한 명은 했어 데스크탑 컴퓨터에 화면을 설치하고, 노트북을 ssh -X데스크탑에 연결하고, ssh 세션에서 화면을 시작하고, 분리 한 후 세션을 계속 실행하십시오. 그런 다음 데스크톱 컴퓨터에서 손으로 화면 세션을 다시 연결하고 무언가를 실행하십시오. 이것은 내 "비틀림이있는 SSH"답변과 유사합니다. 화면을 사용하면 조금 더 편리합니다.
Paul Hänsch

3

Virtualgl터보 VNC 클라이언트 를 통해 액세스 할 수 있는 여분의 백그라운드 데스크톱 (TightVNC 스타일) 을 만듭니다. 원격 데스크톱 유형 거래로 작동하지만 네트워크를 통해 부드러운 비디오재생 합니다.

원격 연결을 위해 CPU 오버 헤드오프로드 하는 방법을 찾고 있다면 랩톱의 컴퓨터에서 앱을 실행할 수 있습니다.

http://www.virtualgl.org/

위에서 언급 한 / dude와 같이 SSH를 통해 데스크탑 환경을 내보낼 수도 있습니다.


고맙습니다. 유망 해 보인다. 살펴보고 계속 게시하겠습니다.
Vlad Balmos

예, "TurboVNC"(또한 해당 구성 요소 VirtualGL)는 비디오 게임 및 영화를 재생할 수있는 원격 데스크톱 프로그램을 검색 한 결과입니다. 추가 모니터로 쉽게 작동합니다.
TardisGuy

1

좀 더 온라인을 파고 난 후 나는 DMX를 맞았다

홈페이지에서

Xdmx는 서로 다른 컴퓨터에 연결된 여러 디스플레이 (각각 전형적인 X 서버를 실행하는)에 대한 다중 헤드 지원을 제공하는 프록시 X 서버입니다. Xinerama를 Xdmx와 함께 사용하면 여러 컴퓨터의 여러 디스플레이가 단일 통합 화면으로 사용자에게 표시됩니다.


1
설치 방법과 사용 방법에 대한 지침을 제공 할 수 있다면 더 나은 답변이 될 것입니다.
fossfreedom

XmetaX는 유사한 기능을 제공합니다. Xdmx와 XmetaX에 대한 대안이 있습니까?
Mariusz

1

네 가능합니다. 로컬 컴퓨터에 xclock이 설치된 Linux 컴퓨터를 모두 사용하고 있습니다. xclock을 로컬로 실행하고 원격 Linux 컴퓨터에서 시계를 표시하려고합니다.

reboot the remote machine
Disable firewall
Disable SELINUX
Check $DISPLAY variable value by command
echo $DISPLAY
Let say its value is :1
run command
xhost +

Now on local computer
xclock -display remote_machine_IP_address:1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.