ルータの背後にあるポート転送にIPテーブルを使用しますか?

ルータの背後にあるポート転送にIPテーブルを使用しますか?

ルータの背後にあるポート転送にIPテーブルを使用できますか?

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

私の質問は:IPテーブルを使ってmc.myurl.com:80をMinecraftサーバーのウェブサイトに渡し、myurl.com:80はRaspberry Piに引き続き続けることができますか?どのように設定しますか?

方程式からRaspberry Piを削除するとどうなりますか? mc.myurl.comは同じサーバーから:81に転送されますか? (ルーターで:81を開く必要がありますか?)

答え1

あなたが探しているものリバースプロキシ。 Apacheはこれを再生できます役割しかし、私はあなたがより良い使用を提案します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つの仮想ホストを作成します。 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>

ここにさらに多くの文書があります:

関連情報