【在线文档】IP 回流问题

704 阅读1分钟

这是我参与更文挑战的第23天,活动详情查看:更文挑战

一、前言

记录一下,之前遇到的问题

之前使用 SeafileOnlyoffice 碰到类似 IP回流 的问题。 Onlyoffice 支持在线协同编辑,需要 websocket 进行监听。

一开始配置如图:

onlyoffice-IP回流问题1.png

问题:服务 seafile 需要通过域名访问在内网的服务onlyoffice

环境:

  • 服务器外网IP:100.1.1.1
  • seafileIP 和 端口:172.24.9.54:8890
  • onlyofficeIP 和 端口:172.24.9.54:8891
  • onlyoffice 域名:https://api.home.cn/onlyofficenginx 做了映射

172.24.9.54:8890 通过域名 https://api.home.cn/onlyoffice 能访问到嘛?

答案:不能。

因为 TCP 不能建立连接。

服务 seafile172.24.9.54:8890) 访问域名https://api.home.cn/onlyofficeDNS映射为 100.1.1.1:443),在通过防火墙上 NAT SERVER后,目的 IP 变为了 172.24.9.54:8891 ,由内部网络将 TCP 握手报文发给了 172.24.9.54:8891onlyoffice); onlyoffice 发现源 IP172.24.9.54:8890,因为在同一网络,走本地路由将报文发送给 seafile

问题来了: seafile172.24.9.54:8890) -> 建立连接 -> 服务器外网(100.1.1.1:443onlyoffice172.24.9.54:8891) -> 回报文 -> seafile172.24.9.54:8890

即来回路径不一致,TCP 握手没办法建立。



二、解决

一般两种方式:

  1. 通过域名访问,可以加 host 或者 dns 将域名解析为内网 ip
  2. 通过 ip 访问,华为防火墙多配置一条域内源 nat 策略;H3C 防火墙在内网接口再做一次 nat server 同时加域内源 nat

测试改成内网,部署后,用 IP 访问一切正常。

用域名访问,则打不开,建立不了连接。

那么就只有在建立连接的时候出现了问题,无法建立连接,导致访问不了。

我这解决方法: 访问的时候改为内网 IP

onlyoffice-IP回流问题2.png

NAT 访问回流。