nextcloud+onlyoffice同局域网部署网络不通分析与解决(原创)

记录时间 2020-05-17

版本nextcloud 18.0 onlyoffice 5.5

同一个机器上安装nextcloud和onlyoffice镜像,映射到外网访问,无法通过域名配置,提示网络连接不通或文件下载失败,这个问题网络上有很多的提问,但是一直没找到答案,经过2天的分析,终于明白了失败的具体原因,和我当前的组网有关系,下面先画一个目前组网的示意图。另外需要知道这两设备有两个过程要做:1.nextcloud连接onlyoffice 2.onlyoffice到nextcloud拉取文件

第一种情况:配置onlyoffice地址为192.168.x.x

image.png

这个情形下很好理解,不过在配置的时候有一个地方需要注意,在外网时没问题,但如果通过内外访问,会出现无法拉取文件的问题,查看onlyoffice的文件错误提示(文件在docker 镜像内部/root/onlyoffice/logs/documentserver/converter/out.log里)

[2020-05-15T19:56:40.301] [ERROR] nodeJS - error downloadFile:url=http://192.168.1.110:18082/apps/onlyoffice/empty?doc=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY3Rpb24iOiJlbXB0eSJ9.IFkknNDAekyomrhunK1KvdH29qv89XNNYE1vfIxvkQk;attempt=1;code:ETIMEDOUT;connect:true;(id=conv_check_1570064549_docx)

也就是说在onlyoffice是根据访问过来的地址去生成文件的下载url,如果在外部访问生成的就是外部访问的url,针对这个问题nextcloud的有一个高级配置,可以解决。

image.png

Server address for internal requests from the Document Editing Service这个值相当于是告诉onlyoffice实际的访问地址是哪个,这样能保证内网外网都可以访问使用。

2.通过sockt 端口转发来实现

这个方式实际是绕过了内网不能访问自身公网地址web的问题,在尝试连接onlyoffice时走到外网,然后转到内网的onlyoffice,onlyoffice通过内部网络拉取文件。(这里使用了rinetd,安装简单)