我在本地网络中运行 RPi 服务器。在我的路由器中,我已公开此服务器的端口 443 和 80,因为它运行 ownCloud,我想从任何地方访问它。
我想知道在我通过链接到公共路由器 IP 的域寻址服务器的情况下路由是如何工作的,尽管我目前处于本地网络。
据我所知,路由器有自己的本地 DNS 表。那么,当我查找域时,它大多数时候都会自动“知道”相应的 IP(即路由器本身的公共 IP),这是正确的吗?此外
,如果路由器看到 IP,它是否知道该 IP 属于自己?所以如果我要寻址我的域,无网络流量离开我的本地网络?
答案1
据我所知,路由器有自己的本地 DNS 表。那么,当我查找域时,它大多数时候会自动“知道”相应的 IP(即路由器本身的公共 IP),这是正确的吗?
不。路由器可能有自己的 DNS 表对于本地域(例如*.home
),但它并不关心外部域。当您访问诸如这样的公共域时owncloud.example.com
,路由器不知道域指向哪里,直到它首先实际进行查找。
另外,如果路由器看到 IP,它是否知道该 IP 属于自己?因此,如果我正在寻址我的域,那么就没有网络流量流出我的本地网络?
是的。所有地址(即使是分配给不同接口的地址)都被视为本地地址 - 路由器永远不会转发发送到其自身地址的流量。
但请注意,虽然您可以访问路由器本身通过其 WAN IP 地址,您通常无法使用转发端口规则不会影响到客户端和服务器的地址转换。(这是因为来自服务器的回复将直接发送到客户端,因此路由器没有机会“撤消”地址转换。)因此,如果您只看到路由器自己的登录页面,请不要感到惊讶。
一些路由器可以使用名为“NAT 环回”或“NAT 发夹”的选项来解决此问题,该选项除了重写目标地址外,还会重写源地址。您可能需要启用此功能。