네트워크 외부에서 내 웹 서버에 액세스할 수 없는 이유는 무엇입니까?

네트워크 외부에서 내 웹 서버에 액세스할 수 없는 이유는 무엇입니까?

저는 언어를 배우는 동안 PHP의 전체 기능에 접근할 수 있도록 Macbook에 Apache HTTP 서버를 설정했습니다. 등록된 도메인 이름이나 일관된 네트워크 액세스가 없기 때문에 이 서버에서 실제 웹사이트를 호스팅한다는 아이디어는 실현 가능하지 않습니다. 나는 단지 학습 목적으로 이것을하고 있습니다.

아무튼 뭔가 궁금했어요. 웹 브라우저에 개인 IP 주소(루프백 주소가 아니라 실제 DHCP 할당 주소)를 입력하면 내 서버에서 호스팅하는 웹 페이지에 액세스할 수 있다는 것을 알았습니다. 이는 내 컴퓨터 외부에서도 해당 페이지에 액세스할 수 있다는 의미라고 생각합니다. . 그러나 공용 IP 주소를 입력하면 네트워크 시간 초과가 발생합니다. 이는 연결이 매우 느린 경우를 제외하고는 로컬 네트워크 외부에서 웹 서버에 액세스할 수 없다는 의미일 것입니다.

왜 그런지 궁금합니다. 사람들이 외부에서 LAN 내부의 컴퓨터에 액세스하는 것을 방지하는 보안 계층이 설정되어 있습니까?

답변1

컴퓨터에서 시작하여 라인에 세 개의 차단 홉이 있을 수 있습니다.

  • 귀하의 OS에 방화벽이 구성되어 들어오는 요청을 차단하고 있을 수 있습니다. 동일한 서브넷/다른 서브넷에 있지만 여전히 홈 라우터 뒤에 있는 다른 컴퓨터를 사용하여 이를 확인할 수 있습니다. 저는 MAC OS에 익숙하지 않아서 방화벽 구성 방법을 알려드릴 수 없습니다.

  • 귀하가 연결하는 홈 라우터(또는 대부분의 Wi-Fi 라우터)는 다음을 사용합니다.NAT그 뒤에 있는 서브넷을 "숨기고" 여러 장치가 ISP에서 얻은 단일 전역 IP 주소에서 통신할 수 있도록 합니다. 어떤 장치에서든 LAN에서 원격 서버에 요청을 수행하면 원격 서버는 해당 요청이 라우터에서 시작된 것을 볼 수 있습니다.외부에서 공용 IP 주소로 요청하는 경우 실제로 라우터의 주소를 지정하게 됩니다.라우터로 전달되는 모든 HTTP 요청을 뒤에 있는 노트북에서 처리하려면 다음을 추가해야 합니다.포트 포워딩라우터 메뉴의 규칙을 노트북의 IP 주소와 포트 80(표준 HTTP 포트) 또는 HTTPS의 경우 포트 443으로 설정하세요.

  • 요즘에는 ISP가 공개(전역적으로 라우팅 가능한) IP 주소조차 제공하지 않는 경우가 점점 더 많아지고 있습니다. ISP는 또한 NAT(글로벌 IPv4 주소 저장)를 사용하며, 라우터의 외부 IP 주소는 ISP의 개인 서브넷에서 나옵니다. 이를 위해서는 ISP의 라우터에 포트 전달 규칙을 등록해야 하지만 ISP에서는 이를 수행하지 않습니다. 이 경우 인터넷에서 노트북에 액세스할 수 없습니다.

답변2

이런 일이 발생하는 이유는 NAT 변환 때문입니다.

인터넷에 연결하면 ISP는 인터넷과 통신할 수 있도록 공용 IP 주소를 제공합니다.

인터넷상의 누군가가 웹 서버에 액세스하려고 하고 공용 IP 주소를 입력하면 라우터는 요청이 네트워크에서 어디로 향하는지 알아야 합니다. 이를 NAT 변환이라고 합니다. 이는 포트 매핑을 설정하여 수행됩니다.

웹 사이트는 기본적으로 포트 80이 사용되는 HTTP 트래픽을 사용하므로 포트 80을 내부 IP 주소로 전달해야 함을 알리는 규칙을 라우터에 만들어야 합니다. 이 작업이 완료되고 외부의 누군가가 브라우저에 귀하의 공용 IP 주소를 입력하면 이제 라우터는 해당 요청을 귀하의 맥북으로 전달해야 한다는 것을 알게 됩니다.

이제 질문에 한 가지가 추가되었습니다. 포트 포워딩을 설정하면 대부분의 라우터는 귀하의 공용 IP 주소가 귀하의 것임을 이해하지 못하므로 귀하는 여전히 귀하의 공용 IP 주소에서 웹 사이트에 액세스할 수 없을 가능성이 높습니다.

귀하의 맥북은 요청을 라우터에 보내고, 라우터는 이를 ISP에 보냅니다. ISP는 이를 다시 보내고 라우터는 이를 예상하지 않으므로 요청을 무시하고 자체적으로 연결할 수 없기 때문에 시간 초과가 발생합니다.

관련 정보