端口转发时无法找到请求 IP 地址,因为所有网络流量源 IP 都是我的路由器的 IP

端口转发时无法找到请求 IP 地址,因为所有网络流量源 IP 都是我的路由器的 IP

我目前正在尝试在旧笔记本电脑上的 Linux ubuntu 20.04.3 LTS 服务器上托管一个迷你 Flask 应用程序,并且我在路由器上启用了端口转发,以便我可以从互联网访问 Flask 应用程序。

现在我想记录进入我的 flask 应用的所有网络流量,并特别跟踪每个请求的 remote_addr。但是,remote_addr 总是作为我的路由器的公共 IP 地址出现,据我了解,这是因为旧笔记本电脑位于我的路由器后面,因此所有网络流量在技术上都来自我的“路由器”。

有什么办法可以解决这个问题吗?我试过查看路由器的设置,但似乎没有办法……

答案1

如果 remote_addr 始终是路由器,则您设置的端口转发将执行源 nat。对于您的目的,您只需要目标 nat,因为路由器必须接收流量并将其路由到新目的地。如果您的旧笔记本电脑有通过路由器返回的默认路由,则它不需要破坏源。

消费者通常所说的路由器,通常实际上不进行太多路由,它是一个初步的 NAT 网关,用于将流量从内部 ipv4 地址转换为公共 ip 地址。IP 网络通过一次路由一跳来工作,并且 IP 地址在网络范围之外的数据包也可以被路由。但你的路由器会进行完整的 NAT

将设备设置为目标网络地址转换仅取决于其功能和互联网终止方式。大多数设备都可以设置为桥接模式,以便将较低级别的网络连接转发到您控制的路由器。但这取决于您的个人偏好和网络技能。

相关内容