Windows 10/Apache/LAN 如何存取託管在不同本機電腦上的網站?

Windows 10/Apache/LAN 如何存取託管在不同本機電腦上的網站?

我希望訪問家庭網路上另一臺本地電腦上託管的本地開發網站。

我嘗試過使用http://192.168.1.nn和 http://localhost 在瀏覽器中都找不到(我的伺服器電腦的靜態 IP 位址為 192.168.1.nn)。

當我在電腦 nn 上運行時,訪問 localhost 及其網站沒有任何問題。

我嘗試使用 Windows 設定允許未經身份驗證的存取 nn 電腦(在 Defender 防火牆中,以及 Malwarebytes > 設定 > 允許清單 > 新增 > 192.168.1.nn)。我嘗試在路由器中使用連接埠轉送規則將連接埠 mm 轉送到電腦 nn (並使用位址 http://localhost:mm 或http://192.168.1.nn:mm)。我嘗試將此行添加到 Hosts 文件中:

192.168.1.nn 本機

我不太了解網路的內部原理。我想在一台電腦上與另一台電腦建立 LAN-LAN Web 連接,無需讓外界 (WAN) 存取任何內容在我的網路上。我希望獲得經過測試的答案的幫助,這樣它們就可以在沒有太多問題和答案的情況下工作。

答案1

由於出於安全原因您似乎不願意提供其他信息,因此以下是一些您可能希望查看以幫助解決此問題的一般想法和評論:

第三方應用程式

  • 在測試期間停用任何防火牆或病毒掃描。第三方應用程式或硬體可能會影響兩台電腦之間的通信,超出您制定的任何規則。

  • 如果您的伺服器使用虛擬機,則可能需要對虛擬機本身(除了主機上的任何內容之外)進行其他配置以允許對其進行存取。

  • 虛擬機器軟體可以選擇「僅主機」虛擬網路適配器,這些適配器從不被視為本機網路的一部分。確保您沒有嘗試透過指派給任何「僅主機」網路介面卡(如果存在)的 IP 進行遠端存取。

  • 虛擬機器可能需要連接埠轉送(透過虛擬機器的軟體)以允許存取它們(假設它們沒有運行橋接適配器)。

  • 如果您使用 WSL,則可能需要專門更新它或一般情況下更新 Windows。

本地網路

  • 確保電腦位於同一本機網路上。檢查所有路由器上的網路遮罩。它們通常應該是相同的。也要驗證任何網路 DHCP 伺服器(同樣最有可能在您的路由器等上)是否向您希望連接的任何裝置分發相同範圍的本機位址。

  • 假設網路遮罩為eg 255.255.255.0,如果您的伺服器的位址為ex。http://192.168.1.nn您用來存取伺服器的電腦的位址為 ex。http://192.168.2.nn,它們不在同一個本地網路上。

  • 除非您有未指定的特殊網路設置,否則對於同一網路上的設備之間的基本通訊來說,路由器中的連接埠轉送應該是不必要的。

  • 如果您嘗試使用行動裝置從本地網路存取您的伺服器,請確保您使用的是 Wifi,而不是電信商的資料計劃(因為這僅對測試 WAN 存取有用)。

  • 一般來說,您應該只使用路由器指派的本機位址(即不使用 ISP 指派的任何 IP)。

  • 從廣義上講,使用多個路由器、使用 Wifi 存取點或使用「進階」網路設備(例如網狀網路硬體)可能(理論上)會導致問題。

主機名稱

  • hosts文件僅適用於它所在的電腦。因此,hosts伺服器上的檔案將不允許本機網路上的其他電腦解析它指定的任何主機名稱。嘗試存取的電腦上的檔案hosts將是需要修改的檔案。

  • localhost不是任意的名稱。它幾乎總是引用僅有的到本機。這意味著它通常不能用於引用遠端伺服器(即不在同一台電腦上的伺服器)。請注意,這也適用於虛擬機器。

  • 修改localhosthosts可能的,但可能會被瀏覽器忽略,瀏覽器只是傳回一個ex. 127.0.0.1無法遠端存取的本機環回位址 ( )。

  • 如果使用 Linux(例如 Raspberry Pi 或 WSL),除了編輯檔案之外,您可能還需要執行一些有關解析器配置的附加步驟hosts

  • 對於基本測試,您可能希望繼續使用 IP 位址並避免使用任何類型的主機名,以便將連線問題限制為聯絡伺服器本身,而不是特定的主機名稱。

  • 如果您想要使用主機名稱而不修改hosts每個設備,則需要設定本機 DNS 伺服器(並相應地設定路由器)。

  • 您應該擁有hosts指向您的伺服器的條目或 DNS 條目,以取得您希望用來存取該伺服器的任何主機名稱。

阿帕契

  • 確保 Apache 正在遠端伺服器上運行。

  • 雖然它不會阻止 Apache 回應,但如果 Apache 沒有給定主機名稱的虛擬主機,它可能會傳回預設網頁或可能傳回錯誤頁面。

  • Apache 伺服器或其虛擬主機的配置可能會拒絕您從另一台電腦進行訪問,因此請仔細檢查是否有任何指令限制對您的伺服器的存取。任何指令的設定Require都是一個很好的起點(這些指令的值通常應該是all granted)。

  • 給定虛擬主機中的ServerRootDocumentRoot設定(以及任何DocumentRoot目錄設定)httpd.conf和/或任何/directory 設定中的不一致或錯誤可能會導致回應。DocumentRoot403 Forbidden

  • 使用.htaccess檔案可以根據檔案中的設定限制對伺服器的存取。

  • 確保任何listen指令(例如 in httpd.conf)設定為類似listen 80and/orlisten 443而不是 ex.listen 127.0.0.1:80或者listen 127.0.0.1:443。第二種類型的指令將 Apache 連結為僅偵聽127.0.0.1/ ,localhost並且它將丟棄來自非伺服器本身的任何電腦的請求。

  • 如果您已將 Apache 設定為listen80 或連接埠 443(HTTP/HTTPS 預設連接埠)以外的連接埠,則需要在 IP 或主機名稱中包含該連接埠(例如192.168.1.nn:8080local-example:80)。

  • 對 Apache 進行任何變更都需要重新啟動 Apache 才能使這些變更生效。

  • 在 Linux 上,使用基於 Debian/Ubuntu 的系統,您可能需要在重新啟動之前sites-available將資料夾中的任何檔案建立到您的sites-enabled資料夾的符號連結以使它們可用。

相關內容