원격의 X11 응용프로그램을 사용하고자 할 때 SSH 프로토콜을 이용하면 네트워크의 제약이나 추가적인 설정 없이 SSH 접속만으로도 X11 응용프로그램을 구동할 수 있습니다.
하지만 SSH 서버에 접속하였다고 하더라도 X11 포워딩이 켜져 있지 않거나 기타 다른 이유로 X11 포워딩을 사용할 수 없는 경우라면 X 응용프로그램은 바로 구동되지 않습니다.
이 경우에도 일반 SSH 터널링을 이용하면 X11 응용프로그램을 구동할 수 있습니다.
Xstart 세션에서 일반 SSH 터널링 사용하기
Xstart 실행하여 ‘새로 만들기’를 누룬 후 SSH 프로토콜의 ‘설정’을 누릅니다.
‘SSH 프로토콜 설정’ 대화 상자에서 ‘터널링’ 탭을 누른 후 ‘추가’ 버튼을 눌러 다음과 같은 설정을 합니다.
종류(방향): Remote(리모트에서 로컬로)
원본 호스트: localhost
수신 대기 포트: 6020(6000번 이상 임의의 포트 번호를 입력합니다. 이미 다른 프로세스가 해당 포트를 점유하고 있을 수 있을 수 있습니다. 이 경우 다른 값으로 설정합니다. 이 포트 번호에서 6000번을 뺀 20이 DISPLAY 번호가 됩니다.)
대상 호스트: localhost
대상 포트: 6030(6000~6255번 사이의 포트 번호를 입력합니다. 이 포트 번호에서 6000번을 뺀 30이 Xmanager의 DISPLAY 번호가 됩니다.)‘확인’을 눌러 포워딩 규칙을 저장하고 ‘SSH 프로토콜 설정’ 대화 상자를 닫습니다.
Xstart 대화 상자에서 ‘고급’을 눌러 ‘고급 옵션’ 대화 상자를 엽니다.
‘고급 옵션’ 대화 상자에서 ‘디스플레이 번호 자동으로 할당’을 해제한 후 ‘디스플레이 번호’에 위 터널링 설정의 ‘대상 포트’에서 정한 값과 관련된 30을 입력합니다. 이 번호가 Xmanager 디스플레이 번호가 됩니다.
Xstart 명령에 실행하고 하는 원격의 X 응용프로그램의 경로와 이름을 입력합니다. xterm을 실행해 보겠습니다.
이 때, 해당 명령 앞에 DISPLAY 환경 변수를 설정합니다. 위 터널링 설정의 ‘수신 대기 포트’에서 정한 포트 번호에 해당하는 DISPLAY 번호 20(=20.0)을 입력합니다.‘저장’ 버튼을 눌러 저장한 후 ‘실행’을 눌러 Xstart 세션을 실행합니다.
xterm이 원격 서버의 20번(TCP 포트 6020)으로 접속하여 성공적으로 구동되었음을 알 수 있습니다.
윈도우 시스템 알림 영역에서는 Xmanager가 30(=30.0)번(TCP 포트 6030)에서 대기 중임을 알 수 있습니다.
Xshell 세션에서 일반 SSH 터널링 사용하기
Xmanager에서 XDMCP 생성을 선택한 후 None(Passive) 세션을 선택합니다.
‘새 세션 등록 정보’의 ‘X 서버’ 탭에서 ‘디스플레이 번호 자동으로 할당’을 해제한 후 ‘디스플레이 번호’에 0에서 255 사이의 임의의 값을 설정합니다.
확인을 연속적으로 눌러 세션을 생성한 후 해당 세션을 실행합니다.
윈도우 시스템 알림 영역에서는 Xmanager가 위 2에서 정한 30(=30.0)번(TCP 포트 6030)에서 대기 중임을 확인합니다.
Xshell 세션을 생성합니다.
터널링 영역에서 ‘추가’를 눌러 아래와 같은 터널링을 추가합니다.
종류: Remote(리모트에서 로컬로)
원본 호스트: localhost
수신 대기 포트: 6020(6000번 이상 임의의 포트 번호를 입력합니다. 이미 다른 프로세스가 해당 포트를 점유하고 있을 수 있을 수 있습니다. 이 경우 다른 값으로 설정합니다. 이 포트 번호에서 6000번을 뺀 20이 X 응용프로그램에 전달될 DISPLAY 번호가 됩니다.)
대상 호스트: localhost
대상 포트: 위 2에서 정한 Xmanager 디스플레이 번호에 6000을 더한 값인 6030을 입력합니다.
'X11 연결을 다음으로 전달합니다' 옵션을 켠 후 'Xmanager’를 선택합니다.‘연결’을 눌르면 세션이 저장된 후 해당 세션이 실행됩니다.
터미널에서 DISPLAY 환경 변수를 위 5에서 정한 ‘수신 대기 포트’와 관련된 값인 20(=20.0)으로 하여 아래와 같이 설정한 후 X 응용프로그램을 실행합니다.
xterm이 원격 서버의 20번(SSH 터널링 포트 6020)으로 접속하여 성공적으로 구동되었음을 알 수 있습니다.