使用 IP 表在路由器後面進行連接埠轉送?

使用 IP 表在路由器後面進行連接埠轉送?

是否可以使用 IP 表在路由器後面進行連接埠轉送?

我的設定是這樣的:我有一個Raspberry Pi 在連接埠80 上運行一個小網站,還有一台更強大的電腦在連接埠25565 上運行Minecraft 伺服器。轉發到正確的位置,但我還有一個 Minecraft“網站”(帶有地圖等)在 Minecraft 伺服器上運行,也在端口 80 上。

我的問題是:使用 IP 表,我可以將 mc.myurl.com:80 轉送到 Minecraft 伺服器網站,而 myurl.com:80 繼續前往 Raspberry Pi 嗎?我該如何設定?

如果我從等式中刪除 Raspberry Pi 會怎麼樣?是否將 mc.myurl.com 轉送至同一伺服器上的 :81? (我必須在路由器上開啟:81嗎?)

答案1

您正在尋找的是反向代理。阿帕契可以玩這個角色但我建議你更好地使用nginx哪個比較輕。

您將連接埠重新導向80至 Raspberry 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>

更多文件在這裡:

相關內容