TL;DR
- 호텔 와이파이에서 일반적인 TCP 서비스만 허용되고 WireGuard가 차단되는 경우, Chisel로 UDP와 TCP 트래픽을 HTTP·WebSocket 기반 HTTPS 터널에 실어 홈랩에 연결하는 방법임.
- Chisel은 TCP 또는 UDP를 HTTP와 WebSocket을 통해 프록시하는 도구임.
- 서버는 Rocky Linux에서
dnf로 설치하거나 Docker 컨테이너로 실행할 수 있으며, 서버 실행 시 인증 정보와 수신 포트, 백엔드를 설정함. - Caddy 같은 리버스 프록시를 Chisel 서버 앞에 배치할 수 있으며, 예시에서는
127.0.0.1의 Chisel 포트로 프록시함. - 클라이언트에서 UDP 터널은
/udp를 지정해 실행하고, 해당 부분을 생략하면 TCP 연결을 사용함.
설치
- 웹 서버에서 Chisel 최신 버전을 내려받아 설치하는 방식임.
- Rocky Linux에서는 다음 패키지 주소를
dnf에 전달해 설치하며, Docker 컨테이너로도 설치할 수 있음. - https://github.com/jpillora/chisel/releases/download/v1.11.8/chisel_1.11.8_linux_amd64.rpm
Chisel 서버 실행
- Docker 또는 Windows를 사용하지 않는 경우, Chisel 서버를 인증 정보와 수신 포트, 백엔드를 지정해 실행함.
user는 원하는 사용자 이름,pass는 원하는 비밀번호,port는 Chisel이 수신할 TCP 포트임.- 백엔드 예시는
http://example.com임. - systemd 서비스로 설정할 수도 있으며, 예시에서는
tmux로 실행함. - 리버스 프록시 사용을 권장하며, Caddy 예시에서는 도메인이 서버를 가리키도록 DNS를 설정한 뒤 도메인 블록에서 gzip 인코딩과
127.0.0.1:port로의 프록시를 지정함. 여기서port는 Chisel 포트임. - Caddy 설정 후 Caddy를 재시작해야 하며, nginx나 다른 리버스 프록시를 사용할 경우 각 도구의 안내를 확인해야 함.
Chisel 클라이언트 실행
- Fedora에서는 서버와 마찬가지로
dnf명령으로 Chisel을 설치할 수 있음. - 클라이언트는 인증 정보와
https://url, 로컬 포트, 원격 IP, 원격 포트를 지정해 실행함. user와pass는 설정한 사용자 이름과 비밀번호임.local_port는 로컬에서 수신할 UDP 포트,remote_ip는 연결할 원격 IP,remote_port는 연결할 원격 UDP 포트임.- 경로 끝의
/udp를 생략하면 UDP 대신 TCP로 연결함.
결론
- 가족이 예약한 비싼 호텔의 와이파이가 대부분의 TCP/IP 서비스를 차단하는 상황은 불편하지만, 오픈소스를 활용하면 HTTPS 안에 원시 UDP와 TCP 트래픽을 터널링할 수 있음.
- 중국은 인터넷 검열에 무제한에 가까운 비용을 쓰지만, 영리 호텔·직장·공공 도서관·인터넷 서비스 제공업체(ISP)는 그럴 수 없다는 견해임.
- 후자의 경우 방화벽 설정이 홈랩에 접근할 수 없어야 한다는 뜻은 아니라는 주장임.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요