问题描述:
我正在尝试使用 FastAPI 服务器在我的 Raspberry Pi 和 Ubuntu 桌面之间设置文件传输。这是我的设置:
FastAPI 服务器设置:
- 在 Ubuntu 桌面上部署了 FastAPI。
- 服务器监听端口
2121
。
静态 IP 设置:
- 我的 ISP 为我分配了静态 IP
172.168.4.50
(通过路由器设置确认)。 - 在我的路由器上启用端口转发,以便将端口转发
2121
到 Ubuntu 桌面的本地 IP。
- 我的 ISP 为我分配了静态 IP
测试设置:
- FastAPI 服务器可在本地访问(例如
http://localhost:2121/
)。 - 但是,当我尝试
http://172.168.4.50:2121/
从网络外部访问时,请求失败。
- FastAPI 服务器可在本地访问(例如
采取的故障排除步骤:
- 验证路由器上的端口转发规则。
- 检查 FastAPI 服务器是否正在运行并监听正确的端口。
- 通过暂时禁用 Ubuntu 桌面上的防火墙来测试可访问性。
忧虑:
经过一番研究,我发现它172.168.4.50
属于私有 IP 范围(172.16.0.0
到172.31.255.255
)。据我所知,私有 IP 在公共互联网上不可路由。
问题:
- 我的 ISP 是否可能提供了私有静态 IP 而不是公共静态 IP?
- 如果是这样,这是否意味着即使启用了端口转发,也无法通过互联网访问 API?
- 我是否应该要求我的 ISP 分配一个面向公众的静态 IP?
系统详细信息:
- 服务器操作系统: Ubuntu 桌面
- ISP 提供的静态 IP: 172.168.4.50
- 端口转发: 2121
- FastAPI:基于 Python 的 API 服务器
预期行为:
应该可以从任何地点使用 ISP 分配的静态 IP 和端口来访问该 API 2121
。
实际行为:
即使配置了端口转发,请求仍然会http://172.168.4.50:2121/endpoint
失败并超时。