https를 통한 일반 http 프록시?

https를 통한 일반 http 프록시?

저는 네트워크 관련 분야에 경험이 많지 않지만, 우리나라의 검열 수준이 급속히 증가하고 있기 때문에 나중에 그것을 파헤쳐 봐야 합니다. OpenVPN 및 Shadowsocks 서비스를 설정한 다른 국가에서 VPS를 호스팅하고 있습니다. 이는 지역 검열을 우회하고 금지된 리소스에 접근할 수 있는 훌륭한 도구이지만 이제는 더 복잡한 것이 필요합니다. 최근 내 ISP가 수백 개의 토렌트를 시드하는 일부 토렌트 추적기를 차단했습니다. 이제 내 토렌트 클라이언트는 해당 트래커에 알릴 수 없으므로 DHT로만 시드할 수 있습니다. 내가 원하는 것은 차단된 추적기에 연결하기 위한 몇 가지 해결 방법을 사용하는 것입니다. 하지만 전체 토렌트 트래픽을 VPN/프록시로 래핑하고 싶지는 않습니다. 추적기에서 알림을 알리는 용도로만 일종의 프록시를 사용할 수 있기를 원합니다. 내 실제 IP:Port. 추적기 연결에만 Socks5-proxy(Shadowsocks)를 사용하도록 Deluge 클라이언트를 설정하려고 했지만 추적기가 실제 IP가 아닌 VPS의 IP를 가져오기 때문에 예상대로 작동하지 않습니다. 그런 다음 작업 방법을 찾았습니다. VPS의 Proxy_pass 모드에서 Nginx를 다음과 같이 설정했습니다.

http {
    types_hash_max_size 4096;
    server {
        listen 80 default_server;
        access_log off;
        return 444;
    }
    server {
        listen 80;
        server_name <trackers_list>;
        allow <my_home_ip>;
        deny  all;
        access_log off;
        location / {
            proxy_pass http://$http_host;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            resolver 127.0.0.1;
        }
    }
}

내 라우터 설정에서 차단된 추적기에 대한 모든 요청을 내 원격 VPS의 포트 80으로 전달했습니다. 이제는 잘 작동합니다. 프록시를 통해 추적자에게 알릴 수 있지만 추적자는 헤더의 도움을 받아 동료에게 내 실제 IP를 제공하며 X-Forwarded-ForDHT는 손상되지 않습니다. 그러나 문제는 다음과 같다는 것입니다.


Me -> http -> ISP -> http -> Nginx -> http -> tracker

추적기는 일반 http 프로토콜을 사용하기 때문에 전체 요청이 암호화되지 않습니다. 따라서 ISP는 원할 경우 요청의 실제 대상을 확인하고 DPI와 같은 기능을 사용하여 이를 차단할 수 있습니다. 내가 원하는 것은 다음과 같습니다.


Me -> https -> ISP -> https -> Nginx -> http -> tracker

Nginx가 헤더를 추가하여 추적기에 일반 http 요청을 프록시하도록 하고 싶지만 X-Forwarded-For내 집 컴퓨터와 자체 사이에는 암호화를 사용합니다. 나는 순진하게 Nginx에게 포트 80에서 자체 서명된 SSL 인증서를 사용하라고 지시하려고 했지만 분명히 그런 식으로 400 오류가 발생했습니다 The plain HTTP request was sent to HTTPS port.

달성이 가능한가요? Nginx가 아니라면 다른 도구도 사용할 수 있을까요?

답변1

리버스 프록시 등으로 이 문제를 해결하는 방법을 모르겠지만 SSH 포트 전달을 수행할 수 있습니다. 따라서 vps에 대한 SSH 연결을 유지하고 로컬 포트를 추적기 포트로 전달하도록 SSH를 구성합니다. 그런 다음 실제 추적기 주소 대신 localhost 주소:포트를 사용하도록 토렌트 애플리케이션을 구성합니다.

좋아요를 누른 다음 토렌트 애플리케이션에서처럼 추적기를 구성하세요. 또는 원하는 다른 로컬 포트.ssh –L 8080:the.tracker.ip:trackerport [email protected]http://localhost:8080

OS에 따라 퍼티나 같은 도구를 사용할 수 있습니다.https://github.com/daradb/sidedoor후자는 터널을 열어두고 중단 시 자동으로 다시 연결합니다. 그런 다음 SSH 터널은 이를 통해 제공되는 모든 통신을 암호화합니다.

편집: 이는 토렌트 애플리케이션이 공개 IP 주소 자체를 어떻게든 결정하는 경우에만 작동하며 추적기가 단순히 연결이 시작된 것으로 보이는 IP 주소를 사용하는 경우에는 작동하지 않습니다.

관련 정보