서론
자주 사용하는 웹사이트에서 언제부턴가 집 IP로 접근을 할 수 없게 되었다.
자주 접속하는 사이트였고, 사이트 접근 자체가 불가능한 것은 많이 불편했다.
VPN 서비스인 Mullvad를 사용해 접속을 시도해봤지만, 지속적인 Captcha와 더불어 글, 댓글 작성 등에 제약이 있어 만족스럽지 못했다.
기존 우회 방법의 한계
나는 OCI에서 ARM64 무료 인스턴스를 활용해 다양한 self-hosted 서비스를 돌리고 있었다.
모바일의 경우 WireGuard 앱에서 제공하는 Split Tunneling 기능을 사용하면 특정 앱만 터널링하여 사이트 접근이 가능했기 때문에 문제가 없었다. 문제는 데스크탑 환경이었다.
데스크탑의 경우 동일하게 Split Tunneling 기능을 사용할 수 있지만, 브라우저 프로그램 자체를 터널링해야 했고, 이로 인해 다른 웹사이트 이용에 불편이 생겼다.기존에는 서버에 WireGuard를 구축해두고 WireSockUI를 이용하여 특정 브라우저만 터널링하며 사용했지만 너무나도 불편하였다.
문제점:
- VPS IP 대역을 차단하는 서비스가 많음
- Captcha 빈도가 많음
해결책: FoxyProxy + SOCKS5를 활용한 per-site 터널링
per-site tunneling 이 가능한 방법이 있는지 궁금하여 찾던 중 프록시 서버를 두어 FoxyProxy 앱으로 특정 도메인만 해당 프록시를 터널링하도록 설정하는 방식을 알아냈다.
설정 방법
1. SOCKS5 프록시 서버 구성
우선 터널링할 서버에 proxy server을 만들어둔다.
나는 SOCKS5 프록시 서버를 도커를 이용해 쉽게 구축할 수 있는 프로젝트를 이용하였다.
docker run -d --name socks5 -p 1080:1080 -e PROXY_USER=<PROXY_USER> -e PROXY_PASSWORD=<PROXY_PASSWORD> serjs/go-socks5-proxy
단순히 유저네임, 패스워드를 설정해주기만 하면 SOCKS5 서버는 열리게 된다.
2. 브라우저 설정
사용하는 브라우저에 FoxyProxy 익스텐션을 설치한다.
Proxies 탭에서
Host/IP: 프록시 서버
IP Port: 1080
Username/Password: PROXY_USER/PROXY_PASSWORD
Type: SOCKS5
로 설정해준다

이후 아랫부분에 Proxy by Patterns을 이용할거다.
Wildcard를 이용해 터널링할 웹사이트를 설정할거다.
필자는 *.example.com* 패턴으로 설정하고 설정을 마쳤다.

터널링 테스트 및 사용
이제 저장한 뒤, Test를 눌러 프록시가 정상적으로 작동되는지 확인한다.

Your IP란이 프록시 서버의 IP라면 이제 잘 작동할 것이다.

이제 FoxyProxy 익스텐션에서 Proxy by Patterns를 눌러 브라우징을 하면된다.
결론
이 방법을 사용하면, 특정 웹사이트만 터널링할 수 있고 다른 사이트들은 기존 IP 그대로 사용이 가능하여 Captcha 문제나 접근 제한을 피할 수 있다. 데스크탑 환경에서 Split Tunneling이 복잡하거나 불편했던 사용자라면, 이 방식이 도움이 될 것이다.

답글 남기기