paint-brush
지리적 제한을 우회하기 위해 개인 주거용 프록시를 만드는 방법~에 의해@abhilashchowdhary
12,995 판독값
12,995 판독값

지리적 제한을 우회하기 위해 개인 주거용 프록시를 만드는 방법

~에 의해 Abhilash Chowdhary5m2023/01/28
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

주거용 프록시에는 웹 스크래핑, 온라인 조사, 지역 제한 우회 및 익명 검색과 같은 유용한 응용 프로그램이 많이 있습니다. 그러나 일부는 10GB가 넘는 데이터에 액세스하기 위해 한 달에 100달러 이상을 청구할 정도로 비용이 많이 들 수 있습니다. 저는 P2P VPN을 사용하여 미국에 있는 집 데스크탑에 주거용 프록시를 만들어서 해결책을 찾았습니다.
featured image - 지리적 제한을 우회하기 위해 개인 주거용 프록시를 만드는 방법
Abhilash Chowdhary HackerNoon profile picture

문제

주거용 프록시에는 웹 스크래핑, 온라인 조사, 지역 제한 우회 및 익명 검색과 같은 유용한 응용 프로그램이 많이 있습니다. 그러나 일부는 10GB가 넘는 데이터에 액세스하기 위해 한 달에 100달러 이상을 청구할 정도로 비용이 많이 들 수 있습니다.


작년에 인도와 동남아시아의 다른 지역을 여행할 때 지역 제한 없이 Netflix 및 Amazon Prime과 같은 다양한 구독 서비스의 콘텐츠에 액세스할 수 있는 안정적인 방법을 원했습니다. 그동안 하고 싶었는데


  1. VPN/주거용 프록시 서비스에 대해 월 $100 이상을 지불할 필요가 없습니다. 또한 VPN을 사용할 때 Netflix가 가끔 나를 차단했습니다.
  2. 미국에 있는 내 집 인터넷 연결을 위한 고정 IP에 대해 추가 비용을 지불하지 않습니다.

해결책

나는 미국에 있는 내 집 데스크톱에 나만의 주거용 프록시를 만들어서 해결책을 찾았습니다.


P2P(Peer-to-Peer) VPN을 설정하고 여기에 노트북과 데스크톱을 연결함으로써 인도에 있는 노트북의 트래픽을 미국에 있는 데스크톱으로 라우팅할 수 있었고, 그런 다음 이 요청을 www/public으로 전달할 수 있었습니다. 내 홈 네트워크에서 응답을 반환하기 전에 인터넷.


이 모든 것은 내 홈 라우터에서 연결 전달 구성을 설정하는 번거로움을 겪지 않고도 가능합니다.


P2P VPN이란 무엇입니까?

P2P(Peer-to-Peer)는 사용자를 위한 안전한 공유 환경을 만드는 데 사용되는 VPN의 아키텍처 모델입니다. P2P 기반 VPN은 모든 트래픽을 중앙 서버를 통해 라우팅하지 않고 혼잡을 방지한다는 점에서 표준 허브 앤 스포크 모델과 다릅니다. 이를 통해 보안이 향상되고 네트워크에 과도한 부담을 주지 않고 노드를 추가하여 보다 효율적인 확장이 가능해집니다. 또한 P2P VPN의 연결은 가장 빠른 경로를 활용하여 지연을 줄입니다.


다양한 오픈 소스, 프리미엄 및 유료 P2P VPN 솔루션을 사용할 수 있습니다. Tinc는 인기 있는 오픈 소스 VPN 중 하나입니다.


네트워크 설정은 어떻게 보입니까?

네트워크 스택은 다음 구성 요소로 구성됩니다.


  1. 집에서의 데스크탑(미국)

  2. 내 노트북(미국 외)

  3. 동일한 계정을 통해 두 시스템에서 실행되는 P2P VPN 데몬

  4. 데스크탑에서 실행되는 HTTP 프록시 서버


아래 다이어그램은 미국 이외의 지역에 있는 내 노트북에서 공개 웹페이지를 검색하기 위한 정보 흐름을 보여줍니다.

미국 이외 지역의 노트북에서 공개 웹페이지를 검색할 때 정보 흐름. 1.은 초기 요청이고 4.는 최종 응답입니다.


저는 설정이 쉽고 구성이 거의 필요하지 않은 P2P VPN을 원했습니다. 결국 tailscale을 사용하게 되었습니다. 아래 단계는 대부분 모든 VPN에 일반적이지만 tailscale을 사용하는 경우 가장 적합할 수 있습니다.

이 네트워크를 설정하는 데 수행된 단계

  1. 데스크톱 및 노트북에서 VPN 클라이언트 설정 :

    1. 데스크톱과 노트북에 VPN 클라이언트를 다운로드하고 설치하세요.

    2. 구성이 없는 VPN을 사용하는 경우 VPN에 계정을 등록하고 동일한 계정으로 두 컴퓨터 모두에 로그인하세요.


  2. 데스크탑에서 정방향 http 프록시 서버 설정 :

    오픈 소스 프록시 서버를 사용할 수 있습니다. 설정이 쉬웠기 때문에 https://github.com/abhinavsingh/proxy.py를 사용했습니다. 도커 컨테이너 내에서 실행했습니다. 이 프록시의 Docker 이미지는 Docker 허브에서 사용할 수 있습니다. Docker 컨테이너 내에서 실행하려면 다음 명령을 실행할 수 있습니다.

     docker run -it -p 8899:8899 --rm abhinavsingh/proxy.py:latest


    위 명령에서 프록시 서버는 포트 8899에서 수신 대기합니다. 이는 랩톱 내의 애플리케이션에서 프록시 서버의 URL을 지정할 때 유용합니다.


  3. 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 주소를 찾을 수 있었습니다.


  4. 노트북의 프록시 서버 주소를 사용하여 공개 웹에 액세스:

    이제 데스크톱의 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"


프록시 서버 사용

위의 지침은 집에 있는 예비 컴퓨터를 사용하여 여행하는 동안 무료 가정용 프록시 서버를 만드는 방법을 보여줍니다. 이제 다음과 같은 방법으로 개인 노트북에서 이 프록시 주소를 사용할 수 있습니다.


  1. 웹 프레임워크/언어의 http 클라이언트 라이브러리 내부 애플리케이션 코드 내(Python의 요청, javascript의 가져오기 등)
  2. 노트북의 모든 웹 요청에 적합합니다. 이렇게 하면 데스크톱의 프록시 서버를 통해 모든 종류의 http 요청을 전달할 수 있습니다. 우분투에서는 다음 단계에 따라 이를 수행할 수 있습니다. https://help.ubuntu.com/stable/ubuntu-help/net-proxy.html.en
  3. 브라우저에서만 가능합니다. Chrome과 Firefox는 독점적인 http 프록시 설정을 구성하는 기본 방법을 제공하지 않지만 다음과 같은 확장 프로그램을 통해 이 작업을 수행할 수 있습니다. https://github.com/foxyproxy/firefox-extension


저는 2를 선택하고 모든 http 요청을 노트북에서 데스크탑으로 전달했습니다. 나는 눈에 띄는 다운타임 없이 이 설정을 2개월 이상 사용했습니다.


결론

이 기사에서는 다음을 사용하여 개인 주거용 프록시를 설정하는 방법을 살펴보았습니다.


  1. P2P VPN
  2. 두 대 이상의 개인용 컴퓨터


VPN 선택에 따라, 이미 여러 대의 컴퓨터를 소유하고 있다면 추가 비용 없이 전체 설정을 완료할 수 있습니다. 이 주거용 프록시를 사용하면 현재 물리적 위치로 인한 지리적 제한 없이 익명으로 인터넷에 액세스할 수 있습니다.