휴대폰 테더링 — 원리부터 통신사 감지까지
폰이 어떻게 공유기가 되는지, 아이폰·안드로이드는 무엇이 다른지, 통신사는 무엇을 보고 알아채는지
- 테더링의 기본 원리 — 폰이 '게이트웨이(공유기)'가 되는 구조
- 연결된 노트북·태블릿이 폰과 통신하는 방식 (DHCP · NAT)
- 아이폰과 안드로이드의 차이 (기술은 같고, 통신사 통제 방식이 다름)
- 통신사가 테더링을 알아내는 원리 (TTL · OS 핑거프린팅 · DPI)
- 자주 쓰는 단축용어와 그 뜻
1. 테더링(Tethering)이란?
1-1. 개념과 비유
테더링이란 휴대폰이 받고 있는 셀룰러(이동통신) 데이터 연결을
노트북·태블릿·다른 폰 같은 다른 기기와 나눠 쓰게 해 주는 기능입니다.
영어 tether는 "(말·소를) 끈으로 매어 두다"라는 뜻으로,
다른 기기를 폰에 '묶어서' 폰의 인터넷에 매달아 쓰게 한다는 데서 온 이름입니다.
1-2. 폰은 '작은 공유기'가 된다
평소 인터넷이 집까지 오는 경로는 인터넷 → 공유기 → 내 노트북입니다. 테더링에서는 이 그림에서 '집까지 들어오는 회선'이 '이동통신 기지국'으로 바뀌고, '공유기' 자리에 '휴대폰'이 들어갑니다.
2. 단축용어 사전
이 문서에 나오는 약어들을 먼저 정리합니다. 뒤 내용을 읽다가 막히면 여기로 돌아오세요.
| 약어 | 원어 | 뜻 (쉬운 설명) |
|---|---|---|
| AP | Access Point | 무선 접속점. Wi-Fi 신호를 뿌려 기기를 붙게 하는 장치. 핫스팟을 켜면 폰이 AP가 됨 |
| SSID | Service Set Identifier | Wi-Fi의 '이름'. 핫스팟 목록에 보이는 그 이름 |
| NAT | Network Address Translation | 주소 변환. 여러 기기의 사설 주소를 하나의 공인 주소로 바꿔 인터넷에 내보내는 기술 |
| DHCP | Dynamic Host Configuration Protocol | 붙은 기기에게 IP 주소를 자동으로 나눠 주는 규약. 폰이 노트북에게 IP를 발급 |
| IP | Internet Protocol (address) | 네트워크에서 기기를 구분하는 주소(번호) |
| TTL | Time To Live | 패킷의 '수명 카운터'. 라우터(공유기)를 하나 지날 때마다 1씩 줄어듦. 테더링 감지의 핵심 단서 |
| CGNAT | Carrier-Grade NAT | 통신사가 가입자 여럿을 하나의 공인 IP로 묶는 대규모 NAT |
| DPI | Deep Packet Inspection | 패킷 속을 깊이 들여다보는 검사. 트래픽 종류·OS를 추정하는 데 사용 |
| APN | Access Point Name | 폰이 통신사망에 접속할 때 쓰는 '관문 이름'. 테더링용 APN을 따로 두는 통신사도 있음 |
| DUN | Dial-Up Networking | 안드로이드에서 테더링 트래픽을 분리하는 데 쓰이는 APN 유형 이름 |
| PDN | Packet Data Network (connection) | 폰이 통신사망에 여는 '데이터 세션(파이프)'. 폰은 APN마다 별도 PDN을 동시에 가질 수 있음 |
| P-GW | PDN Gateway | LTE에서 데이터가 인터넷으로 빠져나가는 출구 관문. APN마다 다른 게이트웨이를 거치고, 여기서 공인 IP가 결정됨 (3G에선 GGSN) |
| RNDIS | Remote NDIS | USB 케이블을 '가상 랜카드'처럼 보이게 하는 규약 (USB 테더링에서 사용) |
| PAN | Personal Area Network | 블루투스로 만드는 소규모 네트워크 (블루투스 테더링에서 사용) |
| MAC | Media Access Control (address) | 랜카드마다 박혀 있는 하드웨어 고유 번호 |
3. 연결 방식 3가지
폰에 기기를 묶는 '끈'은 세 종류가 있습니다. 무엇으로 연결하든 그 뒤에서 일어나는 일(DHCP·NAT)은 똑같습니다 — 차이는 '연결선의 종류'뿐입니다.
3-1. Wi-Fi 핫스팟
핫스팟을 켜면 폰이 SSID(Wi-Fi 이름)와 비밀번호를 가진 작은 무선 공유기가 됩니다. 노트북이 그 SSID에 접속하면 폰이 곧바로 DHCP로 IP를 발급하고, 이후 모든 인터넷 트래픽이 폰을 거쳐 기지국으로 나갑니다.
3-2. USB 테더링
USB 케이블을 꽂고 테더링을 켜면, 폰은 자신을 RNDIS(또는 애플의 NCM) 규약을 통해 'USB 랜카드'인 것처럼 노트북에 알립니다. 노트북 입장에서는 USB 포트에 랜선이 하나 꽂힌 것과 똑같이 인식하고, 역시 폰으로부터 DHCP로 IP를 받습니다. 전파 간섭이 없어 가장 안정적입니다.
3-3. 블루투스 테더링
블루투스로 PAN(개인 영역 네트워크)을 구성합니다. 속도가 수 Mbps로 낮아 영상 같은 대용량에는 부적합하지만, 배터리를 아끼며 텍스트·메신저 정도를 쓰기엔 충분합니다.
4. 폰과 기기는 어떻게 연결되나
여기서부터가 핵심 원리입니다. 노트북이 폰에 붙은 뒤 인터넷이 되려면 ① 주소를 받고(DHCP) → ② 그 주소를 인터넷용으로 변환(NAT)하는 두 단계가 필요합니다. 폰은 이 둘을 동시에 처리하는 게이트웨이(관문) 역할을 합니다.
4-1. 먼저 — 라우터 · 게이트웨이 · 라우팅
이 셋은 계속 같이 등장하는데 자주 헷갈립니다. 결론부터 말하면 거의 같은 것을 다른 관점으로 부르는 말입니다.
| 용어 | 정체 | 한 줄 설명 (비유) |
|---|---|---|
| 라우터 (Router) | 장치 / 기능 | 패킷을 다른 네트워크로 넘겨주는 기계 — 길목마다 있는 교차로 안내원 |
| 게이트웨이 (Gateway) | 위치 / 역할 | 내 네트워크에서 바깥으로 나가는 출입문 — 우리 동네의 정문(대문) |
| 라우팅 (Routing) | 동작 / 과정 | "이 패킷을 다음에 어디로 보낼지 길을 정하는 행위" |
라우팅은 그 라우터가 하는 일입니다. 각 라우터는 패킷의 목적지 IP를 읽고 → 자기 라우팅 표(지도)를 보고 → "그럼 다음은 저쪽 길" 하고 넘깁니다. 이걸 목적지에 닿을 때까지 라우터 → 라우터 → 라우터로 반복하는데, 한 번 넘길 때마다(=한 홉) TTL이 1씩 줄어듭니다 (6-1장의 테더링 감지가 바로 이 원리입니다).
그래서 테더링에서 폰 = 게이트웨이
노트북이 사는 작은 네트워크(폰이 만든 핫스팟 안)와 바깥 인터넷은 서로 다른 세계입니다.
노트북이 인터넷으로 나가려면 반드시 출입문, 즉 폰을 거쳐야 합니다 — 그래서
노트북에는 폰의 사설 IP(보통 192.168.x.1)가 '기본 게이트웨이'로 등록됩니다.
그리고 폰은 받은 패킷을 "기지국 쪽으로" 넘기는 라우팅을 수행하므로, 동시에 라우터이기도 합니다.
뒤따라 나오는 P-GW도 인터넷으로 나가는 또 하나의 게이트웨이이자 라우터입니다.
4-2. DHCP — 폰이 IP를 나눠 준다
노트북이 막 연결되면 노트북에는 아직 주소가 없습니다. 그래서 노트북은
"여기 주소 줄 사람?"이라고 방송하고, 폰 안의 DHCP 서버가 응답해
192.168.43.25 같은 사설 IP를 빌려 줍니다. 동시에 게이트웨이 주소(폰 자신)와
DNS 정보도 함께 알려 줍니다.
4-3. NAT — 사설 주소를 인터넷용으로 변환
노트북이 받은 192.168.43.25 같은 주소는 사설 IP라서 인터넷에서는 통하지
않습니다(집·핫스팟 안에서만 유효). 그래서 폰은 노트북이 보낸 패킷의 출발지 주소를
자신이 통신사에서 받은 주소로 바꿔치기해서 내보냅니다. 이것이 NAT입니다.
응답이 돌아오면 폰은 기록해 둔 표를 보고 "이건 노트북 거였지" 하며 다시 노트북에게 돌려줍니다.
4-4. 이중 NAT와 CGNAT
실제로는 변환이 두 번 일어나는 경우가 많습니다. 노트북 → 폰에서 한 번(폰의 NAT), 그리고 폰 → 통신사에서 또 한 번(CGNAT) 변환됩니다. 통신사는 IP 주소가 부족해서 가입자 수천 명을 공인 IP 하나에 몰아넣기 때문입니다. 이 '이중 NAT' 구조 때문에 테더링 기기는 외부에서 직접 접속이 어렵고, 통신사 입장에서는 한 회선 뒤에 기기가 몇 대 있는지 겉주소만으로는 알기 어렵습니다 — 그래서 다음 장의 '감지 기술'이 필요해집니다.
4-5. 왜 테더링과 폰의 외부 IP가 다를까? (APN 분리)
whatismyip 같은 사이트에서 확인해 보면, 폰으로 직접 접속했을 때의 외부(공인) IP와 그 폰에 테더링한 노트북의 외부 IP가 서로 다르게 나오는 경우가 있습니다. 이건 버그가 아니라 통신사가 일부러 만든 구조이며, 그 기술의 이름은 'APN 분리(별도 PDN 라우팅)'입니다.
폰이 통신사망에 붙는다는 건, APN(접속 관문 이름)을 골라 PDN이라는 데이터 세션(파이프)을 하나 여는 일입니다. 그런데 폰은 여러 APN에 동시에 붙을 수 있습니다 — 인터넷용, 영상통화(VoLTE)용, MMS용처럼요. 통신사는 여기에 테더링 전용 APN을 하나 더 둬서, 테더링 트래픽만 그쪽 파이프로 흐르게 합니다.
그리고 핵심은 — APN마다 거치는 출구 게이트웨이(P-GW)가 다르고, 게이트웨이마다 공인 IP 풀(CGNAT)이 다르다는 점입니다. 그래서 출구가 갈리면 바깥에서 보이는 공인 IP도 갈립니다.
5. 아이폰 vs 안드로이드, 무엇이 다른가
5-1. 기술적 동작은 사실상 동일
먼저 분명히 할 점 — DHCP·NAT·게이트웨이로 동작하는 원리 자체는 아이폰과 안드로이드가 똑같습니다. 둘 다 폰이 작은 공유기가 되는 방식입니다. 진짜 차이는 '기술'이 아니라 '통신사가 그 기능을 얼마나 통제하느냐', '사용자가 얼마나 손댈 수 있느냐'에 있습니다.
- 핫스팟 기능이 통신사 프로파일(Carrier Bundle/IPCC)에 묶여 있음 — 통신사가 켜고 끄는 권한을 강하게 쥠
- OS가 닫혀 있어 사용자가 TTL·APN을 임의로 바꾸기 어려움(탈옥 전엔 거의 불가)
- 설정이 단순·일관됨. '개인용 핫스팟' 하나로 Wi-Fi/USB/BT 통합 관리
- 통신사 입장에선 통제·예측이 쉬운 환경
- 제조사·기종마다 설정이 다양하고 개방적
- 일부 통신사는 테더링을 별도 DUN APN으로 분리해 따로 식별·과금
- 루팅하면 TTL 고정·APN 변경 등으로 감지를 우회하려는 시도가 가능(통신사 약관 위반일 수 있음)
- 통신사 입장에선 변형·우회 가능성이 더 큰 환경
| 항목 | 아이폰 | 안드로이드 |
|---|---|---|
| 연결 원리(DHCP/NAT) | 동일 — 폰이 게이트웨이가 됨 | |
| 기능 통제 주체 | 통신사 프로파일이 강하게 통제 | 비교적 개방, 기종 편차 큼 |
| 테더링 전용 APN(DUN) | 거의 사용 안 함(프로파일로 처리) | 통신사에 따라 DUN APN 분리 |
| 사용자 우회(TTL 등) | 탈옥 전엔 매우 어려움 | 루팅 시 가능(권장 안 함) |
| OS 기본 TTL | 64 | 64 |
5-2. 정리 — '같은 엔진, 다른 잠금장치'
엔진(DHCP·NAT)은 같고, 그 위에 채워진 잠금장치(통신사 통제)의 세기가 다른 셈입니다. 아이폰은 잠금이 단단해 통신사 정책대로만 동작하고, 안드로이드는 더 열려 있어 우회 여지가 있지만 그만큼 통신사도 다음 장의 감지 기술로 더 적극 대응합니다.
6. 통신사는 테더링을 어떻게 감지하나
앞에서 봤듯 NAT 때문에 겉주소만 보면 노트북 트래픽도 폰 트래픽처럼 보입니다. 그래서 통신사는 패킷 '겉봉투'가 아니라 패킷 속 작은 흔적들을 보고 "이건 폰 뒤에 숨은 다른 기기다"라고 추정합니다. 가장 고전적이고 강력한 단서가 TTL입니다.
6-1. TTL 검사 — 가장 핵심 단서
모든 IP 패킷에는 TTL(Time To Live)이라는 숫자가 들어 있습니다. 원래는 '잘못 떠도는 패킷'이 무한히 도는 걸 막으려고 만든 수명 카운터로, 라우터(공유기)를 하나 지날 때마다 1씩 줄어듭니다. 각 운영체제는 패킷을 처음 만들 때 TTL에 정해진 출발값을 넣습니다.
- iOS · 안드로이드 · macOS · 리눅스 → 출발 TTL 64
- Windows → 출발 TTL 128
폰이 직접 보낸 트래픽은 기지국에 도착할 때 TTL이 64 그대로입니다(라우터를 안 거쳤으니까). 그런데 노트북이 테더링으로 보낸 트래픽은 폰이라는 라우터를 한 번 거치므로 TTL이 1 줄어 63(노트북이 리눅스/맥) 또는 127(노트북이 윈도우)로 도착합니다. 통신사는 자기 망에 들어오는 패킷의 TTL이 64가 아닌 63·127이면 "이건 폰 뒤에 다른 기기가 있다 = 테더링"이라고 판단합니다.
6-2. OS 핑거프린팅 — '말투'로 OS를 알아낸다
TTL만으로 부족하면, 통신사는 TCP/IP 스택의 미세한 습관을 봅니다. 운영체제마다 패킷을 만드는 '말투'가 조금씩 다릅니다 — TCP 윈도우 크기, 옵션을 나열하는 순서, MSS(한 번에 보내는 최대 크기) 값 등이 OS 지문처럼 다릅니다. 폰의 셀룰러 가입자는 'iOS/안드로이드'여야 하는데 트래픽에서 Windows·macOS의 지문이 나오면 "폰 뒤에 PC가 있다"고 판단합니다.
6-3. DPI와 User-Agent — 내용·목적지로 추정
DPI(Deep Packet Inspection)는 패킷 속을 들여다보는 검사입니다. 과거 HTTP 시절엔
브라우저가 보내는 User-Agent에 Windows NT 10.0 같은 글자가 그대로 보여서
PC 트래픽을 쉽게 잡았습니다. 지금은 대부분 HTTPS로 암호화되어 이 방법은 거의 막혔습니다.
대신 통신사는 접속하는 목적지로 추정합니다 — 예를 들어 폰엔 없을 법한
Windows Update 서버나 데스크톱 전용 프로그램의 업데이트 도메인에 큰 트래픽이 오가면
PC 사용 신호로 봅니다.
6-4. 트래픽 패턴과 전용 APN
그 밖에도 여러 보조 단서를 함께 봅니다.
- 동시 연결 수·트래픽량 — 폰 한 대치곤 비정상적으로 많은 동시 세션이나 대용량 다운로드
- 전용 APN(DUN) 분리 — 일부 통신사는 테더링 트래픽을 아예 다른 APN으로 흐르게 설계해, 그 APN을 지나는 양만 따로 측정·과금
- IP 식별자(IPID) 패턴 등 헤더의 미세한 규칙성
이 단서들은 단독으론 약하지만, TTL·핑거프린팅과 겹쳐서 보면 정확도가 올라갑니다.
6-5. 감지의 한계와 우회 (그리고 주의)
감지는 완벽하지 않습니다. 사용자가 노트북·폰의 TTL 출발값을 65로 고정해 두면, 폰을 거쳐 −1 되어도 64로 도착해 '폰 직접 트래픽'처럼 위장됩니다. 이 때문에 루팅/탈옥 기반의 우회 도구가 존재하지만, 통신사는 그에 맞춰 OS 핑거프린팅·트래픽 패턴 분석으로 다시 대응하는 창과 방패의 반복이 이어집니다.
7. 감지 우회는 어떻게 동작하나 — PairVPN · iSH (원리)
6장에서 통신사가 TTL · APN · 핑거프린팅으로 테더링을 알아낸다고 했습니다. 그렇다면 PairVPN이나 iSH 같은 앱은 그걸 어떻게 피하는 걸까요? 둘 다 결국 같은 한 가지 아이디어를 씁니다. 여기서는 그 이론적 원리를 살펴봅니다.
7-1. 핵심 — '통과'가 아니라 '재출발(re-origination)'
일반 테더링에서 폰은 라우터입니다 — 노트북 패킷을 받아 목적지로 '통과'시키므로, 패킷의 출발지·OS 지문이 그대로 남고 TTL이 −1 됩니다. 그래서 들킵니다. 우회 앱은 폰을 프록시/대리인으로 바꿉니다 — 노트북 패킷의 내용물만 꺼내 폰 앱이 자기 이름으로 새 패킷을 만들어 보냅니다. 새 패킷이니 출발지는 폰, TTL은 64, APN은 폰의 일반 인터넷입니다.
7-2. PairVPN의 기전
PairVPN은 이 '재출발'을 두 기기 사이의 로컬 VPN 터널로 구현한 앱입니다. 폰에는 서버 모드, 노트북·태블릿에는 클라이언트 모드로 앱을 깔고, 6자리 코드로 한 번 페어링하면 둘 사이에 터널이 생깁니다. 공식 설명에 따르면 클라이언트의 모든 트래픽이 이 터널을 타고 폰으로 들어와 폰의 데이터 연결로 나가며, 그 결과 "핫스팟 사용이 아니라 폰의 일반 인터넷 사용"으로 분류됩니다.
한 가지 특징 — PairVPN은 들어오는 포트를 열지 않고(방화벽 변경 없음) 페어링 방식으로 동작해, 일반 VPN 서버보다 설정이 단순하고 안전하다고 설명합니다. 다만 현재는 기기 1대만 연결됩니다.
7-3. iSH란 무엇인가
iSH는 우회 전용 앱이 아니라, 아이폰·아이패드 안에서 도는 '작은 리눅스'입니다. Alpine Linux 기반의 리눅스 셸 환경을 iOS 위에서 제공합니다(탈옥 불필요, iOS 13+).
iOS는 외부 네이티브 코드의 실행을 막기 때문에, iSH는 정공법 대신 x86 명령어를 소프트웨어로 에뮬레이션(usermode emulation)하고 리눅스 시스템콜을 iOS용으로 번역(syscall translation)합니다. 내부적으로 Asbestos라는 자체 인터프리터, 가짜 파일시스템(fakefs), 네트워크 syscall을 iOS 네트워크 API로 옮기는 변환 계층으로 이뤄집니다. 한마디로 "아이폰 속 리눅스 에뮬레이터"입니다.
7-4. iSH가 테더링과 무슨 상관? (이론)
iSH 자체는 테더링 도구가 아니지만, 그 안에서 프록시 서버(SOCKS·SSH 터널·gost 등)를 돌리면 PairVPN과 같은 '재출발' 원리를 범용 리눅스로 구현할 수 있습니다. 이론적 흐름은 이렇습니다.
- iSH 안의 프록시가 바깥으로 내는 연결은 iSH 앱 = 폰 자신의 데이터 연결에서 출발합니다.
- 노트북을 폰 핫스팟에 붙인 뒤, 노트북이 그 프록시를 거쳐 인터넷에 나가도록 설정합니다.
- 그러면 노트북 트래픽이 폰 앱에서 재출발하므로, 통신사 눈엔 폰 트래픽처럼 보입니다.
즉 PairVPN은 '전용 앱'으로, iSH는 '범용 리눅스 + 프록시'로 같은 원리를 구현하는 셈입니다. 다만 iSH는 에뮬레이션이라 속도가 느리고 설정이 까다로우며, 어디까지나 원리 학습용 설명입니다.
7-5. 왜 6장의 감지를 피하게 되나
'재출발' 한 번으로 6장의 단서들이 동시에 무력화되는 이유를 표로 정리합니다.
| 감지 기법(6장) | 일반 테더링 | 재출발 우회(PairVPN·iSH) |
|---|---|---|
| TTL 검사 | 63 / 127 (라우터 통과) | 64 — 폰 앱이 새로 만든 패킷 |
| OS 핑거프린팅 | PC의 TCP 지문 노출 | 바깥 패킷은 폰 앱의 지문 |
| APN 분리 | 테더링(DUN) APN | 폰의 internet APN으로 나감 |
| DPI · 목적지 | PC 트래픽 패턴 노출 | 터널로 암호화, 폰에서 출발 |
8. 한 줄 요약
- 테더링 — 폰의 셀룰러 인터넷을 다른 기기에 나눠 주는 것. 폰이 작은 공유기(게이트웨이)가 된다
- 연결 방식 — Wi-Fi(핫스팟·AP) / USB(RNDIS) / 블루투스(PAN). 방식만 다를 뿐 뒤 원리는 동일
- 연결 원리 — 폰이 DHCP로 사설 IP를 나눠 주고, NAT로 그 주소를 인터넷용으로 바꿔 내보낸다(실제론 CGNAT까지 이중 NAT)
- 아이폰 vs 안드로이드 — 동작 원리는 같음. 차이는 통신사 통제의 세기: 아이폰은 프로파일로 단단히 잠겨 있고, 안드로이드는 개방적이라 우회 여지가 큼
- 통신사 감지 — 핵심은 TTL(폰을 거쳐 63·127이면 의심). 보조로 OS 핑거프린팅 · DPI · 목적지 · 트래픽 패턴 · DUN APN
- 감지 우회(PairVPN·iSH) — 폰이 트래픽을 '통과'시키지 않고 앱이 다시 만들어 보내면(재출발) 폰 자신의 트래픽처럼 보임 → TTL·APN·핑거프린팅이 한꺼번에 무력화됨 (단, 약관 위반 소지)
- 가장 중요한 직관 — NAT 때문에 '겉주소'는 다 같아 보이므로, 통신사는 패킷 속 작은 흔적으로 폰 뒤의 기기를 추론한다