라우터 뒤의 포트 전달을 위해 IP 테이블을 사용하시나요?

라우터 뒤의 포트 전달을 위해 IP 테이블을 사용하시나요?

라우터 뒤의 포트 전달을 위해 IP 테이블을 사용할 수 있습니까?

내 설정은 다음과 같습니다. 포트 80에서 작은 웹 사이트를 실행하는 Raspberry Pi와 포트 25565에서 Minecraft 서버를 실행하는 더 강력한 컴퓨터가 있습니다. 각 포트에서 요청을 수락하고 올바른 위치로 전달하도록 라우터를 설정했지만 Minecraft 서버(포트 80)에서 실행되는 Minecraft "웹사이트"(지도 등 포함)도 있습니다. myurl.com도 있습니다.

내 질문은: IP 테이블을 사용하여 mc.myurl.com:80을 Minecraft 서버 웹사이트로 전달하고 myurl.com:80은 계속해서 Raspberry Pi로 전달할 수 있습니까? 어떻게 설정하나요?

방정식에서 Raspberry Pi를 제거하면 어떻게 되나요? mc.myurl.com은 동일한 서버에서 :81로 전달됩니까? (라우터에서 :81을 열어야 하나요?)

답변1

당신이 찾고있는 것은역방향 프록시. 아파치는 이것을 재생할 수 있습니다역할하지만 나는 당신이 더 나은 사용을 제안합니다nginx더 가볍습니다.

다음과 같이 포트를 80Raspberry Pi로 리디렉션하고 요청을 프록시하도록 Nginx를 설정합니다 .mc.myurl.com

server {
  listen 80;
  server_name mc.myurl.com;

  location / {
    proxy_pass  http://my.mine.craft;
  }
}

Nginx 참조문서자세한 내용은.

답변2

Apache2의 역방향 프록시 모듈을 사용할 수 있습니다. 이렇게 하면 mc 서버 호스트 이름에 대한 수신 요청이 LAN 내에 있는 다른 http 서버로 리디렉션됩니다. 이는 방화벽에 의존하는 것보다 더 간단한 아이디어입니다.

먼저 모듈을 설치합니다.

apt-get install libapache2-mod-proxy-html

2개의 가상 호스트를 생성합니다. 하나는 사이트 요청에 응답하고 다른 하나는 MC 사이트로 트래픽을 프록시합니다.

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
    ServerAdmin [email protected]
    ProxyPreserveHost On
    ProxyPass / http://LAN.IP.YOUR.MC.SITE:PORT/
    ProxyPassReverse / http://LAN.IP.YOUR.MC.SITE:PORT/
    ServerName mc.myurl.com
</VirtualHost>

<VirtualHost YOUR.INTERNET.IP.ADDR:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/sites/my_site
  ServerName myurl.com
  ErrorLog logs/intranet-error_log
  CustomLog logs/intranet-access_log common
</VirtualHost>

여기에 더 많은 문서가 있습니다:

관련 정보