NAT 뒤의 VPN을 사용하여 NGINX 서버 호스팅

NAT 뒤의 VPN을 사용하여 NGINX 서버 호스팅

저는 T-Mobile 모바일 라우터를 사용하여 Raspberry Pi에서 NGINX를 사용하는 서버를 호스팅하고 있습니다. T-Mobile이 때때로 나를 NAT 뒤에 두기 시작했다는 것을 알게 된 오늘까지 모든 것이 잘 작동했습니다.

나는 들었다VPN 네트워크나 SSH 터널을 설정하면 서버에 계속 액세스할 수 있지만 방법을 모르겠습니다.

인터넷에서 검색했지만 모바일 네트워크로 수행하는 방법에 대한 튜토리얼을 찾을 수 없어서 여기에 물어볼까 생각했습니다. 이 질문에 대한 답변이 이전에 있었다면 죄송합니다.

답변1

로컬 서버 문제에 오신 것을 환영합니다.

이러한 비대칭성은 클라우드 서비스 확산과 불공정한 이점의 직접적인 원인입니다.

당신이 보고 있는 문제는 많은 ISP가 내가 "실제 인터넷 액세스"라고 부르는 것을 더 이상 판매하지 않는다는 사실 때문에 발생합니다.

특히 이동 통신 사업자의 경우 실제로 얻는 것은 "일반인"(또는 소위 "규제 기관")을 위해 콘텐츠 소비를 위한 단방향 데이터 파이프를 미화하는 일종의 깨진 솔루션입니다. 그러나 이는 실제로 적합하지 않습니다. 자신의 인터넷 서비스를 시작합니다.

이제 충분한 덕트 테이프와 추상화 레이어를 사용하면 어떤 문제에 대해서도 과도하게 엔지니어링할 수 있지만 내 경험상 실제로 문제를 해결하는 것이 항상 훨씬 더 좋습니다.

이제 저는 여러분에게 몇 가지 조치 방법을 제안합니다.

  1. 실제 문제 해결: "실제 인터넷 액세스" 얻기
  2. 문제를 다시 생각해보세요. 어떤 문제를 해결하고 싶나요?
  3. 위의 두 가지 방법이 실패할 경우 해결 방법은 '카테터 삽입'입니다.

솔루션의 세부 사항은 다음과 같습니다.

1. 실제로 문제를 해결하는 것: "실제 인터넷 접속"을 얻는 것

예전에는 고객에게 지침을 제공했지만 이제는 시간이 점점 더 많이 소요되므로 항상 고객에게 실제 솔루션을 찾도록 강요합니다. 몇 년 후, 이 방법은 수천 배 더 효과적인 것으로 입증되었습니다.

이 경우 실제 해결책은 다음 속성을 사용하여 "실제 인터넷 액세스"를 얻는 것입니다.

  1. NAT 뒤가 아닌 실제 외부 IP를 얻습니다(동적 IP도 괜찮지만 고정 IP가 선호됨).
  2. 중요한 포트를 열거나 리디렉션할 수 있는 능력이 있어야 합니다.

T-Mobile 담당자가 이러한 속성을 갖춘 서비스를 제공할 수 있는 경우 해당 담당자에게 문의하세요. 일반적으로 영업사원을 자극하는 마법의 단어는 "고정 IP" 또는 "자신의 VoIP 서버"입니다. 이를 통해 매장에서는 귀하에게 유능한 사람을 찾거나 완전히 거부하게 됩니다.

매장에서 귀하를 완전히 거부하는 경우 일반적으로 실제로는 "홈 쇼핑객" 매장으로 포지셔닝되어 있기 때문입니다. 이러한 매장 중 상당수는 프랜차이즈에 불과합니다. 사전 포장된 T-Mobile 연결만 판매하고 T-Mobile 브랜드를 보유하고 있지만 실제 T-Mobile 비즈니스인 연결 운영을 실제로 처리하지는 않습니다.

거절당하면 막다른 골목처럼 보일 수 있지만 아직은 그렇지 않습니다. 마음을 180도 바꾸고 자신을 기업으로 다시 위치시키면 훨씬 더 나아갈 수 있습니다. 네, 알아요.

예를 들어, 개인적으로 저는 회사를 차리고 집과 모바일 연락처까지 모든 연락처를 그 회사를 통해 운영합니다. 저는 기업으로서 T-Mobile, Orange, O2(또는 귀하가 보유한 기업) 비즈니스 서비스에 문의할 자격이 있습니다. 그들은 종종 완전히 다른 판매 브로셔를 가지고 있으며 동일한 지역 및 액세스 포인트에 대해 완전히 다른 연결 유형을 제공할 수 있습니다. 비즈니스 서비스 부서는 ISP의 실제 자회사가 아닌 "일반" 프랜차이즈인 경우가 많습니다.

기업 고객으로서의 내 경험에 따르면 지원 통화 시간은 더 짧고 ISP AVR은 사용자를 더 높은 수준의 기술자에게 더 빠르게 연결합니다(일부 인간 앵무새와 루프에서 특정 문구를 반복하는 인간 음성 녹음기뿐만 아니라(라우터를 재부팅하셨습니까?) 하지만 실제 기술자가 실제로 문제를 해결했습니다.)

고객의 경우에는 가끔 해당 지역의 모든 이동통신사에 전화하여 사업 계획을 문의한 다음 다시 전화하여 제품을 판매합니다. 거래) - 매우 비즈니스 지향적입니다.

또한 소규모 지역(시/군/마을 수준) 운영자를 간과하지 마십시오. 그들은 종종 완전히 다른 기술(보통 WIFI)을 사용하여 매우 흥미로운 거래를 수행할 수 있습니다. 그들은 소규모 회사이기 때문에 일반적으로 거래가 조정하기 더 쉽습니다.

고정 IP를 얻으면 금상첨화입니다. 고정 IP를 사용하면 이제 전 세계에 공개되는 DNS 이름을 서버에 직접 쉽게 할당할 수 있습니다(즉, 거의 모든 곳에서 연결할 수 있음).

dynip만 얻은 경우 이제 IP 업데이트를 어떻게든 인터넷에 게시해야 합니다. 다른 웹 서버/가상 호스트의 도움을 받아 고유한 솔루션을 작성하거나 no-ip.org dynip 서비스와 같은 서비스를 사용합니다(유사한 서비스가 많이 있음). 서비스).

내 경험상(링크 품질에 따라 다름) no-ip는 보통 어떤 이유로든 1년에 한 번씩 심각하게 끊어집니다. 일반적으로 고정 IP보다 불안정합니다.

비즈니스 등급 연결 가격은 일반적으로 1.2-1.5 범위이며 때로는 유사한 "사양" 연결 가격보다 2.0배 이상 높지만 저나 제 고객은 거의 항상 이 가격에 만족합니다.

제가 설명한 접근 방식은 다소 지루하고 비용도 더 많이 들지만, 지불하는 대가는 편리함, 실행 가능성, 그리고 궁극적으로 더 나은 서비스입니다.

또한 몇 년 전에 캐리어 등급 NAT 주소 풀이 IANA 예약 IP 주소 풀에 추가되었다는 점을 상기시켜 드리고 싶습니다. 이는 상당히 큰 규모이며, 이는 점점 더 많은 일반 고객(일명 일반 고객)이 이러한 NAT에 투입될 것임을 의미합니다. 수영장. 불과 몇 년 전만 해도 현실이 아니었지만(주거용 모바일 연결) 모바일 연결이 빠르게 현실화되고 있습니다. dynip 및 고정 IP 주소의 수는 매우 제한되어 있으므로 빨리 연결할수록 미래에 더 나은 결과를 얻을 수 있습니다.

IPv6는 이 문제를 해결하기로 되어 있었지만, 특히 모바일 공간에서는 그렇지 않은 것 같습니다.

필요하다:

  • PI
  • "실제 인터넷 연결"
  • 콘텐츠(원래 IP)가 없거나 고정 IP가 있는 DNS 편집 기능이 없는 도메인, 또는 동적 IP 추적을 위한 IP/웹서버가 없는 도메인, 고정 IP의 경우 이 세 번째 단계는 완전히 선택 사항입니다.

2. 문제를 다시 생각해보세요. 어떤 문제를 해결하고 싶나요?

하지만 전체 디자인과 아키텍처가 잘못되었을 수도 있습니다. 어떤 문제를 해결하고 싶나요? Pi에서 nginx를 실행하는 이유는 무엇입니까?

Pi 데이터를 웹에 게시하려면 모바일 세계에서 모든 감시 애드웨어가 수행하는 작업을 수행해야 합니다. 즉, 이미 온라인에 있는 일부 서버/웹 서버를 구입하고 Pi의 데이터를 거기로 푸시해야 합니다. 즉, 데이터 흐름 방향을 바꿔야 합니다.

이렇게 하면 NAT 침투에 대해 걱정할 필요가 없습니다. Pi는 myserver.com(이미 쉽게 액세스할 수 있음)에 연결하여 그곳으로 데이터를 보냅니다. 그런 다음 myserver.com에서 Pi 연결을 관찰할 수 있습니다. 일괄 계산과 서버의 모든 것을 실행하고 myserver.com에서 실행되는 nginx를 통해 다이제스트를 렌더링합니다.

이것이 자신에게 더 나은 해결책이 아닐까요?

이렇게 하려면 다른 서비스(이미 보유하고 있지 않은 경우), 즉 인터넷 액세스가 가능한 서버 또는 웹 서버를 구매해야 합니다.

필요하다:

  • PI
  • 네트워크의 서버/웹서버/컨테이너/VPS(DNS 이름 사용 권장)

3. 위의 두 가지 모두 실패하면 솔루션을 "덕트화"하십시오.

좋은 연결 프로토콜을 얻을 수 없고 Pi에서 서버로 데이터를 스트리밍하면 문제가 해결됩니다. 예를 들어 네트워크에서 Pi 시스템에 "원격으로" 액세스하고 "입력"할 수 있어야 한다면 그렇습니다. VPN은 유일한 솔루션입니다.

이는 기본적으로 솔루션 2의 더 복잡한 변형입니다. ) 차이점은 Pi에서 인터넷 액세스가 가능한 서버로 데이터를 보내는 대신 실제로 Pi에게 VPN 터널을 통해 인터넷 액세스가 가능한 서버에 연결하도록 지시한다는 것입니다.

즉, 인터넷 접속이 가능한 서버라는 또 다른 서비스를 구입해야 합니다.

이는 특별한 경우의 웹 호스팅 서버가 될 수 없으며 실제 완전한 서버(또는 최소한 lxc와 같은 VPS/컨테이너)일 수 있습니다.

서버가 있으면 Pi와 서버에 VPN 솔루션을 배포해야 합니다.

  • SSHPi를 클라우드 컨테이너와 연결할 수도 있습니다(컨테이너는 커널 모듈을 로드할 수 없음).
    • SSH 연결 활동성 모니터링 문제가 발생합니다. 가능한 해결 방법은 autossh(1)를 참조하세요(때때로 감지가 중단될 수 있음).
    • SSH "VPN"은 사용자 공간에서 실행되며 그다지 효율적이지 않습니다. 즉, 대역폭이 매우 낮지만 이를 통해 웹을 탐색할 수 있습니다.
    • 속도와 활성 안정성이 부족하지만 놀라운 유연성을 얻습니다. SSH 터널링에 관해 쓰여진 책이 많이 있습니다.
  • 오픈VPNPi를 클라우드 컨테이너와 연결할 수도 있습니다(컨테이너는 커널 모듈을 로드할 수 없음).
    • OpenVPN은 SSH보다 약간 더 빠를 수 있지만 여전히 사용자 공간에서 실행되기 때문에 여전히 느리고 상당히 비효율적입니다.
  • 네트워크 보안 프로토콜매우 성숙한 VPN 기술이지만 기업 및 군사 환경에서 제공되므로 설정 및 유지 관리가 빠르게 매우 복잡해질 수 있으며(비잔틴 바로크 구성, 많은 모바일 파티, 장치 및 운영 체제 호환성 문제) 실제 서버가 필요합니다. 가상화가 가장 적은 VPS)
    • 기업의 지점 네트워크를 인터넷 전체에 걸쳐 있는 글로벌 기업 네트워크(도쿄 지점을 뉴욕 지점, 로돈 지점, 암스테르담과 대만의 데이터센터로 연결)로 연결하는 경우가 많은 기술입니다.
    • IPSEC 커널 모듈을 커널에 로드해야 하므로 실제 서버(컨테이너/lxc는 될 수 없지만 가상 머신은 될 수 있음)가 필요합니다.
      • 그러나 커널 모듈은 솔루션의 절반에 불과합니다.
    • 이를 위해서는 Strongswan(1)이 Linux에서 자주 사용하는 IPSEC 조정 소프트웨어도 필요합니다. 이 소프트웨어는 커널을 조정하고 실제로 VPN 연결을 구축하고 함께 바인딩합니다.
    • 연결이 설정되면 모든 암호화된 통신이 커널에서 직접 발생하기 때문에 이는 매우 빠른 데이터 속도를 허용하는 매우 고성능 솔루션입니다.
    • 충분한 암호화 지식과 IPSEC 경험을 쌓은 후에 Cisco 스위치 또는 Windows 상자를 IPSEC VPN 네트워크에 직접 성공적으로 연결할 수 있으므로 IPSEC 네트워크는 매우 이질적일 수 있습니다.
  • 라인배커이미 여러 기록을 깨고 있는 친척 신규 이민자는 실제 서버가 필요합니다(최소한 가상화된 VPS).
    • 매우, 매우, 매우 쉬운 설정 - 의도적으로 SSH만큼 간단함(VPN용 SSH를 대체할 예정) - 복잡한 IPSEC를 처리한 적이 있다면 낮과 밤의 차이가 있습니다
    • 커널 모듈로 커널에 로드되므로 실제 VPS가 필요합니다.
    • 매우 현대적인 저전력 고성능 암호화를 사용합니다.
    • 하지만 그 덕분에 속도도 매우 빠릅니다(저는 1GBit 주거용 광학 장치에서 정기적으로 20MB/s를 얻습니다).
    • 때때로 Linux 및 OpenBSD 커널용 표준 장치
    • 베어본에는 자동화 및 도구가 많이 부족하기 때문에 IP 라우팅이 호스트 운영 체제(예: Linux)에 위임되므로 라우팅 및 패킷 전달을 설정하는 방법을 잘 이해해야 합니다.

필요하다:

  • PI
  • 네트워크의 서버/컨테이너/VPS(바람직하게는 DNS 이름 포함)
  • VPN 솔루션

내 경험에 근거한 결론은 솔루션 1.)이 일반적으로 가장 좋고 가장 최적화된 솔루션이라는 것입니다. 프로젝트가 확장됨에 따라 솔루션 1.)은 종종 매우 강력한 솔루션 3.)으로 발전할 수 있습니다. (VPN은 고정 IP에 비해 훌륭하고 간단합니다.) 데이터 흐름을 되돌릴 수 있고 의지가 있다면 솔루션 2가 가장 저렴하고 구현하기 쉽습니다. 해결 방법 3.)은 많은 클라이언트(많은 경우 노트북을 사용하여 원격 작업자에게 전화를 걸고 Pi 시스템을 "이동"하는 경우)와 함께 사용할 때 관리하기가 가장 불안정하고 비용이 많이 듭니다.

답변2

나는 NAT를 좋아한다. 이는 개인 인터넷 외부의 인터넷을 유지하면서 모든 (공용) 인터넷에 계속 액세스할 수 있도록 허용합니다. 안전 측면에서는 좋은 점이라고 말하면 충분합니다. 하지만 당신이 생각하는 한 그것은 악몽이다. 이것이 IPv6에 NAT가 존재하지 않는 이유입니다. 첫 번째 제안은 IPv6에서 작동하도록 할 수 있습니까? 두 번째 제안은 T-Mobile에 전화하여 불만을 토로하는 것입니다. Raspberry나 비디오 감시 등 원하는 모든 것에 액세스하려면 공용 IP 주소를 할당해야 한다고 말합니다. 당신이 말하는 내용을 누군가가 이해할 때까지 당신은 불평을 많이 해야 할 수도 있습니다.

세 번째 제안, 인터넷상의 VPS가 귀하의 요구에 충분합니까? VPS는 저렴하고 강력하며 다양한 용도로 사용할 수 있습니다.

다른 모든 방법이 실패하고 인터넷에서 Raspberry에 액세스할 수 있도록 해야 한다면 VPS를 구입하여 즐겨 사용하는 Linux 버전을 설치한 다음 Raspberry에서 VPS로 VPN을 설정하세요. 이런 방식으로 Raspberry는 클라이언트이고 VPS는 서버입니다.

영구 IP 주소가 없으므로 IP 구성의 변경 사항을 자동으로 감지하도록 VPN을 구성해야 합니다. SSH의 경우 해당 기능이 SSH에 포함되어 있지 않으므로 일부 사용자 정의 스크립트가 필요합니다. "모쉬"Ssh보다 더 나은 대안이 될 수 있습니다.

개인적으로 살펴보겠습니다강한 백조그리고이케프2 https://en.wikipedia.org/wiki/Internet_Key_Exchange클라이언트 IP 변경을 처리할 수 있는 VPN입니다. Strongswan을 사용한 Roadwarrior 구성을 위한 Google.

이것이 시작하는 데 도움이 되기를 바랍니다.

답변3

어딘가에 다른 서버가 있는 경우 SSH 터널을 실행하여 연결하거나 RPi 장치에서 OpenVPN 클라이언트를 구성하여 연결할 수 있습니다.

SSH 터널은 도움이 될 수 있지만 인터넷 장애나 기타 이유로 연결이 끊어지면 유지 관리가 어렵습니다. 내 책에서는 OpenVPN이 더 안정적으로 보입니다.

관련 정보