会发生什么?

会发生什么?

我在 kvm 客户机上有一个服务器(邮件 - postfix+dovecot,网络 - apache),主机位于普通路由器(zte 或 ISP 提供的任何路由器)后面的本地网络上。KVM 客户机的 IP 与主机位于同一子网中。(主机上的 wicked+network bridge)

如果我尝试在客户端位于 LAN 之外时访问内容(例如 4g 链路上的移动设备或完全不同的网络),一切都会正常运行。

问题是,当我尝试在客户端与服务器登录到同一网络时进行连接时,它就超时了。

到目前为止,我已经禁用了所有防火墙并尝试过......没有成功。路由器上的所有端口转发都运行良好,因为所有内容都可以从外部访问。

有什么想法吗?我可以尝试看看到底出了什么问题或卡在哪里。

Dovecot 调用甚至没有记录在服务器上,当客户端在本地网络上时,也没有任何数据包到达服务器。

但是 Apache 可以工作,我可以在本地网络上查看该网站,尽管我无法从同一台计算机通过端口 80 或 443 远程登录服务器。

答案1

会发生什么?

您的客户端很可能正在尝试连接到您的 ISP 的公共 IP。

大多数消费者调制解调器/路由器不支持环回连接。

因此,基本上发生的情况是,请求被发送到调制解调器,调制解调器看到不在路由器 DHCP 范围内的 IP 地址,并认为:哦,这是用于互联网的。它向 ISP 发出请求,ISP 立即将其发回。

调制解调器此刻正在发送流量,因此端口被占用,从而导致连接超时。

在支持环回的设备上,调制解调器足够智能,能够理解该请求是针对其自身的,并根据端口转发规则集转发连接。

怎么解决?

您需要做的是要求您的客户端不要使用公共 IP 地址,而是使用本地 IP 地址。

假设您的公共 IP 地址是:123.45.67.89,并且端口转发设置为将端口 1234 重定向到 IP:192.168.0.1,那么客户端将需要连接到 192.168.0.1,而不是使用 123.45.67.89。

相关内容