如何允许NextCloud访问onlyOffice内网地址?
- By : Will
- Category : Cloud storage
1 前言
一个问题,一篇文章,一出故事。
笔者今天升级NextCloud的版本后发现onlyOffice无法连接,笔者使用如下命令查看日志,
tail -f /var/log/nextcloud/nextcloud.log
可见如下显示,
/index.php","message":"Request to https://nextcloud.cmdschool.org:8783/healthcheck failed","userAgent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/153.0.0.0 Safari/537.36","version":"34.0.4.1","exception":{"Exception":"OCP\\Http\\Client\\LocalServerException","Message":"Host \"10.168.1.1\" (nextcloud.cmdschool.org:80) violates local access rules","Code":0,"Trace":[{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"OC\\Http\\Client\\{closure}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":72,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"GuzzleHttp\\{closure}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":1109,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":243,"function":"transfer","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php","line":273,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/Http/Client/Client.php","line":214,"function":"request","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***",{"verify":"/var/www/nextcloud/resources/config/ca-bundle.crt","timeout":60,"version":"2.0","curl":{"84":4},"allow_redirects":{"on_redirect":{"__class__":"Closure"}},"nextcloud":{"allow_local_address":false},"headers":{"User-Agent":"Nextcloud-Server-Crawler/34.0.4","Accept-Encoding":"br, gzip"},"synchronous":true}]},{"file":"/var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php","line":387,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php","line":270,"function":"request","class":"OCA\\Onlyoffice\\DocumentService","type":"->","args":["*** sensitive parameters replaced ***","get","*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php","line":423,"function":"healthcheckRequest","class":"OCA\\Onlyoffice\\DocumentService","type":"->","args":[false]},{"file":"/var/www/nextcloud/apps/onlyoffice/lib/Controller/SettingsController.php","line":152,"function":"checkDocServiceUrl","class":"OCA\\Onlyoffice\\DocumentService","type":"->","args":[false]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"saveAddress","class":"OCA\\Onlyoffice\\Controller\\SettingsController","type":"->","args":["https://nextcloud.cmdschool.org:8783/","","",false,"K8QcuYvyJFe1NWdNfW0BOv3HTTUgjqhl","",false]},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Onlyoffice\\Controller\\SettingsController"},"saveAddress"]},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Onlyoffice\\Controller\\SettingsController"},"saveAddress"]},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Onlyoffice\\Controller\\SettingsController","saveAddress",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"onlyoffice.settings.save_address"}]},{"file":"/var/www/nextcloud/lib/base.php","line":1172,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/onlyoffice/ajax/settings/address"]},{"file":"/var/www/nextcloud/index.php","line":25,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php","Line":150,"message":"Request to https://nextcloud.cmdschool.org:8783/healthcheck failed","exception":"{\"class\":\"OCP\\Http\\Client\\LocalServerException\",\"message\":\"Host \\\"10.168.1.1\\\" (nextcloud.cmdschool.org:80) violates local access rules\",\"code\":0,\"file\":\"/var/www/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php:150\",\"trace\":\"#0 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->OC\\Http\\Client\\{closure}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#1 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#2 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(72): GuzzleHttp\\Middleware::GuzzleHttp\\{closure}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#3 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#4 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::GuzzleHttp\\{closure}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#5 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(1109): GuzzleHttp\\HandlerStack->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#6 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(243): GuzzleHttp\\Client->transfer(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#7 /var/www/nextcloud/3rdparty/guzzlehttp/guzzle/src/Client.php(273): GuzzleHttp\\Client->requestAsync('GET', Object(GuzzleHttp\\Psr7\\Uri), Array)\\n#8 /var/www/nextcloud/lib/private/Http/Client/Client.php(214): GuzzleHttp\\Client->request('GET', 'https://pvtclou...', Array)\\n#9 /var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php(387): OC\\Http\\Client\\Client->get('https://pvtclou...', Array)\\n#10 /var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php(270): OCA\\Onlyoffice\\DocumentService->request('https://pvtclou...', 'get', Array)\\n#11 /var/www/nextcloud/apps/onlyoffice/lib/DocumentService.php(423): OCA\\Onlyoffice\\DocumentService->healthcheckRequest(false)\\n#12 /var/www/nextcloud/apps/onlyoffice/lib/Controller/SettingsController.php(152): OCA\\Onlyoffice\\DocumentService->checkDocServiceUrl(false)\\n#13 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Onlyoffice\\Controller\\SettingsController->saveAddress('https://pvtclou...', '', '', false, 'K8QcuYvyJFe1NWd...', '', false)\\n#14 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Onlyoffice\\Controller\\SettingsController), 'saveAddress')\\n#15 /var/www/nextcloud/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Onlyoffice\\Controller\\SettingsController), 'saveAddress')\\n#16 /var/www/nextcloud/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main('OCA\\\\Onlyoffice\\\\...', 'saveAddress', Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\\n#17 /var/www/nextcloud/lib/base.php(1172): OC\\Route\\Router->match('/apps/onlyoffic...')\\n#18 /var/www/nextcloud/index.php(25): OC::handleRequest()\\n#19 {main}\"}","CustomMessage":"Request to https://nextcloud.cmdschool.org:8783/healthcheck failed"}}
2 最佳实践
2.1 环境配置
2.2 设置允许访问内网的远程服务
2.2.1 设置允许访问内网的远程服务
occ config:system:set allow_local_remote_servers --value=true --type=boolean
2.2.2 确认设置生效
occ config:list system | grep "allow_local_remote_servers"
可见如下显示,
"allow_local_remote_servers": true
没有评论