XDMCP 연결에 실패했습니다. 다시 시도하시겠습니까?

Xmanager에서  XDMCP 세션을 생성한 후 접속을 시도할 때 다음과 같은 메시지가 나옵니다.

XDMCP 연결에 실패했습니다. 다시 시도하시겠습니까?

위 메시지는 여러 가지 이유로 발생합니다.

1. PC에서 유닉스/리눅스 장비로 UDP 통신이 되지 않을 때


XDMCP 접속 시 처음에는 UDP 포트로(기본값은 177번) XDMCP 패킷 교환을 합니다.

이 패킷 교환이 되지 않는 이유는 다음과 같습니다.


  • 유닉스/리눅스 장비가 XDMCP 데몬이 구동되고 있지 않음
    리눅스라면 ps -aef grep dm의 결과로 gdm, kdm, xdm, lightdm 등이, HP, IBM, Sun 장비와 같은 유닉스라면 dtlogin 등이 나오지 않는다면 이에 해당합니다.

    $ ps -aef grep dm  혹은 ps -aef grep dtlogin
    root      5895 30677  0  2015 ?        00:00:00 /usr/sbin/gdm-binary
    root     24996 30677  0 Jan29 ?        00:00:00 /usr/sbin/gdm-binary
  • XDMCP 데몬은 구동 중이지만 외부로 서비스를 하고 있지 않는 경우

    ps 명령의 결과 gdm, kdm 등이 구동 중이지만 외부로 서비스하고 있지 않는 경우입니다.

    netstat -an grep 177(XDMCP 기본 포트) 명령의 결과 다음과 같이 나오지 않는다면 이에 해당합니다.

    $ netstat -an grep 177
    udp        0      0 0.0.0.0:177                 0.0.0.0:*

    이 경우라면 다음 FAQ 글을 참고하여 필요한 설정을 하여야 합니다.

  • 방화벽이나 네트워크 환경의 문제로 UDP 패킷 전송을 할 수 없는 경우

    네트워크의 방화벽 존재 여부는 네트워크 관리자에게 문의를 해 봐야 합니다. 

    최근의 리눅스 장비들은 시스템 내에 방화벽이 구동 중인 경우가 많습니다.

    다음 명령으로 확인해 볼 수 있으며 방화벽이 구동 중이라면 해당 운영체제의 매뉴얼을 참고하여 필요한 조치를 취해야 합니다.

    # service iptables status
    Firewall is stopped.



    또한 네트워크 구성상 유닉스/리눅스 장비가 사설망 환경에 있다면 이에 해당합니다.



2. 유닉스/리눅스 장비에서 Xmanager가 있는 PC로 TCP 통신을 할 수 없는 경우

XDMCP 접속 시 초기 UDP를 통한 패킷 교환이 이루어지고 나서는 본격적으로 PC의 Xmanager에게 DISPLAY를 요청하는 단계가 시작됩니다. 이는 TCP 포트를 통해서 이루어지는데요, 초기 기본값으로 Xmanager는 6000번 포트에서 시작하게 됩니다.

이 통신이 이루어지지 않는 이유는 다음과 같습니다.


  • 방화벽문제

    네트워크에 존재하는 방화벽은 네트워크 관리자에게 문의하여야 합니다. 

    윈도우 자체의 방화벽이 구동 중이라면 제어판에서 Xmanager를 허용하는 등의 필요한 설정을 하여야 합니다. Xmanager 최초 실행 시 사용자에게 허용 여부를 묻는 과정에서 차단을 선택한 경우 주로 발생합니다.

  • 네트워크 환경의 문제

    PC가 공유기 등으로 구성된 사설 네트워크(NAT 환경) 내에 있을 경우 생길 수 있는 문제입니다. 다음 FAQ 글을 참고하여 필요한 설정을 해야 합니다.

  • DNS 설정의 문제

    XDMCP 접속 시 XDMCP 데몬은 PC의 IP 주소와 이름에 대한 질의 및 역질의 과정을 거칩니다. 이 때 그 값이 서로 일치하지 않을 경우 TCP 패킷이 PC가 아닌 다른 장소로 가게 되는 경우가 생깁니다. 
    다음과 같은 경우라면 문제가 됩니다.

    PC의 IP 주소에 대한 역질의(reverse lookup)

    $ nslookup1.1.1.1
    Server:192.168.1.7
    Address:192.168.1.7#53

    1.1.1.in-addr.arpaname =my-pc.netsarang.com.

    PC 이름 질의(dulookup) : my_pc_name => 2.2.2.2

    위 PC 이름에 대한 질의(lookup)

    [root@suzy ~]# nslookupmy-pc.netsarang.com.
    Server:192.168.1.7
    Address:192.168.1.7#53

    Name:
    my-pc.netsarang.com
    Address:2.2.2.2.


    위와 같은 경우 시스템 관리자에게 요청하여 해당 유닉스/리눅스의 DNS 서버(resolver)의 정보가 정확하게 되도록 하여야 합니다. 조금 더 간단하게는 /etc/hosts 파일에 PC의 이름을 등록하는 방법으로 문제를 해결할 수 있습니다.

    # vi /etc/hosts (root의 권한이 필요합니다.)
    1.1.1.1 my_pc_name (PC 이름은 사용자가 원하는 아무 이름이어도 됩니다)


일부 사용자나 PC에서만 발생하거나 간헐적인 문제 상황라면 다음 FAQ 글도 참고가 됩니다.


문제를 확인하기 어려울 경우라면 Xmanager 로그 파일을 첨부하여 기술 지원 문의를 해 보시기 바랍니다.