Xming을 사용하여 서버에 연결하고 작동시키려고 합니다. 지금 다른 서버에 연결하려고 하는데 어떤 X Window System이 설치되어 있는지 잘 모르겠습니다. 퍼티를 통해 시도했는데 다음과 같은 오류/경고가 발생했습니다.
/usr/java/jdk1.7.0_67/bin> jvisualvm
/usr/java/jdk1.7.0_67/lib/visualvm/platform/lib/nbexec: WARNING: environment variable DISPLAY is not set
이전에 다음과 같이 Windows BAT 스크립트를 사용하여 XWindows를 시작했습니다.
@echo off
SET LOCAL_HOST=localhost
SET PATH=C:\wresourcex\bin\Xming
SET REMOTE_HOST=%1
SET SCREEN=%2
REM Default to archie with screen 1
if "%1"=="" SET REMOTE_HOST=MySever.com
if "%2"=="" SET SCREEN=0
SET DISPLAY=%LOCAL_HOST%:%SCREEN%.0
REM For XDM logon just run this line
REM run Xming -query %REMOTE_HOST% -lesspointer -emulate3buttons
REM For SSH Tunneling use these 2 lines
rem run Xming :%SCREEN% -lesspointer -notrayicon -emulate3buttons
run plink -ssh -X %REMOTE_HOST% /usr/dt/bin/Xsession
REM Use this if want Gnome instead
rem run plink -ssh -X %REMOTE_HOST% /usr/bin/gnome-session
위의 내용은 하나의 서버에서 작동하지만 지금 사용 중인 서버에서는 작동하지 않습니다. /usr/dt/bin/ 및 /usr/bin 폴더를 살펴봤지만 이 위치에는 프로그램(스크립트에서 참조됨)이 모두 존재하지 않습니다. 다른 프로그램을 사용해야 할 것 같은데, 연결하려는 서버에 어떤 "Xwindow" 프로그램이 설치되어 있는지 어떻게 알 수 있나요? 아니면 그게 중요한가요?
참고 - 서버에 대한 관리자 액세스 권한이 없으므로 아무것도 설치할 수 없습니다.
감사해요
편집하다
위에 표시된 스크립트를 사용하여 컴퓨터에 로그인하려고 하는데 작동하지 않습니다. 다른 컴퓨터에 연결하기 전에 동일한 스크립트를 사용했는데 작동했습니다.
연결하려는 컴퓨터는 Linux 서버입니다. 아래를 참조하세요.
Linux abc 2.6.32-279.11.1.el6.x86_64 #1 SMP Tue Oct 16 08:03:36 PDT 2012 x86_64 x86_64 x86_64 GNU/Linux
내 Windows PC에는 XMing이 설치되어 있습니다. Linux 시스템에 무엇이 설치되어 있는지, 해당 Linux 서버에 연결할 수 있는지 확인하기 위해 무엇을 찾아야 하는지 전혀 모릅니다.
답변1
X는 "서버"와 "클라이언트"에 대해 말할 때 약간 혼란스러울 수 있습니다. X 서버는 X 서버와 동일한 컴퓨터 또는 네트워크의 다른 컴퓨터에서 실행되는 프로그램인 X 클라이언트에 모니터, 키보드 및 마우스 서비스를 제공합니다.
Xming을 실행하는 Windows PC에 앉아 있다면 Xming이 X 서버입니다. 시스템 및 디스플레이 번호를 가리키는 DISPLAY 환경 변수를 설정하여 X 클라이언트(프로그램)가 이 X 서버에 연결하도록 지시할 수 있습니다. 예, 머신은 여러 개의 X 서버를 실행할 수 있으며, 그러면 서로 다른 디스플레이 번호를 갖게 됩니다. 예:
export DISPLAY=192.168.1.12:0
그런 다음 ssh와 포트 전달 기능이 있습니다. SSH 포트 전달의 특별한 경우는 X 전달입니다. 이를 위해서는 SSH 클라이언트가 어떤 DISPLAY에 연결할 것인지 알아야 하며, SSH 서버는 X11Forwarding을 허용해야 합니다. 이 설정을 사용하면 DISPLAY는 ssh 클라이언트 시스템에서 localhost:0과 같은 것으로 설정될 수 있으며 일단 ssh를 통해 연결되면 sshd 서버는 Linux 서버 시스템에서 DISPLAY를 localhost:10과 같은 것으로 설정합니다. Linux 시스템의 DISPLAY localhost:10으로 전송된 모든 X 트래픽은 ssh를 통해 암호화되어 Xming 시스템의 localhost:0으로 전달됩니다.
내 생각엔 작업 서버의 /etc/ssh/sshd_config에 X11Forwarding=yes가 있지만 문제 서버의 기본값은 X11Forwarding=no입니다. 이는 -X 또는 -Y 옵션이 ssh에 제공되더라도 ssh를 통해 로그인할 때 DISPLAY 변수가 설정되지 않는 이유를 설명합니다. /etc/ssh/sshd_config를 변경하여 이 문제를 해결할 수도 있고, ssh를 통한 터널링 없이 Windows 시스템을 가리키도록 DISPLAY 변수를 수동으로 설정할 수도 있습니다.