
我正在將一個小型個人網站從 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 仍然顯示它已關閉。不知道他們是如何檢查的