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_CLIENT와 SSH_CONNECTION 환경 변수에 클라이언트 머신의 IP 주소가 저장된다는 것을 알게 되었습니다. SSH_CLIENT의 첫 번째 필드를 추출하면 IP 주소를 자동으로 얻을 수 있습니다.
해결 방법
SSH_CLIENT에서 클라이언트 IP 주소를 추출합니다.DISPLAY값(:0)을 구성합니다.- X 클라이언트가 어디에 렌더링할지 알 수 있도록
DISPLAY를 export합니다. - SSH를 통해 연결되지 않은 경우
localhost를 기본값으로 사용하도록 fallback을 추가합니다. - 이 로직을
~/.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 클라이언트를 실행할 수 있습니다.