Linux 머신에 연결할 때 $DISPLAY 설정 팁

발행: (2026년 1월 31일 오전 07:40 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

배경

Windows 머신에서 X 서버를 실행하고 Linux 시스템에 SSH로 접속합니다.
처음에는 DISPLAY 변수를 Windows IP 주소로 수동 설정하고 xeyes, xclock, xterm 같은 X 클라이언트를 실행했습니다.
xclock에 별칭을 만들고 명령을 스크립트에 넣었지만, 연결할 때마다 여전히 DISPLAY를 설정해야 했습니다.

SSH_CLIENTSSH_CONNECTION 환경 변수에 클라이언트 머신의 IP 주소가 저장된다는 것을 알게 되었습니다. SSH_CLIENT의 첫 번째 필드를 추출하면 IP 주소를 자동으로 얻을 수 있습니다.

해결 방법

  1. SSH_CLIENT에서 클라이언트 IP 주소를 추출합니다.
  2. DISPLAY 값(:0)을 구성합니다.
  3. X 클라이언트가 어디에 렌더링할지 알 수 있도록 DISPLAY를 export합니다.
  4. SSH를 통해 연결되지 않은 경우 localhost를 기본값으로 사용하도록 fallback을 추가합니다.
  5. 이 로직을 ~/.bashrc에 넣어 모든 인터랙티브 로그인 시 실행되게 합니다.

예시 스크립트 (~/.bashrc에 넣기)

# Get the client IP from SSH_CLIENT (if present)
host=$(echo "${SSH_CLIENT}" | cut -f1 -d' ')

# If not connected via SSH, default to localhost
if [ -z "$host" ]; then
    host=localhost
fi

# Build the DISPLAY variable and export it
export DISPLAY="${host}:0"

이 내용을 ~/.bashrc에 추가하면, 새로운 터미널 세션(SSH 로그인 포함)에서 DISPLAY가 올바르게 설정되어 추가적인 수동 단계 없이 X 클라이언트를 실행할 수 있습니다.

Back to Blog

관련 글

더 보기 »

몇 시간 동안 현실을 의심하게 만든 버그

모든 것이 정상적으로 동작했다. 되돌아보면, 바로 그게 문제였다. 나는 방금 작은 backend 변경을 배포했을 뿐이다. 거의 생각조차 하지 않을 정도의 작은 변경. Tests passed. 로컬 설정은 …

리눅스의 기본 및 역사

UNIX 기원 - 1964 – 뉴저지의 Bell Laboratories가 UNIX 프로젝트를 시작했습니다. - 1969 – 원래 프로젝트는 중단되었지만 Dennis Ritchie와 Ken Thompson이 …