Linux 서버가 외부 IP로 향하는 패킷을 localhost로 라우팅하도록 만듭니다.

Linux 서버가 외부 IP로 향하는 패킷을 localhost로 라우팅하도록 만듭니다.

a.b.c.d한쪽은 Linux 서버에, 다른 쪽은 인터넷에 연결된 특정 고정 IP를 가진 라우터가 있습니다 .

IP 주소를 사용하여 외부에서 Linux 서버에 설치된 소프트웨어에 액세스하면 a.b.c.d:portxx정상적으로 작동합니다.

그러나 서버 자체에서 누군가가 연 브라우저가 동일한 소프트웨어에 액세스하려고 시도하면 a.b.c.d:portxx실패합니다. 다시 시도하면 localhost:portxx잘 작동합니다.

그래서 내 진단은 DSL 라우터가 멍청하고 그 a.b.c.d자체를 깨닫지 못한다는 것입니다.

라우터에서 아무것도 변경하지 않고 이 문제를 해결할 수 있는 방법이 있습니까? 즉, Through /etc/hosts또는 서버의 다른 메커니즘으로 인해 패킷이 a.b.c.d다시 라우팅될 수 있습니까 localhost?

이것이 다른 것을 깨뜨릴 가능성이 있습니까?

답변1

문제는 라우터에 있지 않습니다. 라우터는 구성된 작업을 수행합니다. 트래픽 대상 abcd:portxx를 Linux 서버로 변환합니다. 작동하지 않지만 이해하려면 네트워크에서 어떤 일이 일어나는지 확인해야 합니다. 예를 들어 LAN 네트워크에서 Linux 서버는 192.168.1.2이고 라우터는 192.168.1.1입니다.

  • 서버에서 패킷을 보냅니다.
  • src 192.168.1.2:1024 dst abcd:portxx
  • 라우터에서 번역이 이루어집니다(서버로 다시 이동).
  • 소스 192.168.1.2:1024 dst 192.168.1.2:portxx
  • 패킷이 서버 애플리케이션으로 오면 응답하고 응답 패킷을 보냅니다.
  • 소스 192.168.1.2:portxx dst 192.168.1.2:1024
  • 패킷은 서버에서 클라이언트 애플리케이션으로 들어오지만(유지) abcd에 대한 연결을 시작하고 (abcd)가 아닌 192.168.1.2에서 응답을 받기 때문에 이 연결을 알 수 없습니다. 패킷이 삭제됩니다.

가능한 해결책은 다음과 같습니다.

1) 가능하다면 라우터에서 로컬 네트워크에서 들어오는 패킷의 SNAT를 NAT 공용 IP로 설정하세요. 리눅스 라우터가 있다면, 뭔가를 시도해 보세요

iptables -t nat -I PREROUTING -s 192.168.0.0/24 -d a.b.c.d -j SNAT --to-source 192.168.1.1

내부 네트워크에서 라우터를 통과하는 패킷의 소스 패킷 주소를 변경하고, 서버 애플리케이션이 192.168.1.1로 응답하고, 응답을 받을 때 SNAT 규칙이 패킷을 서버의 클라이언트 애플리케이션에 올바르게 매핑합니다. 이 솔루션은 모든 내부 네트워크 컴퓨터에서 작동하지만 서버에서는 라우터 주소 192.168.1.1에서 오는 모든 요청을 볼 수 있습니다.

2) 서버에서는 iptables를 통해 REDIRECT 트래픽을 만들 수 있습니다.

 iptables -t nat -I OUTPUT -d a.b.c.d -p tcp --dport portxx -j REDIRECT --to-ports portxx

서버에서 나가는 연결을 서버의 로컬 포트로 리디렉션합니다.내 생각에는 이것이 귀하의 경우에 가장 적합한 솔루션이 될 수 있습니다

3) 서버에 abcd 주소를 추가하는 것이 어떤 경우에는 해결책이 될 수 있지만 때로는 서버 데몬(및 응용 프로그램에 따라 다름)이 모든 IP 주소를 수신하지 않거나 다른 주소에 대해 다른 응답을 제공하지 않는 경우가 있습니다.

4) IP 주소가 아닌 호스트 이름을 사용하는 경우 Linux 서버에서 /etc/hosts를 재정의할 수 있습니다. 이것이 가장 쉽고 도움이 되는 경우도 있습니다(DNS 반환: linuxserver abcd). 따라서 /etc/hosts에 다음 줄을 작성합니다.

192.168.1.2 linuxserver

그리고 Linux 서버에서 "linuxserver"로의 연결은 192.168.1.2로 직접 이동됩니다.

관련 정보