튜토리얼 · 약 17분

Termux에서 Mihomo 돌리기:
안드로이드 무 Root 구독 가져오기·Wake Lock·부팅 스크립트

FlClash처럼 손이 가는 그래픽 클라이언트 대신, Termux 셸 안에서만 Mihomo(Clash.Meta 계열·Clash 호환 구성)를 돌리고 싶은 사용자를 위한 글입니다. 루팅 없이 구독 URL을 proxy-providers로 넣고, Android의 앱 생존 규칙을 존중하면서 Wake Lock·부팅 스크립트로 프로세스를 최대한 유지하는 순서를 .bashrc 설정과 함께 정리했습니다.

Termux · Mihomo · Android · 무 Root · 구독 · Wake Lock

1 그래픽 앱 대신 Termux와 Mihomo를 고르는 이유

안드로이드에서 Clash 계열을 쓰는 대표 경로는 스토어·APK 형태의 GUI 클라이언트입니다. 구독을 한 번에 넣고 규칙·DNS를 화면에서 조정하기에 편하지만, 업데이트 주기·권한 요청·기기별 호환을 각자 검토해야 합니다. 반면 Termux는 로컬에 가깝게 리눅스 사용자 공간을 제공하므로, 데스크톱에서 쓰던 Mihomo 바이너리와 거의 동일한 config.yaml 워크플로를 유지할 수 있습니다. 터미널에 익숙하고 SSH나 스크립트로 상태를 보고 싶은 사람에게 이 조합은 «코어를 직접 들고 간다»는 느낌을 줍니다.

이미 본 블로그에 FlClash 안드로이드 완전 가이드가 있으므로, GUI 중심 입문은 그 글을 참고하고 여기서는 CLI 전용 경로만 다룹니다. 서버나 PC에서 Linux·Mihomo·systemd 패턴을 익혔다면 개념은 같지만, Android백그라운드 제한배터리 최적화가 훨씬 공격적이라 «설정 파일만 맞으면 끝»이 되지 않습니다. 그래서 Wake Lock과 부팅 시 자동 실행을 별도로 설계해야 합니다.

2 Termux 설치와 기본 패키지

공식 배포 채널에서 Termux를 설치합니다(F-Droid 빌드와 Play 스토어 빌드가 나뉘어 있었으므로, 본인이 쓰는 저장소의 최신 안내를 따르세요). 첫 실행 후 패키지 목록을 갱신하고, 내려받기·압축 해제·편집에 필요한 도구를 깔아 둡니다.

Termux
pkg update && pkg upgrade -y
pkg install -y curl wget unzip nano ca-certificates
# optional: git for dotfiles

외부 저장소 경로가 필요하면 termux-setup-storage를 실행해 권한을 맞춥니다. Mihomo 데이터 디렉터리는 보통 ~/.config/mihomo 아래에 두면 다른 플랫폼 가이드와 경로 설명이 일치해 관리가 쉽습니다.

3 Mihomo 바이너리 선택(대부분은 ARM64)

uname -m로 아키텍처를 확인합니다. 최신 스마트폰은 대개 aarch64이며, GitHub 릴리스의 linux-arm64 패키지를 Termux 환경에서 실행하는 사례가 많습니다. 바이너리 이름·압축 형식은 릴리스마다 다르므로, 방문 시점의 자산 목록에 맞춰 URL과 파일명을 바꿔 주세요. 아래는 개념 예시입니다.

Bash
mkdir -p ~/.config/mihomo "${PREFIX:-/data/data/com.termux/files/usr}/bin"
# Replace URL and filename with the current Mihomo release for linux-arm64 (or matching arch)
curl -fL -o /tmp/mihomo.gz "https://github.com/MetaCubeX/Mihomo/releases/download/v1.18.0/mihomo-linux-arm64-v1.18.0.gz"
gunzip -c /tmp/mihomo.gz > "${PREFIX}/bin/mihomo"
chmod +x "${PREFIX}/bin/mihomo"
mihomo -v
실행 파일 출처 반드시 신뢰하는 릴리스 페이지에서 받고, 체크섬·서명 정책이 있다면 검증하세요. Termux 안에서 임의 스크립트를 curl로 실행하는 습관은 피하는 것이 좋습니다.

4 구독 가져오기: proxy-providers와 문법 검사

서비스가 주는 링크가 곧바로 완전한 config.yaml이 아닐 수 있습니다. 범용 원격 목록만 온다면 구독을 Clash YAML로 변환하는 중간 단계를 거친 뒤 URL을 proxy-providers에 넣습니다. 최소 골격은 다음과 같은 형태입니다(secret·external-controller 바인딩은 본인 환경에 맞게 조정).

YAML (발췌)
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090
secret: "replace-with-strong-secret"

proxy-providers:
  phone:
    type: http
    url: "https://example.com/your-endpoint-or-converted-sub"
    path: ./providers/phone.yaml
    interval: 3600

proxy-groups:
  - name: PROXY
    type: select
    use:
      - phone
    proxies:
      - DIRECT

rules:
  - MATCH,PROXY

저장 후 mihomo -t -d ~/.config/mihomo로 문법을 검사합니다. DNS·FakeIP를 엄격히 맞추려면 Meta DNS·유출 방지 글의 패턴을 이식하되, Termux에서는 추가로 다른 데몬과의 포트 충돌만 주의하면 됩니다.

5 실행과 동작 확인

우선 포그라운드에서 로그를 보며 시작합니다.

Bash
mihomo -d ~/.config/mihomo

다른 세션을 열어 export http_proxy=http://127.0.0.1:7890https_proxy를 설정한 뒤 curl -I https://www.example.com처럼 응답 코드를 확인합니다. Termux 안의 도구만 프록시를 타는 점을 기억하세요. 시스템 전체 TUN·투명 프록시는 루트·VPN API가 있는 GUI 스택에서나 가능한 경우가 많고, 본 구성은 «Termux 프로세스와 그 자식»에 초점을 맞춥니다.

6 .bashrc에 환경 변수·별명 넣기

셸을 열 때마다 프록시를 손으로 치기 번거롭다면 홈의 ~/.bashrchttp_proxy·https_proxy·all_proxy를 넣습니다. 필요 없을 때 빠르게 끄기 위해 proxy_on·proxy_off 함수를 정의해 두는 방식도 흔합니다. 이렇게 해 두면 패키지 매니저나 git·pip 등이 같은 세션 규칙을 따르기 쉽습니다.

~/.bashrc (발췌)
export MIHOMO_HOME="$HOME/.config/mihomo"
proxy_on() {
  export http_proxy=http://127.0.0.1:7890
  export https_proxy=http://127.0.0.1:7890
  export ALL_PROXY=socks5://127.0.0.1:7891
}
proxy_off() {
  unset http_proxy https_proxy ALL_PROXY
}

SOCKS 포트 번호는 실제 config.yamlmixed-port·SOCKS 설정과 일치시켜야 합니다. 한 개의 mixed 포트만 쓴다면 HTTP/SOCKS를 동일 포트로 맞추는 편이 단순합니다.

7 Wake Lock과 배터리 최적화 예외

Android는 화면이 꺼지거나 일정 시간이 지나면 백그라운드 프로세스를 정지시키려는 경향이 강합니다. Termux는 termux-wake-lock 명령(패키지 termux-api 및 기기 측 Termux:API 앱이 필요할 수 있음)으로 Wake Lock을 걸 수 있습니다. 개념적으로 «CPU가 잠들지 않게 일시적으로 잡아 둔다»에 가깝고, 배터리 소모는 늘어납니다.

또한 시스템 설정에서 Termux·Termux:Boot·Termux:API를 배터리 최적화 제외(제조사별 표기: «제한 없음», «백그라운드에서 실행 허용» 등) 목록에 넣어야 재현성이 올라갑니다. 제조사·OS 버전에 따라 메뉴 경로가 크게 다르므로, 기기 설명서나 최신 안드로이드 문서를 함께 참고하세요.

현실적인 기대치 Wake Lock과 예외 설정은 «가능성을 높이는」 조치일 뿐, OEM의 공격적 절전 정책 앞에서 100% 상시 생존을 보장하지는 않습니다. 끊기면 로그·알림으로 재시작 트리거를 두는 편이 안전합니다.

8 부팅 후 자동 실행: ~/.termux/boot

기기가 재부팅될 때마다 수동으로 mihomo를 띄우기 어렵다면, Termux용 부트 스트랩 앱(통상 Termux:Boot)과 셸 스크립트를 조합합니다. ~/.termux/boot/ 아래 실행 권한이 있는 스크립트는 부팅 이벤트 이후에 돌아가도록 설계되어 있습니다. 흐름은 대략 다음과 같습니다.

  1. F-Droid·GitHub 등 공식 안내에 따라 Termux:Boot를 설치하고 Termux와 동일한 서명·패키지 출처 규칙을 맞춥니다.
  2. mkdir -p ~/.termux/boot 후 부팅 시 실행할 스크립트를 둡니다.
  3. 스크립트 맨 앞에서 termux-wake-lock을 호출할지, 별도 서비스로 둘지 결정합니다.
  4. nohup mihomo -d ~/.config/mihomo >/tmp/mihomo.log 2>&1 &처럼 로그를 파일로 남깁니다.
~/.termux/boot/99-mihomo.sh (예시)
#!/data/data/com.termux/files/usr/bin/bash
set -euo pipefail
termux-wake-lock || true
export PATH="/data/data/com.termux/files/usr/bin:$PATH"
nohup mihomo -d "$HOME/.config/mihomo" >"$HOME/mihomo.log" 2>&1 &

chmod +x ~/.termux/boot/99-mihomo.sh로 실행 권한을 부여합니다. 경로는 설치한 Termux 빌드의 PREFIX에 맞게 조정하세요. 위 스크립트는 예시이며, 기기에서 BusyBox·셸 경로가 다르면 첫 줄 shebang을 맞춰야 합니다.

9 한계, 보안, 운영 상의 주의

이 구성은 무 Root라는 전제를 지키는 대신 «시스템 전체를 아우르는 투명 프록시»를 보장하지 않습니다. 브라우저 앱·다른 앱의 트래픽을 자동으로 Mihomo로 보내려면 VPN/TUN 권한을 쓰는 클라이언트 쪽이 유리합니다. 반면 Termux 경로는 규칙 파일을 직접 버전 관리하고, SSH로 기기에 붙었을 때 동일한 코어를 조작한다는 장점이 있습니다.

external-controller를 열어 둘 때는 반드시 127.0.0.1에 묶고 secret을 강하게 설정하세요. allow-lan: true로 LAN에 mixed 포트를 노출하면 카페·회사 Wi-Fi에서 스캔 위험이 커집니다. 공용망에서는 끄는 것이 안전합니다. 구독 URL·API 토큰은 타인과 공유하지 말고, 유출 시 즉시 회전하세요.

10 정리

Termux 위에서 Mihomo를 돌리면 Android에서도 Clash 호환 규칙·구독 가져오기를 CLI로 유지할 수 있습니다. 핵심은 설정 YAML 자체보다 «배터리·백그라운드 정책 속에서 Wake Lock·부팅 스크립트·.bashrc로 생존 가능성을 높인다»는 운영 설계입니다. GUI로 한 화면에서 TUN·구독·로그를 보고 싶다면 FlClash 안드로이드 가이드가 상호 보완적이며, PC에서는 다운로드 페이지에 정리된 클라이언트로 같은 프로필을 옮겨 다루기 쉽습니다.

터미널 중심 워크플로를 유지하면서도 가끔은 시각적인 대시보드가 필요하면 external-controller와 yacd 조합을 로컬 네트워크 안에서만 제한적으로 쓰는 방안도 있습니다. 어떤 경로를 택하든, 기기 제조사 업데이트마다 백그라운드 동작이 바뀔 수 있으니 로그를 남기고 점검 주기를 정해 두면 장기 운영이 수월합니다.

→ Clash를 무료로 내려받아 데스크톱·다른 기기와 프로필을 맞춰 보세요

태그: Termux Mihomo Android 무 Root Wake Lock 2026
Termux·Mihomo 사용자를 위한 Clash 멀티플랫폼 클라이언트 로고

Clash Verge Rev

Mihomo 코어 · 규칙 분할 · 크로스 플랫폼

터미널에서 Mihomo YAML을 다루는 동안, Windows·macOS·Linux에서는 GUI로 구독·TUN·DNS를 묶어 관리할 수 있습니다. 안드로이드 전용 FlClash 글과 함께 보면 같은 프로필을 기기마다 옮기기 쉽습니다.

CLI·GUI 병행 Mihomo Android DNS TUN

관련 읽을거리