피드로 돌아가기
Dev.toInfrastructure
원문 읽기
dnsmasq와 HTTP 302 리다이렉션을 활용한 Captive Portal 기반 로컬 미디어 공유망 구축
How I built a local media sharing network that hijacks captive portals
AI 요약
Context
별도의 앱 설치나 계정 생성 없이 주변 사용자가 즉각적으로 미디어를 공유하는 익명 네트워크 환경 필요. OS별 인터넷 연결 확인 메커니즘을 역이용하여 사용자 접속 시 자동으로 웹 인터페이스를 노출하는 구조 설계.
Technical Solution
- dnsmasq를 통한 OS별 Connectivity Check URL의 DNS Hijacking 수행 및 서버 IP로 강제 라우팅
- FastAPI 기반의 엔드포인트 설계로 Android, iOS, Windows의 요청에 대해 HTTP 302 Found 응답을 반환하여 Captive Portal 팝업 트리거
- Raspberry Pi Zero 2W의 리소스 제약을 고려한 Vanilla HTML/CSS/JS 기반 프론트엔드 구현으로 브라우저 호환성 및 경량화 확보
- SQLAlchemy를 활용한 데이터 영속성 계층 구축으로 사용자 식별자 기반의 미디어 관리 및 삭제 기능 제공
- 결정론적 프로필 생성 알고리즘을 적용하여 사용자 ID에 매핑된 고유 아바타 자동 생성 및 시각적 정체성 부여
실천 포인트
1. OS별 Connectivity Check URL(gstatic, apple, msft)의 동작 방식 확인
2. dnsmasq를 활용한 로컬 DNS 변조를 통한 트래픽 제어 가능성 검토
3. HTTP 302 응답을 통한 강제 웹 뷰 진입 시나리오 설계
4. 저사양 임베디드 환경에서의 프레임워크 제거를 통한 런타임 효율화