포트를 전달할 때 네트워크의 다른 컴퓨터는 어떻게됩니까?


1

RaspberryPi를 사용하여 웹 서버를 호스팅하는 것에 대해 생각하면서 포트 포워딩을 읽었습니다.

나에게 일어난 한 가지는 이것입니다. 특정 포트의 모든 요청은 특정 내부 IP 주소로 전달됩니다. 응답이 같은 방식으로 전달됩니까? 방문한 웹 사이트의 모든 응답이 서버로 전송되므로 네트워크의 다른 컴퓨터가 인터넷에 액세스하지 못하게해야합니다.


당신은 괜찮을 것입니다, 걱정하지 마십시오, 당신 incoming은 로컬 네트워크로 포트를 전달 , 그것은 아무런 방식으로 내부 네트워크에 영향을 미치지 않습니다
Alex

답변:


1

이에 응답하려면 클라이언트와 서버 간의 네트워크 트래픽 작동 방식을 알아야합니다.

클라이언트-서버 프로그램이 있으면 서버는 수신 포트를 설정합니다.

모든 클라이언트는이 청취 포트에 연결하여 연결을 요청할 수 있습니다. 포트에 하나의 단일 연결 만 만들 수 있기 때문에 서버가 연결을 수락하자마자 (분할) 서버는 클라이언트에 다시 새로운 연결을 시작합니다 (보통 uPNP를 통해 선택적으로 사용할 포트 지정) ) 실제 데이터 전송을 수행합니다. 클라이언트에서 서버로의 초기 포트는 청취 포트를 해제하기 위해 삭제됩니다.

서버가 NAT (라우터) 뒤에 있기 때문에 클라이언트가 포트 번호로 공용 IP에 연결하면 라우터는 서버 뒤에있는 서버가 아니라 응답합니다. 라우터에는 서버 소프트웨어 (웹 서버의 경우)가 없기 때문에 응답 방법을 모르고 라우터가 단순히 요청을 무시하기 때문에 연결이 실패합니다.

포트 포워드를 추가하면 누군가가 지정된 포트를 사용하여 공용 IP에 연결하려고 할 때 수행 할 작업을 라우터에 알려줍니다. 귀하의 경우 규칙에 따르면 : 트래픽을 라즈베리 파이로 릴레이합니다.

보시다시피, 유일하게 일어나는 일은 라우터가 공개 IP 및 포트에 요청을 할 때해야 할 일을 알게되는 것입니다. 네트워크 내부의 PC는 공용 IP 대신 개인 IP로 액세스를 요청하지 않습니다. 또한 라우터는 자신이 수신하는 공용 포트를 설정할 수 있습니다. 따라서 각각 자신의 IP 주소를 가진 3 개의 라즈베리 파이가 있다면 3 가지 규칙을 설정할 수 있습니다.

- port 8081 to pi1, port 80
- port 8082 to pi2, port 80
- port 8083 to pi3, port 80

그런 다음 클라이언트는 공용 IP에 연결하여 : 8081을 추가하여 해당 포트를 대신 열어도 여전히 작동합니다.

배치 된 물리적 링크가 없으므로 모든 포트는 그대로 유지됩니다. 라우터가 포트로 무엇을해야하는지, 트래픽이 어디로 향해야하는지 이해하면됩니다.

모든 라우터가 트래픽을 루프백 할 수있는 것은 아닙니다. 즉, 공용 IP 주소가있는 NAT의 연결이 LAN 포트가 아닌 WAN 포트에서 오는 것으로 예상하므로 전달 규칙을 테스트 할 수 없습니다. 네트워크 내부에서 라우터에.


포트 80은 일반적으로 HTTP에 사용된다는 것을 읽었으며 예제에서 사용했습니다. 라우터의 포트 80이거나 라우터의 다른 포트를 사용하여 Pi의 포트 80으로 전달해야합니까?
하드 리아 인 휴즈

조건에 따라서. 네트워크에 실제로 포트 80을 사용하려는 다른 서버가 없으면 포트 80을 사용하고 싶을 것입니다. 그렇지 않으면 나중에 example.com과 같은 도메인 이름을 사용하기 시작합니다. 12345의 공개 포트를 사용하는 경우 rasphberry pi의 웹 사이트에 액세스 하려면 example.com:12345 로 이동해야 합니다. 이것은 보안 기능이 될 수 있으며 성 가실 수 있습니다. 원하는 것에 따라 다릅니다.
LPChip

괜찮아. 그러나 네트워크에 서버가 하나만 있고 Pi와 라우터에서 포트 80을 사용하는 경우 사용자 브라우저는 포트가 지정되지 않은 example.com을 입력 할 때 포트 80을 사용한다고 가정합니까?
Hadrian Hughes

네. 일반적으로 포트가 지정되지 않은 경우 거의 항상 기본 포트가 시도됩니다. 80은 http, 21은 ftp 등입니다.
LPChip

0

저는 네트워크 주제 전문가가 아니지만 포트 80은 서버가 수신하는 포트 일뿐입니다. 클라이언트는 1024 이상의 임의 포트에서 서버 응답을 수신합니다.

예:

You --> asdf.com:Port 80  
asdf.com --> you:Port 12345 (response) 

따라서 포트 80을 라즈베리로 전달하면 네트워크를 정기적으로 사용할 때 네트워크의 다른 PC에는 영향을 미치지 않습니다.

물론 홈 네트워크에서 하나의 PC로 포트를 전달할 수 있으므로 한 번에 하나의 라즈베리 서버 만 실행할 수 있습니다.

홈 네트워크 내부에서 모든 서버는 여전히 로컬 IP 주소를 통해 액세스 할 수 있습니다.

물론 이것은 80뿐만 아니라 모든 포트에 적용됩니다.


0

따라서 포트 80을 Raspberry Pi로 전달하도록 홈 라우터를 설정하면 공용 IP 주소 의 포트 80을 전달하게 됩니다. 이 주소는 ISP에서 라우터에 할당합니다. 외부 (인터넷)의 어느 누구도 라우터 (내부 LAN) 뒤에있는 것을 볼 수 없습니다. 따라서 웹 페이지에 대한 요청이 외부에서 발생하면 라우터가 Raspberry Pi로 요청을 전달합니다. 응답은 라우터로 다시 전송되며, 요청이 어디서 왔는지 알고 응답합니다. 내부적으로 다르지 않습니다. 포트 80의 내부 IP 주소를 통해 Raspberry Pi에 액세스합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.