無法從外部 ping 我的伺服器

無法從外部 ping 我的伺服器

我用 LAMP 設定了一個 Ubuntu 伺服器,並嘗試從外部存取它。

我做了什麼:

  • 我在 no-ip.com 上設定了一個帳戶,如下本文

  • 我為伺服器提供了本地靜態 IP 192.168.1.127,並將連接埠 80 和 22(外部和本地)轉送到該 IP 位址。我還將外部連接埠 50005 轉發到內部連接埠 80。

  • 我透過 Portcheckers 找到了我的外部 IP。據我了解,網路上所有電腦和路由器的外部IP都是相同的。

    問題

  • 我檢查連接埠 80、22 和 50005連接埠檢查器據說所有這些港口(以及所有其他主要港口)都無法使用。

  • 我還嘗試從以下位置 ping 我的伺服器的外部 IP連接埠檢查器Ping Failed: TimedOut 嘗試從終端 ping ip 位址,但當PING myhost.no-ip.org (66.XXX.XXX.XX) 56(84) bytes of data.我嘗試透過瀏覽器連接到伺服器時,它凍結了,我收到了Oops! Google Chrome could not connect to...訊息。

    資訊

    我可以透過 ssh、sftp 和 http 連接到本機伺服器(192.168.1.127)。

    我有一個 Linksys E320 路由器,並且禁用了防火牆。

    如果我需要提供外部 IP,請告訴我。謝謝您的幫忙。

    編輯

    我修改了 /etc/apache2/ports.conf 以監聽連接埠 50005 而不是 80,替換Listen 80listen 50005

  • 答案1

    為什麼我錯了

    我說無法ping通的原因是:路由器從不將echo請求轉送到你的伺服器,但這並不能解釋為什麼路由器本身不回覆echo要求。在我的家庭網路上,我可以直接 ping 通我的路由器(192.168.1.254),那麼為什麼當我嘗試從外部 ping 通它時卻不起作用?

    我最好的猜測

    我仍在學習這一點,因此此資訊可能不準確。我的答案主要來自https://community.spiceworks.com/topic/85353-forward-pings-from-the-router-to-the-server-behind-it

    無法 ping 通並不是您的錯,而是 IPv4 的有限設計的錯。我假設您的路由器有一個指定的 IP 位址,並且您已將其設定為將連接埠 80、22 和 50005 轉送到您選擇的某些電腦;這是使用連接埠位址轉換 (PAT) 的路由器,這是一種特殊類型的網路位址轉換 (NAT)。

    當您 ping 伺服器時,ping 會傳送 Internet 控制訊息協定 (ICMP) 回顯要求訊息並等待回傳訊息。

    問題是 ICMP 等級太低,以至於沒有連接埠。因此,您的路由器不會將 ICMP 回顯請求轉送到您的伺服器,因為您的路由器僅轉送端口,因此不會 ping。

    您可以使用 telnet 25 來解決問題,而不是使用 ping 檢查您的伺服器是否已啟動並運行。

    我讓它工作了嗎? 我沒有進行連接埠轉發,而是轉到“防火牆”>“IP 直通”,將分配模式從“直通”更改為“預設伺服器”,並將預設伺服器設定為我的筆記型電腦伺服器正在使用的內部IP( 192.168.1.99 )。

    現在可以 ping 通了。老實說,我不確定我的情況是否與您的情況相似,所以我希望盡快得到您的回覆。

    相關內容