포트 전달을 사용하여 AWS 인스턴스를 통해 로컬 PC와 주고받는 모든 트래픽을 라우팅할 수 있습니까?

포트 전달을 사용하여 AWS 인스턴스를 통해 로컬 PC와 주고받는 모든 트래픽을 라우팅할 수 있습니까?

PuTTY의 포트 전달 기능을 활용하여 가정용 PC(Windows 11에서 실행)에서 내가 프로비저닝하고 설정한 AWS Lightsail 인스턴스(Ubuntu LTS 20.04에서 실행)로 연결을 설정하려고 합니다. 아이디어는 프록시 서버나 VPN을 사용하여 인터넷에 액세스하는 것과 같이 내 집 PC를 통해 인스턴스에 사용할 수 있는 인터넷 연결을 사용하는 것입니다.

다음 매개변수를 가정합니다.

  • AWS 인스턴스의 퍼블릭 IP 주소:x.x.x.x
  • AWS 인스턴스의 프라이빗 IP 주소:Y.Y.Y.Y
  • SSH 포트:22
  • 6088계정 수준과 인스턴스 수준 모두에서 포트를 열었습니다.
  • 내 로컬 PC의 공용 IP 주소(라우터 IP):a.a.a.a
  • 내 로컬 PC의 개인 IP 주소:b.b.b.b

지금까지 제가 이론적으로 이해한 바는 원격 Lightsail 인스턴스의 포트 6088을 내 홈 PC의 해당 로컬 포트 ​​6088로 전달하는 원격 포트에 PuTTY를 사용해야 한다는 것입니다.

가정용 PC의 프록시 설정을 localhost:6088. 처음에는 VNC 클라이언트-서버 구성표를 통해 원격 인스턴스에 액세스할 계획이었지만 작동하지 못했습니다.

인터넷 검색을 좀 해보니 AWS가 VPN 네트워크 설정 목적으로 특별히 인스턴스도 제공하며 이러한 인스턴스가 제가 고려 중인 사용 사례를 가능하게 한다는 사실을 알게 되었습니다.

누구든지 올바른 방법이 무엇인지 제안할 수 있습니까?

답변1

  1. 전달 모드가 거꾸로되어 있습니다. "원격" 전달을 사용하면 서버가 수신기가 됩니다. 연결은 서버 주소:포트(서버 내에서 localhost:6088 또는 다른 호스트에서 serverip:6088)로 이루어지며 클라이언트 시스템으로 전달됩니다.

    당신이 하려는 것은 그것과 완전히 반대되는 것이므로 SSH가 "로컬" 전달 모드와 더 유사한 것을 포함할 것입니다.고객포트 6088의 리스너입니다(AWS 서버의 방화벽 규칙은 관련이 없습니다).

  2. "원격" 및 "로컬" 모드는 모두 고정된 기능입니다. 즉, 앱이 연결하려는 위치를 지정하는 것을 허용하지 않습니다. 항상 지정된 대상으로만 전달합니다. 예를 들어 로컬 포트가 6088이고 원격 대상이 google.com:443인 '로컬' 전달이 있는 경우모든localhost:6088에 대한 연결은 google.com:443으로 전달되고 다른 곳으로는 전달되지 않습니다.

    (이는 "로컬" 또는 "원격"인 경우에도 마찬가지입니다.~였다적합한 모드에서는 포트를 사용하지 않을 것입니다.대리구성 – 실제 서비스인 것처럼 직접 사용하게 됩니다.)

    대신 PuTTY의 세 번째 모드인 "동적" 전달이 필요합니다. 이 모드는 여전히 "로컬"과 동일한 범주에 속하지만 PuTTY를 SOCKS 프록시처럼 작동하게 합니다. 포트 6088에서 "동적" 전달을 사용하면 localhost:6088을 SOCKS 프록시로 사용하고 AWS 서버를 탐색할 수 있도록 브라우저를 구성할 수 있습니다.

  3. PuTTY는 SOCKS 프록시로만 작동할 수 있으며 Firefox와 Chrome은 SOCKS를 말하는 프록시를 사용하는 방법을 알고 있지만 다른 많은 앱은 그렇지 않습니다. "HTTP CONNECT"를 지원하지만 SOCKS는 지원하지 않는 앱을 ​​보는 것이 비교적 일반적입니다.

    PuTTY에는 이를 에뮬레이트하는 기능이 없으므로 다음을 실행해야 할 수도 있습니다.진짜AWS 서버의 HTTP 프록시 서버(예: Squid 또는 Privoxy)를 선택한 다음 "로컬" 전달을 사용하여 SSH를 통해 액세스합니다. (또는 Tor가 했던 일을 수행하고 Privoxy/Polipo를 로컬에서 실행하고 PuTTY의 "동적" 포트를 가리키며 '브라우저→HTTP→Privoxy→SOCKS→PuTTY→SSH→AWS'로 이동합니다.)

  4. 위의 모든 항목은 TCP 트래픽만 처리할 수 있습니다. UDP가 필요한 경우(또는 ping프록시를 원하는 경우에도) 해당 프록시 유형 중 어느 것도 작동하지 않습니다.

    이 경우 PC와 AWS 서버 사이에 전체 VPN 터널을 설정해야 합니다. (SSH는 Windows에서 그렇게 할 수 없으며 일반적으로 그다지 적합하지 않습니다. 대신 OpenVPN, Tailscale, WireGuard 등을 사용합니다.) 해당 목적을 위해 특별한 종류의 서버가 필요하지 않습니다.

    (VPN 설정에 적합하지 않은 서버 유형이 있습니다. 즉, 일부 공급자가 제공하는 매우 저렴한 "VPS"는 위장된 OpenVZ 컨테이너일 뿐이지만 일반적으로 최소한 OpenVPN을 호스팅할 수 있습니다. 제 생각에는 그렇지 않습니다. AWS에는 모든 VPS가 완벽하게 작동하는 가상 서버가 있습니다.)

관련 정보