我遇到了一个奇怪的问题,我已经尝试理解和修复了几个小时。
我有三台主要机器,它们是这样设置的:
- M1:Raspberry pi 3 (raspbian lite),运行 caddy 作为反向代理/静态 Web 服务器。
--network host
Caddy 带着标志在 docker 内部运行。该设备为非常小的静态网站提供服务,并将流量重定向到 M2 和 M3。这是唯一暴露在互联网上的设备。 - M2:小型服务器(Ubuntu 18.04),用于部署客户端的应用程序和其他东西。所有应用都使用docker部署,流量从M1进来,转发到本机
- M3:运行 Plex 和其他我需要从外部访问的日常应用程序的小型服务器。再一次,所有流量都来自 M1 并被重定向到这台机器(一台旧笔记本电脑)
我遇到了一个问题,即 M1 既不能访问 M2 也不能访问 M3。首先,重定向不起作用,即当我尝试访问 M2 和 M3 上的数据时,我得到一个空白页。如果我尝试使用简单的从 M1 访问 M2 或 M3 curl
,我无法连接到它们中的任何一个,并出现以下错误:curl: (7) Failed to connect to <M2> port 7000: No route to host.
尝试从 M2/M3 访问托管在 M1 上的网站可以正常工作,但访问其他任何内容(即简单的 REST 服务器)会返回与以前相同的问题,即No route to host
错误。
这些是我尝试过的事情:
- 在所有机器上禁用防火墙:没有运气,和以前一样的问题
- 禁用路由器上的防火墙:再次没有运气
- 关闭非必要服务:没有工作
我还安装了带有PIVPN的 WireGuard ,并且正确安装了everyhting,但同样的事情发生了。握手成功,IP 显示为来自家里的 IP,但流量并没有真正转发,因为当我尝试访问路由器的管理面板时它不起作用。
似乎有什么东西阻止了设备访问网络上的其他设备。除了禁用所有不同的防火墙之外,不幸的是我不知道如何进行。有谁知道它可能是什么?
没有到主机的路由意味着 M1 服务器在其路由表中没有 M2 和 M3 的条目。
可能出现的问题:
检查 M1、M2、M3 上的路由表和网络设置:
路由表命令:
网络设置命令:
最后,我已经确认问题都来自我的路由器。重新启动解决了我遇到的所有问题。我尝试禁用防火墙规则,更改网络配置等,最后重新启动修复了这一切。我现在正在与我的 ISP 联系以获得新的。谢谢大家的帮助