![设备 -> 设备流量在网络内部被阻止](https://linux22.com/image/757585/%E8%AE%BE%E5%A4%87%20-%3E%20%E8%AE%BE%E5%A4%87%E6%B5%81%E9%87%8F%E5%9C%A8%E7%BD%91%E7%BB%9C%E5%86%85%E9%83%A8%E8%A2%AB%E9%98%BB%E6%AD%A2.png)
我遇到了一个奇怪的问题,我花了几个小时试图理解并修复它。
我有三台主机,设置如下:
- M1:Raspberry pi 3(raspbian lite),运行 caddy 作为反向代理/静态 Web 服务器。Caddy 使用标志在 docker 内部运行
--network host
。此设备为非常小的静态网站提供服务,并将流量重定向到 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
。
这些是我尝试过的事情:
- 在所有机器上禁用防火墙:没有运气,与以前的问题相同
- 禁用路由器上的防火墙:再次失败
- 关闭非必要服务:不起作用
我还安装了 WireGuard私网虚拟专用网络一切安装正确,但还是发生了同样的事情。握手成功,IP 显示为来自家里的 IP,但流量并没有真正转发,因为当我尝试访问路由器的管理面板时,它不起作用。
似乎有什么东西阻止了设备访问网络上的其他设备。除了禁用所有不同的防火墙外,不幸的是我不知道该怎么做。有人知道这可能是什么吗?
答案1
没有到主机的路由意味着 M1 服务器在其路由表中没有 M2 和 M3 的条目。
可能出现的问题:
- M1 上没有配置通往 M2 和 M3 的默认网关(或静态路由)
- M1 和/或 M2 和/或 M3 上的网络配置错误(即子网掩码错误)
检查 M1、M2、M3 上的路由表和网络设置:
路由表命令:
- 路由
- 网络状态监测
网络设置命令:
- IP地址
- 是否配置
答案2
最后,我确认所有问题都来自我的路由器。重新启动解决了我遇到的所有问题。我尝试禁用防火墙规则、更改网络配置等,最后重新启动解决了所有问题。我现在正在与我的 ISP 联系以获取新的。感谢大家的帮助