無法從外部網路存取 docker 託管的網頁伺服器

無法從外部網路存取 docker 託管的網頁伺服器

我正在將一個小型個人網站從 virtualbox 虛擬機器遷移到託管在我的個人電腦上的 Docker 容器。但是我遇到了一個問題,當我嘗試從互聯網訪問該容器時(嘗試使用沒有wifi的手機),我遇到了“連接超時”的問題,它確實可以在同一網絡上的其他計算機上工作。

這是我到目前為止所做的測試:

本地網路

使用 http://localhost 和 一切都運作正常http://192.168.1.10從網路上的任何其他計算機

從該測試中我了解到我的電腦和 docker 配置運作良好,可以從該電腦外部存取伺服器。

來自網路

在我的互聯網網關上,我確實有連接埠轉送設定。當重定向到 192.168.1.15 時,我確實可以正確存取虛擬機器伺服器。

當重定向到 192.168.1.10 時,我收到網關逾時,連接埠檢查工具顯示連接埠 80 已關閉

我從該測試中了解到,我的 ISP 沒有妨礙,我的網關正確地將資料轉發到正確的 IP。客戶端也不是問題(我的電話/電話提供者)

有用的配置

  • docker-compose 配置:
    version: "3.7"
    services:    
        proxy:
            image: nginx:stable
            ports:
                - "80:80"
            volumes:
                - ./proxy/conf.d:/etc/nginx/conf.d
  • ./proxy/conf.d/site.conf
    server {
        listen 80;
        server_name example.com;     # not actual DNS, but it doesn’t seem to be in cause.

        location / {
            deny all;
        }   
    }

是的,工作正常實際上意味著我現在收到 403 禁止錯誤

  • 網關連接埠轉送(在 UI 中)連接埠 80 到連接埠 80 主機 192.168.10
  • Virtualbox 虛擬機器網路配置為網橋,IP 位址為 192.168.1.15
  • 所有寫入的內部IP都是靜態的 拓樸結構

如果需要任何其他信息,請告訴我

排除

我故意排除了任何 ssl 和 DNS 變量,直到該問題解決,然後再進行配置。

我主要關注的是還有什麼需要檢查的想法,因為所有的部分似乎單獨工作都很好,但我顯然遺漏了一些東西。

編輯:更多地查看來自遠端電腦的curl命令的關閉連接埠/逾時問題輸出:

$  curl -v --output - 142.#.#.#
*   Trying 142.#.#.#:80...
* Connected to 142.#.#.# (142.#.#.#) port 80 (#0)
> GET / HTTP/1.1
> Host: 142.#.#.#
> User-Agent: curl/7.83.1
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 502 Connection timed out
< Date: Wed, 01 Jun 2022 16:34:06 GMT
< Connection: close
< Cache-Control: no-store
< Content-Type: text/html
< Content-Language: en
< Content-Length: 219
< 
<HEAD><TITLE>Connection timed out</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
 Connection timed out</B></FONT>

<!-- default "Connection timed out" response (502) -->
</BODY>
* Closing connection 0

連接埠檢查輸出

$ nmap 142.#.#.# -p 81
...
Host is up (0.077s latency).

PORT   STATE    SERVICE
80/tcp open     http


$ nc -zvw10 142.#.#.# 80
...
[142.#.#.#] 80 (http) open

但是,我首先使用的 ping.eu 仍然顯示它已關閉。不知道他們是如何檢查的

相關內容