주거용 프록시에는 웹 스크래핑, 온라인 조사, 지역 제한 우회 및 익명 검색과 같은 유용한 응용 프로그램이 많이 있습니다. 그러나 일부는 10GB가 넘는 데이터에 액세스하기 위해 한 달에 100달러 이상을 청구할 정도로 비용이 많이 들 수 있습니다.
작년에 인도와 동남아시아의 다른 지역을 여행할 때 지역 제한 없이 Netflix 및 Amazon Prime과 같은 다양한 구독 서비스의 콘텐츠에 액세스할 수 있는 안정적인 방법을 원했습니다. 그동안 하고 싶었는데
나는 미국에 있는 내 집 데스크톱에 나만의 주거용 프록시를 만들어서 해결책을 찾았습니다.
P2P(Peer-to-Peer) VPN을 설정하고 여기에 노트북과 데스크톱을 연결함으로써 인도에 있는 노트북의 트래픽을 미국에 있는 데스크톱으로 라우팅할 수 있었고, 그런 다음 이 요청을 www/public으로 전달할 수 있었습니다. 내 홈 네트워크에서 응답을 반환하기 전에 인터넷.
이 모든 것은 내 홈 라우터에서 연결 전달 구성을 설정하는 번거로움을 겪지 않고도 가능합니다.
P2P(Peer-to-Peer)는 사용자를 위한 안전한 공유 환경을 만드는 데 사용되는 VPN의 아키텍처 모델입니다. P2P 기반 VPN은 모든 트래픽을 중앙 서버를 통해 라우팅하지 않고 혼잡을 방지한다는 점에서 표준 허브 앤 스포크 모델과 다릅니다. 이를 통해 보안이 향상되고 네트워크에 과도한 부담을 주지 않고 노드를 추가하여 보다 효율적인 확장이 가능해집니다. 또한 P2P VPN의 연결은 가장 빠른 경로를 활용하여 지연을 줄입니다.
다양한 오픈 소스, 프리미엄 및 유료 P2P VPN 솔루션을 사용할 수 있습니다. Tinc는 인기 있는 오픈 소스 VPN 중 하나입니다.
네트워크 스택은 다음 구성 요소로 구성됩니다.
집에서의 데스크탑(미국)
내 노트북(미국 외)
동일한 계정을 통해 두 시스템에서 실행되는 P2P VPN 데몬
데스크탑에서 실행되는 HTTP 프록시 서버
아래 다이어그램은 미국 이외의 지역에 있는 내 노트북에서 공개 웹페이지를 검색하기 위한 정보 흐름을 보여줍니다.
저는 설정이 쉽고 구성이 거의 필요하지 않은 P2P VPN을 원했습니다. 결국 tailscale을 사용하게 되었습니다. 아래 단계는 대부분 모든 VPN에 일반적이지만 tailscale을 사용하는 경우 가장 적합할 수 있습니다.
데스크톱 및 노트북에서 VPN 클라이언트 설정 :
데스크톱과 노트북에 VPN 클라이언트를 다운로드하고 설치하세요.
구성이 없는 VPN을 사용하는 경우 VPN에 계정을 등록하고 동일한 계정으로 두 컴퓨터 모두에 로그인하세요.
데스크탑에서 정방향 http 프록시 서버 설정 :
오픈 소스 프록시 서버를 사용할 수 있습니다. 설정이 쉬웠기 때문에 https://github.com/abhinavsingh/proxy.py를 사용했습니다. 도커 컨테이너 내에서 실행했습니다. 이 프록시의 Docker 이미지는 Docker 허브에서 사용할 수 있습니다. Docker 컨테이너 내에서 실행하려면 다음 명령을 실행할 수 있습니다.
docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest
위 명령에서 프록시 서버는 포트 8899에서 수신 대기합니다. 이는 랩톱 내의 애플리케이션에서 프록시 서버의 URL을 지정할 때 유용합니다.
VPN 네트워크에서 데스크톱의 IP 주소 확인 : VPN 계정을 설치하고 로그인한 후 랩톱에서 http 요청을 전달하는 데 사용할 데스크톱의 IP 주소를 알아보세요.
이를 위해 데스크탑의 모든 네트워크 인터페이스에 대한 IP 주소를 나열할 수 있습니다. 그런 다음 이름이 VPN 클라이언트 이름으로 시작하는 인터페이스의 IP 주소를 식별합니다. 제 경우에는 "tailscale"로 시작합니다.
내 Linux 컴퓨터의 터미널에서 ip
명령을 사용하여 IP 주소를 식별했습니다.
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever …. 4: tailscale0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UNKNOWN group default qlen 500 link/none inet 100.113.xxx.xx/32 scope global tailscale0 valid_lft forever preferred_lft forever …
여기에서 네트워크 인터페이스 tailscale0
: 100.113.xxx.xx
의 로컬 tailscale 네트워크 내에서 데스크톱의 IP 주소를 찾을 수 있었습니다.
노트북의 프록시 서버 주소를 사용하여 공개 웹에 액세스:
이제 데스크톱의 IP 주소( $ip_desktop
이라고 함)와 데스크톱에 있는 http 프록시 서버의 포트 번호( $proxy_port
라고 함)를 알았으므로 랩톱의 모든 네트워크 트래픽을 프록시 주소 http://$ip_desktop:$proxy_port
를 통해 전달할 수 있습니다. http://$ip_desktop:$proxy_port
.
예를 들어 다음과 같이 데스크톱을 통해 노트북에서 example.com으로 컬 요청을 보낼 수 있습니다.
curl --proxy "http://$ip_desktop:$proxy_port" "https://example.com"
위의 지침은 집에 있는 예비 컴퓨터를 사용하여 여행하는 동안 무료 가정용 프록시 서버를 만드는 방법을 보여줍니다. 이제 다음과 같은 방법으로 개인 노트북에서 이 프록시 주소를 사용할 수 있습니다.
저는 2를 선택하고 모든 http 요청을 노트북에서 데스크탑으로 전달했습니다. 나는 눈에 띄는 다운타임 없이 이 설정을 2개월 이상 사용했습니다.
이 기사에서는 다음을 사용하여 개인 주거용 프록시를 설정하는 방법을 살펴보았습니다.
VPN 선택에 따라, 이미 여러 대의 컴퓨터를 소유하고 있다면 추가 비용 없이 전체 설정을 완료할 수 있습니다. 이 주거용 프록시를 사용하면 현재 물리적 위치로 인한 지리적 제한 없이 익명으로 인터넷에 액세스할 수 있습니다.