ルーターの背後でポート転送を行うために IP テーブルを使用しますか?

ルーターの背後でポート転送を行うために IP テーブルを使用しますか?

IP テーブルを使用してルーターの背後でポート転送を行うことは可能ですか?

私の設定は次のようになります。ポート 80 で小さな Web サイトを実行する Raspberry Pi と、ポート 25565 で Minecraft サーバーを実行するより強力なコンピューターがあります。各ポートのリクエストを受け取り、正しい場所に転送するようにルーターを設定しましたが、Minecraft サーバーでポート 80 で実行されている Minecraft の「Web サイト」(マップなどを含む) もあります。myurl.com もあります。

私の質問は、IP テーブルを使用して、mc.myurl.com:80 を Minecraft サーバーの Web サイトに転送し、myurl.com:80 を Raspberry Pi に転送し続けることはできますか? これを設定するにはどうすればいいですか?

Raspberry Pi を取り除いたらどうなるでしょうか? mc.myurl.com を同じサーバー上の :81 に転送しますか? (ルーターで :81 を開く必要がありますか?)

答え1

あなたが探しているのはリバースプロキシApacheはそれを再生できる役割しかし、私はもっと良い使い方をすることをお勧めしますエンギンクスより軽いです。

ポートを80Raspberry Pi にリダイレクトし、mc.myurl.com次のようにリクエストをプロキシするように Nginx を設定します。

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 つの仮想ホストを作成します。1 つはサイト要求に応答し、もう 1 つはトラフィックを 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>

その他のドキュメントはこちら:

関連情報