![端口转发是单向的还是双向的?在外部端口发出的请求被转发到内部端口;明白了。响应的路由如何?](https://linux22.com/image/774983/%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E6%98%AF%E5%8D%95%E5%90%91%E7%9A%84%E8%BF%98%E6%98%AF%E5%8F%8C%E5%90%91%E7%9A%84%EF%BC%9F%E5%9C%A8%E5%A4%96%E9%83%A8%E7%AB%AF%E5%8F%A3%E5%8F%91%E5%87%BA%E7%9A%84%E8%AF%B7%E6%B1%82%E8%A2%AB%E8%BD%AC%E5%8F%91%E5%88%B0%E5%86%85%E9%83%A8%E7%AB%AF%E5%8F%A3%EF%BC%9B%E6%98%8E%E7%99%BD%E4%BA%86%E3%80%82%E5%93%8D%E5%BA%94%E7%9A%84%E8%B7%AF%E7%94%B1%E5%A6%82%E4%BD%95%EF%BC%9F.png)
答案1
某种程度上是双向的,某种程度上是单向的。根据您的问题和图片,我认为您使用的是 NAT。
假设用户的源 IP 为 111.111.111.111,请求从端口 7777 发出
您的公共 IP 是 49.207.10.38,您的边缘路由器或代理正在监听端口 80
您的内部路由器的私有 IP 192.168.1.254
您的内部服务器的 IP 是 192.168.1.100
- 用户到达您的路由器或代理:111.111.111.111:7777 -> 49.207.10.38:80
- NAT 将公共 IP 转换为内部私有 IP:它不是从 49.207.10.38 发送内部数据包,而是以 192.168.1.254 发送,这样内部节点就可以回复路由器。
- 您的路由器将数据包重定向到内部服务器:192.168.1.254.7777 -> 192.168.1.100:80
- 内部服务器处理请求并将页面内容应答至源服务器(现在是内部路由器):192.168.1.100:80 -> 192.168.1.254:7777
- 路由器应用 NAT 转换以便将其发送回原始请求者,但是现在,NAT 还将其内部 IP 转换为公共 IP,以便公共用户可以从公共互联网访问它(它将以 49.207.10.38 而不是 192.168.1.254 作为源包):49.207.10.38:80 -> 111.111.111.111:7777
话虽如此,请记住:
如果请求从端口 7777 发往端口 80,则答案将从端口 80 发送到端口 7777
如果你将服务器放在私有网络中,则需要使用 NAT 将私有 IP 伪装成公共路由器 IP