Ubuntu에서 Clash Verge: 구독 가져오기와 systemd로 부팅 시 자동 실행
왜 Ubuntu·Linux에서 “설치 직후만 되고 재부팅하면 끊길까”?
Windows나 macOS에서 익숙하게 쓰던 Clash 계열 GUI를 Ubuntu 같은 데스크톱 배포판으로 옮기면, 첫 실행에서는 브라우저가 잘 나가다가도 재부팅 뒤에는 시스템 프록시가 꺼지거나 앱이 올라오지 않아 “어제는 됐는데 오늘은 안 된다”는 패턴이 자주 나옵니다. 원인은 대개 단순합니다. 그래픽 클라이언트가 로그인 세션에서 자동으로 다시 뜨지 않거나, 백그라운드 코어(mihomo)가 사용자 서비스로 고정되지 않아 부팅 직후 구성이 비어 있는 상태로 남기 때문입니다.
이 글은 Clash Verge(또는 Verge 계열 포크)를 Linux에서 쓸 때 흔한 흐름—패키지·AppImage 설치 → 원격 구독 가져오기 → 연결 검증 → 상주(자동 시작)—을 한 번에 잡는 것을 목표로 합니다. Windows·macOS 중심 화면 설명은 Clash Verge Rev 완벽 사용 가이드와 함께 보면 개념이 맞물리고, 구독 URL·프로필 개념은 Clash 구독 링크 추가·전 플랫폼 가져오기 가이드에서 먼저 정리해 두면 Ubuntu 작업이 훨씬 빨라집니다.
시작 전에 확인할 것
구독 URL은 대시보드에서 복사한 https:// 형태의 원격 프로필 주소입니다. 앞뒤 공백이나 줄바꿈이 끼면 파싱 오류가 나기 쉬우니, 텍스트 편집기에 한 줄로 붙여 넣어 다시 복사하는 습관이 안전합니다. 같은 주소를 Firefox나 Chromium에서 열었을 때 YAML 텍스트나 Base64 응답이 내려오는지, 로그인 페이지나 403으로 막히는지 먼저 확인하면 Linux 클라이언트에서의 실패를 빨리 가릴 수 있습니다.
Ubuntu 22.04·24.04 LTS 기준으로는 그래픽 스택과 권한 정책이 비교적 잘 갖춰져 있지만, Wayland·X11 혼용 환경에서는 창 관리자마다 트레이 아이콘 동작이 조금씩 다릅니다. 관리자 권한(sudo)이 필요한 경우는 주로 시스템 전역 설치나 TUN 계열 기능 쪽이며, 일반적인 구독 동기화·시스템 프록시만 쓴다면 사용자 홈 디렉터리 안에서 대부분 끝납니다.
클라이언트 받기: 배포판별 패키지는 다운로드 페이지에서 고르는 것을 권장합니다. GitHub 릴리스는 변경 이력·빌드 확인용으로 두고, 설치 파일의 주된 안내는 사이트 쪽을 따르면 버전·경로 혼선이 적습니다.
Ubuntu에 Clash Verge 설치하기
Linux용 Clash Verge 계열은 보통 .AppImage, .deb, 혹은 배포판별 패키지로 제공됩니다. AppImage라면 다운로드 후 실행 권한을 부여합니다. 터미널에서는 chmod +x Clash*.AppImage처럼 파일명에 맞춰 한 번만 주면 됩니다. deb 패키지는 sudo apt install ./파일명.deb 형태로 의존성을 함께 맞추는 편이 깔끔합니다. 설치 도중 WebKitGTK·SSL 관련 라이브러리가 부족하다는 메시지가 나오면 안내에 따라 추가 패키지를 설치한 뒤 다시 시도하세요.
첫 실행에서 “앱이 안 뜬다”면 터미널에서 직접 실행해 표준 출력을 보는 것이 가장 빠릅니다. 샌드박스·FUSE·AppImage 런타임 이슈는 배포판마다 메시지 패턴이 달라, 여기서는 버전 문자열과 함께 검색하는 것이 정확합니다. 정상 기동이 확인되면 트레이 아이콘 또는 앱 메뉴에서 창을 다시 열 수 있는지 확인합니다.
구독 가져오기(임포트)와 프로필 활성화
GUI가 뜨면 프로필·구독·Remote 등 이름의 섹션에서 원격 URL을 추가합니다. URL을 붙여 넣고 가져오기·동기화·업데이트에 해당하는 버튼을 눌러 한 번 내려받습니다. 성공하면 프록시 그룹·노드 목록이 채워지고, 상단이나 사이드에서 현재 프로필을 선택할 수 있습니다. 노드 수가 0이면 구독 자체가 비었거나 파싱에 실패한 것이므로, 브라우저에서 같은 URL을 다시 열어 응답 형식을 확인합니다.
실무에서 자주 막히는 지점
- 만료·서명 오류: 대시보드에서 링크를 재발급했는지, 쿼리 스트링이 잘렸는지 확인합니다.
- User-Agent 제한: 제공업체가 특정 UA만 허용하면 클라이언트 옵션에서 맞춰야 합니다.
- 시스템 시간: TLS 검증 실패는 시각이 크게 어긋날 때도 발생하므로 NTP 동기화를 켜 둡니다.
규칙·DNS를 손대기 전에는 제공업체 기본 프로필로 전체 연결부터 검증하는 편이 시간을 아낍니다. 분할 라우팅을 깊게 다루려면 Clash 규칙 분할 설정 가이드를 참고하되, Ubuntu 첫 세팅에서는 우선 “구독이 살아 있고 노드를 고를 수 있는가”에 집중합니다.
연결 검증: 시스템 프록시와 브라우저
Clash Verge에서 시스템 프록시 또는 이에 준하는 스위치를 켠 뒤, Firefox·Chromium에서 일반 검색과 IP 확인 페이지를 열어 봅니다. 일부 브라우저는 자체 프록시 설정을 쓰므로 “시스템 설정 사용”으로 맞춰야 전체 흐름이 일치합니다. 터미널 앱만 프록시를 타야 한다면 HTTPS_PROXY 환경 변수를 셸 프로필에 넣는 방식도 있지만, GUI 클라이언트가 시스템 프록시를 건드리는 구조라면 앱 쪽 스위치를 기준으로 맞추는 것이 덜 헷갈립니다.
TUN·전역에 가깝게 모든 앱을 끌어오고 싶다면 권한 요구가 커질 수 있습니다. 개념 정리는 Clash TUN 모드 가이드가 도움이 되지만, Linux에서는 커널·네트워크 네임스페이스·배포판 정책이 엮여 실제 스위치 이름이 버전마다 다를 수 있습니다. 우선은 시스템 프록시 경로로 안정화한 뒤 단계적으로 확장하는 것을 권장합니다.
재부팅 후 끊기는 이유와 목표 상태
많은 사용자가 겪는 증상은 “어제 수동으로 앱을 켜 두었더니 되는데, 오늘 부팅 후에는 프록시가 꺼져 있다”입니다. 로그인 세션에 자동 시작 항목이 없거나, 백그라운드 코어가 사용자 서비스로 등록되지 않았을 때 전형적으로 나타납니다. 목표 상태는 (1) 로그인 직후 Clash Verge가 다시 올라가거나, (2) 최소한 코어와 설정이 사용자 유닛으로 복구되어 트레이에서 즉시 연결할 수 있는 것입니다.
방법 1: 데스크톱 자동 시작(.desktop)
GNOME·KDE 등 주요 데스크톱은 ~/.config/autostart/ 아래 .desktop 파일을 두면 로그인 시 앱을 띄웁니다. 시스템 메뉴의 “시작 프로그램”에서 GUI로 추가해도 되고, 직접 파일을 만들어도 됩니다. Exec= 줄에는 AppImage 전체 경로나 설치된 바이너리 경로를 정확히 적고, 필요하면 --no-sandbox 같은 인자는 공식 문서·릴리스 노트를 따릅니다.
이 방식은 구현이 단순하고 실패 시 원인 추적이 쉽다는 장점이 있습니다. 다만 창을 항상 띄우고 싶지 않다면 Exec에 최소화·트레이 전용 옵션이 있는지 확인해야 하며, 배포판 업그레이드 후 경로가 바뀌면 desktop 항목도 함께 고쳐야 합니다.
방법 2: systemd 사용자 유닛(--user)
systemd 사용자 모드는 로그인 세션과 생명주기를 맞추기 좋아, “부팅 자동 실행”을 코드로 고정하고 싶을 때 자주 씁니다. 예시는 아래와 같으며, 경로와 파일명은 실제 설치 위치에 맞게 바꿉니다.
# ~/.config/systemd/user/clash-verge-app.service
[Unit]
Description=Clash Verge (user session)
After=graphical-session.target
[Service]
Type=simple
# Replace with your real path to the AppImage or binary
ExecStart=%h/Apps/clash-verge.AppImage --no-sandbox
Restart=on-failure
[Install]
WantedBy=default.target
작성 후 systemctl --user daemon-reload, systemctl --user enable --now clash-verge-app.service 순으로 활성화합니다. 로그는 journalctl --user -u clash-verge-app.service -e로 볼 수 있습니다. 여러 그래픽 세션이나 원격 데스크톱을 오가는 환경에서는 graphical-session.target 의존이 적절한지 한 번 확인하는 것이 좋습니다.
앱이 이미 서비스 모드·코어 데몬 설치를 GUI로 제공한다면, 그 버튼이 만드는 유닛과 충돌하지 않도록 둘 중 하나만 쓰는 편이 안전합니다. 중복 등록되면 포트 점유나 프로필 잠금 문제가 날 수 있습니다.
문제 해결 체크리스트
구독·프로필
재부팅 후에도 노드가 비어 있으면 자동 시작 전에 마지막으로 활성화된 프로필이 저장 경로에 남는지 확인합니다. 홈 디렉터리의 앱 설정 폴더 권한이 root로 바뀌어 있으면 일반 사용자 실행 시 쓰기 실패로 빈 구성이 될 수 있습니다.
시스템 프록시·환경 변수
일부 셸 프로필에 남아 있는 HTTP_PROXY 값이 앱과 충돌하면 이상 증상이 납니다. 임시로 주석 처리해 비교해 보세요. 브라우저가 “직결”로 고정되어 있으면 OS 프록시와 무관하게 나갑니다.
권한·방화벽
ufw가 켜져 있으면 로컬 제어 포트·TUN 관련 규칙이 막혀 있지 않은지 확인합니다. 회사망·교육망에서는 구독 도메인 자체가 필터링되는 경우도 있어, 다른 네트워크에서 동일 단계를 재현해 보면 원인 분리가 빨라집니다.
팁: 자동 시작을 systemd로 옮긴 뒤에는 데스크톱 autostart 항목을 중복으로 두지 마세요. 같은 바이너리가 두 번 뜨면 트레이에 아이콘이 겹치거나 설정 충돌이 생길 수 있습니다.
더 보기
코어를 최신 Mihomo 계열로 맞추면 신규 전송 방식 노드에서의 연쇄 실패를 줄일 수 있습니다. 데스크톱·서버 공통 내용은 Mihomo·Clash Meta 업그레이드 가이드를 참고하세요. 사이트 전체 목차는 문서·튜토리얼에서 한눈에 볼 수 있습니다.
주의: 프록시·구독 서비스는 거주 지역의 법령과 이용 약관을 지켜 합법적인 용도로만 사용해야 합니다. 타인의 구독 링크를 무단으로 사용하지 마세요.
마무리
Ubuntu에서 Clash Verge를 쓸 때의 핵심은, Windows와 같이 “구독 URL을 넣고 노드를 고른다”는 본질에 더해 Linux 세션·systemd 층에서 자동 시작을 명시적으로 고정한다는 점입니다. 한 번 desktop 항목이나 사용자 유닛으로 경로를 맞춰 두면 “재부팅 후 프록시가 사라진다”는 체감 문제가 크게 줄어듭니다.
비슷한 범주의 도구들과 비교해 보면 Clash 생태계는 원격 구독과 규칙 표현이 정돈되어 있어, 데스크톱·모바일을 넘나들며 같은 습관으로 관리할 수 있다는 장점이 있습니다.
지금 쓰는 OS에 맞는 클라이언트로 바로 시험해 보시려면 Clash를 무료로 다운로드하고, 매끄러운 구독 연동과 안정적인 상주 경험을 직접 확인해 보세요.