{"id":501078,"date":"2026-10-30T17:53:01","date_gmt":"2026-10-30T14:53:01","guid":{"rendered":"https:\/\/savepearlharbor.com\/?p=501078"},"modified":"2026-10-30T17:53:01","modified_gmt":"2026-10-30T14:53:01","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=501078","title":{"rendered":"\u041a\u0430\u043a \u044f \u043f\u043e\u0434\u043d\u044f\u043b \u0441\u0432\u043e\u0439 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440: Nextcloud Talk \u043d\u0430 TrueNAS \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d"},"content":{"rendered":"<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u042f \u0443\u0441\u0442\u0430\u043b \u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0441 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0437\u0432\u043e\u043d\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 Nextcloud Talk \u0434\u043b\u044f \u0432\u0441\u0435\u0439 \u0441\u0435\u043c\u044c\u0438. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0430\u043c\u0430 \u0437\u0432\u043e\u043d\u0438\u0442 \u0432 VK \u0438 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u0437\u0432\u043e\u043d\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 &#8212; \u0443 \u043c\u0435\u043d\u044f iPhone, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 VK \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0438\u0437 \u0441\u0442\u043e\u0440\u0430. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u0442\u043e\u0437\u0432\u0430\u043d \u0442\u043e\u043a\u0435\u043d \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e. \u0410 \u043f\u0430\u043f\u0430 \u0437\u0432\u043e\u043d\u0438\u0442 \u0432 TG \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 &#8212; \u043f\u043e\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0448\u044c VPN, \u043f\u043e\u043a\u0430 \u0434\u043e\u0436\u0434\u0435\u0448\u044c\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f&#8230;<\/p>\n<p>\u0417\u0430\u0434\u0430\u0447\u0430: \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0439 \u0441\u0435\u043c\u044c\u0435 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0439 self-hosted \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 Nextcloud Talk. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e TrueNAS, \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \u043d\u0430 <a href=\"https:\/\/habr.com\/ru\/articles\/1098278\/\" rel=\"noopener nofollow\">\u0425\u0430\u0431\u0440\u0435<\/a>. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u043c\u0435\u043d \u0441 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a htaccess \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c nginx. \u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/12\/2c\/e7\/122ce726d8f5047faebc3a1ccab0c722.png\" alt=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c Nextcloud Talk \u043d\u0430 \u0441\u0432\u043e\u0451\u043c self-hosted TrueNAS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435\" title=\"\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c Nextcloud Talk \u043d\u0430 \u0441\u0432\u043e\u0451\u043c self-hosted TrueNAS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435\" width=\"588\" height=\"638\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/12\/2c\/e7\/122ce726d8f5047faebc3a1ccab0c722.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/12\/2c\/e7\/122ce726d8f5047faebc3a1ccab0c722.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c Nextcloud Talk \u043d\u0430 \u0441\u0432\u043e\u0451\u043c self-hosted TrueNAS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/figcaption><\/div>\n<\/figure>\n<h3>\u0428\u0430\u0433 1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0445\u043e\u0441\u0442\u0430<\/h3>\n<p>\u041d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d <a href=\"http:\/\/example.com\" rel=\"noopener nofollow\">example.com<\/a>. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0438\u0441\u0430\u043d\u044b NS \u043e\u0442 \u0445\u043e\u0441\u0442\u0435\u0440\u0430:<\/p>\n<ul>\n<li>\n<p><a href=\"http:\/\/ns1.examplehosting.com\" rel=\"noopener nofollow\">ns1.examplehosting.com<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/ns2.examplehosting.com\" rel=\"noopener nofollow\">ns2.examplehosting.com<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e VPS \u0441 HestiaCP \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430, \u043d\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043b\u044e\u0431\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u044c\u044e. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u043d\u0435\u0439. \u0414\u0430\u043b\u0435\u0435 \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0445\u043e\u0441\u0442\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d <a href=\"http:\/\/nextcloud.example.com\" rel=\"noopener nofollow\">nextcloud.example.com<\/a> (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c) \u0438 \u043c\u0435\u043d\u044f\u0435\u043c A-\u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 DNS \u043d\u0430 IP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 HestiaCP. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b (PowerShell), \u0447\u0442\u043e \u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442\u0441\u044f:<\/p>\n<ul>\n<li>\n<p>nslookup <a href=\"http:\/\/nextcloud.example.com\" rel=\"noopener nofollow\">nextcloud.example.com<\/a><\/p>\n<\/li>\n<li>\n<p>nslookup <a href=\"http:\/\/nextcloud.example.com\" rel=\"noopener nofollow\">nextcloud.example.com<\/a> 8.8.8.8<\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c IP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 HestiaCP. \u0412\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c SSL \u043e\u0442 Let&#8217;s Encrypt &#8212; \u0442\u0430\u043a SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c HestiaCP \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u044b\u043f\u0443\u0441\u043a. DNS support \u0434\u043b\u044f \u0434\u043e\u043c\u0435\u043d\u0430 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u0442 \u043a DNS \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u044f\u0442\u0441\u044f \u0445\u043e\u0441\u0442\u0435\u0440\u043e\u043c.<\/p>\n<ul>\n<li>\n<p>Enable SSL for this domain &#8212; \u0432\u043a\u043b<\/p>\n<\/li>\n<li>\n<p>Use Let&#8217;s Encrypt to obtain SSL certificate &#8212; \u0432\u043a\u043b<\/p>\n<\/li>\n<li>\n<p>Enable automatic HTTPS redirection &#8212; \u0432\u043a\u043b<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/a9\/0b\/ad\/a90badf1ded60520ef172c27ed6a8045.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 \u0432 HestiaCP\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 \u0432 HestiaCP\" width=\"1101\" height=\"1085\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/a9\/0b\/ad\/a90badf1ded60520ef172c27ed6a8045.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/a9\/0b\/ad\/a90badf1ded60520ef172c27ed6a8045.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 \u0432 HestiaCP<\/figcaption><\/div>\n<\/figure>\n<h3>\u0428\u0430\u0433 2. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u0435<\/h3>\n<p>\u041c\u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e, \u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0432\u044b\u0434\u0430\u043b \u043c\u043d\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 IPv4 \u043d\u0435 \u0437\u0430 CGNAT, \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u044b DDNS. \u0421\u0430\u043c Nextcloud \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 TrueNAS \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 192.168.0.17:30027 (\u043f\u043e\u0440\u0442 30027 &#8212; \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u0434\u043b\u044f Nextcloud). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c <a href=\"https:\/\/it-tools.tech\/random-port-generator\" rel=\"noopener nofollow\">\u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442<\/a> \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u0441 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 \u043d\u0430 30027.<\/p>\n<p>\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u043e\u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0435\u0440\u0430 Asus RT-N12 &#8212; \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c Port Forwarding c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 56070 \u043d\u0430 192.168.0.17:30027:<\/p>\n<ul>\n<li>\n<p>Service Name = Nextcloud # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>Source Target = IP \u0432\u0430\u0448\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438\u043b\u0438 VPS. \u0422\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u0432\u0430\u0448\u0435\u0433\u043e VPS. \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c, \u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e<\/p>\n<\/li>\n<li>\n<p>Port Range = 56070<\/p>\n<\/li>\n<li>\n<p>Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNAS<\/p>\n<\/li>\n<li>\n<p>Local Port = 30027<\/p>\n<\/li>\n<li>\n<p>Protocol = TCP<\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0435\u0449\u0435 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 &#8212; \u043e\u043d\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u043f\u043e\u0437\u0436\u0435:<\/p>\n<ul>\n<li>\n<p>Service Name = Nextcloud coturn 3478 # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>Source Target = \u043f\u0443\u0441\u0442\u043e # \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e IP<\/p>\n<\/li>\n<li>\n<p>Port Range = 3478<\/p>\n<\/li>\n<li>\n<p>Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNAS<\/p>\n<\/li>\n<li>\n<p>Local Port = 3478<\/p>\n<\/li>\n<li>\n<p>Protocol = BOTH<\/p>\n<\/li>\n<\/ul>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435:<\/p>\n<ul>\n<li>\n<p>Service Name = Nextcloud coturn\u00a0 relay # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f<\/p>\n<\/li>\n<li>\n<p>Source Target = \u043f\u0443\u0441\u0442\u043e # \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e IP<\/p>\n<\/li>\n<li>\n<p>Port Range = 49160:49200<\/p>\n<\/li>\n<li>\n<p>Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNAS<\/p>\n<\/li>\n<li>\n<p>Local Port = 49160<\/p>\n<\/li>\n<li>\n<p>Protocol = UDP<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/70\/da\/7d\/70da7db55b1d5905aa679f6484cb4308.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\" title=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\" width=\"1337\" height=\"804\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/70\/da\/7d\/70da7db55b1d5905aa679f6484cb4308.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/70\/da\/7d\/70da7db55b1d5905aa679f6484cb4308.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12<\/figcaption><\/div>\n<\/figure>\n<h3>\u0428\u0430\u0433 3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0432\u0435\u0440\u0441-\u043f\u0440\u043e\u043a\u0441\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435<\/h3>\n<p>\u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 <a href=\"https:\/\/nextcloud.example.com\/\" rel=\"noopener nofollow\">https:\/\/nextcloud.example.com\/<\/a> \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043b\u043e\u0433\u0438\u043d\u0430. \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432:\u00a0<\/p>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 1. \u0427\u0435\u0440\u0435\u0437 htaccess (apache)<\/h4>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b .htaccess \u0432 \u043a\u043e\u0440\u043d\u0435 public_html \u0441\u0430\u0439\u0442\u0430 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 2 \u0441\u0442\u0440\u043e\u0447\u043a\u0438:<\/p>\n<pre><code># \u041f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 NextcloudRewriteEngine OnRewriteRule (.*) http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070\/$1 [P,L]<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper\"><\/span><\/a><\/div><\/pre>\n<p>\u042d\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e 2 \u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<ul>\n<li>\n<p>proxy_module<\/p>\n<\/li>\n<li>\n<p>proxy_http_module<\/p>\n<\/li>\n<\/ul>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0432\u0448\u0438\u0441\u044c \u043a \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code>apachectl -M | grep proxy<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u0438\u0445 2\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043d\u0435 \u0432\u0438\u0434\u043d\u043e &#8212; \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:<\/p>\n<pre><code>a2enmod proxy_httpsystemctl restart apache2<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u0424 &#8212; \u0443 \u043d\u0435\u0433\u043e \u0445\u043e\u0442\u044c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043e\u043d \u043d\u0435 \u0434\u0430\u043b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043a \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435.<\/p>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 2. \u0427\u0435\u0440\u0435\u0437 nginx<\/h4>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f Proxy Template \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043a <a href=\"http:\/\/nextcloud.example.com\" rel=\"noopener nofollow\">nextcloud.example.com<\/a> \u0432 HestiaCP. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c \u0447\u0435\u0441\u0442\u043d\u043e &#8212; \u043a\u043e\u0434 \u043f\u043e\u043c\u043e\u0433\u0430\u043b \u043f\u0438\u0441\u0430\u0442\u044c Claude:<\/p>\n<pre><code>cat &gt; \/usr\/local\/hestia\/data\/templates\/web\/nginx\/nextcloud_proxy.tpl &lt;&lt; 'EOF'#=========================================================================## Nextcloud External Proxy Web Domain Template \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0## Custom template, proxies all requests including static assets \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ## to an external backend, without local try_files fallback. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ##=========================================================================#server {\u00a0 \u00a0 \u00a0 \u00a0 listen \u00a0 \u00a0 \u00a0%ip%:%proxy_port%;\u00a0 \u00a0 \u00a0 \u00a0 server_name %domain_idn% %alias_idn%;\u00a0 \u00a0 \u00a0 \u00a0 error_log \u00a0 \/var\/log\/%web_system%\/domains\/%domain%.error.log error;\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.forcessl.conf*;\u00a0 \u00a0 \u00a0 \u00a0 location ~ \/\\.(?!well-known\\\/|file) {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 deny all;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return 404;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_pass http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_http_version 1.1;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Host $host;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Real-IP $remote_addr;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-Proto $scheme;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Upgrade $http_upgrade;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Connection \"upgrade\";\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_read_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_send_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 client_max_body_size 10G;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/error\/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 alias %home%\/%user%\/web\/%domain%\/document_errors\/;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.conf_*;}EOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0418 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f HTTPS (stpl):<\/p>\n<pre><code>cat &gt; \/usr\/local\/hestia\/data\/templates\/web\/nginx\/nextcloud_proxy.stpl &lt;&lt; 'EOF'#=========================================================================## Nextcloud External Proxy Web Domain Template (SSL) \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0## Custom template, proxies all requests including static assets \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ## to an external backend, without local try_files fallback. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ##=========================================================================#server {\u00a0 \u00a0 \u00a0 \u00a0 listen \u00a0 \u00a0 \u00a0%ip%:%proxy_ssl_port% ssl;\u00a0 \u00a0 \u00a0 \u00a0 server_name %domain_idn% %alias_idn%;\u00a0 \u00a0 \u00a0 \u00a0 error_log \u00a0 \/var\/log\/%web_system%\/domains\/%domain%.error.log error;\u00a0 \u00a0 \u00a0 \u00a0 ssl_certificate \u00a0 \u00a0 %ssl_pem%;\u00a0 \u00a0 \u00a0 \u00a0 ssl_certificate_key %ssl_key%;\u00a0 \u00a0 \u00a0 \u00a0 ssl_stapling \u00a0 \u00a0 \u00a0 \u00a0on;\u00a0 \u00a0 \u00a0 \u00a0 ssl_stapling_verify on;\u00a0 \u00a0 \u00a0 \u00a0 if ($anti_replay = 307) { return 307 https:\/\/$host$request\\_uri; }\u00a0 \u00a0 \u00a0 \u00a0 if ($anti_replay = 425) { return 425; }\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.hsts.conf*;\u00a0 \u00a0 \u00a0 \u00a0 location ~ \/\\.(?!well-known\\\/|file) {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 deny all;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return 404;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_pass http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_http_version 1.1;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Host $host;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Real-IP $remote_addr;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-Proto $scheme;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Upgrade $http_upgrade;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Connection \"upgrade\";\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_read_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_send_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 client_max_body_size 10G;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/error\/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 alias %home%\/%user%\/web\/%domain%\/document_errors\/;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 proxy_hide_header Upgrade;\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.ssl.conf_*;}EOF<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0417\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre><code># \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a\u00a0nginx -t# \u0440\u0435\u0431\u0443\u0442\u0430\u0435\u043c nginxsystemctl reload nginx# \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f (\u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c 200)curl -I https:\/\/nextcloud.example.com\/core\/css\/server.css<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<h4>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 3. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442<\/h4>\n<p>\u041d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439\u0442\u0435 \u044d\u0442\u043e \u0434\u043e\u043c\u0430!<\/p>\n<ul>\n<li>\n<p>A-\u0437\u0430\u043f\u0438\u0441\u044c <a href=\"http:\/\/nextcloud.example.com\" rel=\"noopener nofollow\">nextcloud.example.com<\/a>\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 IP.<\/p>\n<\/li>\n<li>\n<p>\u041d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0440\u0442\u044b 80 \u0438 443 \u043d\u0430 TrueNAS.<\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 TrueNAS \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0441 Let&#8217;s Encrypt, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Nginx Proxy Manager, \u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u043c\u0435\u043d \u043d\u0430 Nextcloud.<\/p>\n<\/li>\n<\/ul>\n<p>&#8212;<\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 &#8212; \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c <a href=\"https:\/\/nextcloud.example.com\/\" rel=\"noopener nofollow\">https:\/\/nextcloud.example.com\/<\/a> \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0443 \u043e\u0442 Nextcloud.<\/p>\n<h3>\u0428\u0430\u0433 4. \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u00a0DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435<\/h3>\n<p>\u0421\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b\u043c DoS protection \u0440\u043e\u0443\u0442\u0435\u0440 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u043b\u0438\u0448\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430 \u0432\u0441\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0434\u0430\u0451\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 Nextcloud \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443\u00a0<a href=\"https:\/\/nextcloud.example.com\/\" rel=\"noopener nofollow\">https:\/\/nextcloud.example.com\/<\/a>, \u0430 \u0442\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430 \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442. \u0412 Dev Tools \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Network \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0441\u0442\u0430\u0442\u0438\u043a\u0435 \u043b\u0435\u0442\u044f\u0442 \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c.<\/p>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/f3\/f7\/d2f3f7f182a9995fa62cca0b42fab409.png\" alt=\"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\" title=\"\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\" width=\"1368\" height=\"724\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/d2\/f3\/f7\/d2f3f7f182a9995fa62cca0b42fab409.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/d2\/f3\/f7\/d2f3f7f182a9995fa62cca0b42fab409.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12<\/figcaption><\/div>\n<\/figure>\n<figure class=\"full-width \"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/extt\/be\/90\/80\/be9080715c9e29997795bd978a1c10df.png\" alt=\"\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u041b\u041a Nextcloud \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 Dev Tools\" title=\"\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u041b\u041a Nextcloud \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 Dev Tools\" width=\"921\" height=\"609\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/extt\/be\/90\/80\/be9080715c9e29997795bd978a1c10df.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/extt\/be\/90\/80\/be9080715c9e29997795bd978a1c10df.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/p>\n<div><figcaption>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u041b\u041a Nextcloud \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 Dev Tools<\/figcaption><\/div>\n<\/figure>\n<h3>\u0428\u0430\u0433 5. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u043e\u0432 \u0432 Nextcloud<\/h3>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c Shell Nextcloud \u0432 Truenas \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0434\u043e\u043c\u0435\u043d \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445:<\/p>\n<pre><code>php occ config:system:get trusted_domains<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e 4 \u0445\u043e\u0441\u0442\u0430:<\/p>\n<pre><code>127.0.0.1192.168.0.17localhostnextcloud<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0417\u043d\u0430\u0447\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0445\u043e\u0441\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 4:<\/p>\n<pre><code>php occ config:system:set trusted_domains 4 --value=nextcloud.example.com<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:<\/p>\n<pre><code>php occ config:system:set overwrite.cli.url --value=\"https:\/\/nextcloud.example.com\"php occ config:system:set overwriteprotocol --value=\"https\"php occ config:system:set overwritehost --value=\"nextcloud.example.com\"<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Nextcloud \u0432 TrueNAS. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 <a href=\"https:\/\/nextcloud.example.com\/\" rel=\"noopener nofollow\">https:\/\/nextcloud.example.com\/<\/a> \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \/login \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 Nextcloud. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u043a\u0443 \u0432 Dev Tools, \u0435\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u043b\u0430\u0441\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u0443\u0441\u0442\u0430\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e &#8212; \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0443\u0447\u0435\u0442\u043e\u043a \u0438 \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u043e \u0434\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043a\u043e\u0435-\u0447\u0442\u043e.<\/p>\n<h3>\u0428\u0430\u0433 6. \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c coturn-\u0441\u0435\u0440\u0432\u0435\u0440<\/h3>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 Turn (coturn) \u0441\u0435\u0440\u0432\u0435\u0440. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0441\u043e \u0437\u0432\u043e\u043d\u043a\u0430\u043c\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 TrueNAS \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043a\u0430\u043a \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 RustDesk Relay \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e:<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0434\u0430\u0442\u0430\u0441\u0435\u0442 \u043d\u0430 TrueNAS: main_pool\/coturn (Owner = root)<\/p>\n<p>\u0427\u0435\u0440\u0435\u0437 Shell (\u0438\u043b\u0438 SSH) \u043a\u043b\u0430\u0434\u0451\u043c \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0430:<\/p>\n<pre><code>mkdir -p \/mnt\/main_pool\/coturn\/conf nano \/mnt\/main_pool\/coturn\/conf\/turnserver.conf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433, \u043c\u0435\u043d\u044f\u0435\u043c \u043f\u0430\u0440\u043e\u043b\u044c:<\/p>\n<pre><code>listening-port=3478tls-listening-port=5349listening-ip=192.168.0.17external-ip=&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;relay-ip=192.168.0.17min-port=49160max-port=49200verbosefingerprintlt-cred-mechuser=talkuser:&lt;\u0421\u041b\u041e\u0416\u041d\u042b\u0419_\u041f\u0410\u0420\u041e\u041b\u042c&gt;realm=example.comno-tlsv1no-tlsv1_1<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0412\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0430\u0432\u0430:<\/p>\n<pre><code>chown -R root:root \/mnt\/main_pool\/coturn<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 TrueNAS: Apps &#8212; Discover Apps &#8212; Custom App \u0441 \u0442\u0430\u043a\u0438\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u043e\u043c:<\/p>\n<pre><code>Application Name* = coturnRepository* = coturn\/coturnPull Policy* = Pull the image if it is not already present on the host.Command\u00a0 turnserver\u00a0 -c\u00a0 \/etc\/coturn\/turnserver.confRestart Policy* = Unless Stopped - Restarts the container irrespective of the exit code but stops restarting when the service is stopped or removed.Host Network = OnMount Path* = \/etc\/coturn\/turnserver.confHost Path* = \/mnt\/main_pool\/coturn\/conf\/turnserver.conf<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<p>\u0414\u0435\u043f\u043b\u043e\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c.<\/p>\n<h3>\u0428\u0430\u0433 7. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Nextcloud<\/h3>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441 \u041f\u041a Nextcloud &#8212; Administration settings &#8212; Talk &#8212; TURN servers, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u043e\u043c <code>turn:<\/code>, \u0430\u0434\u0440\u0435\u0441\u043e\u043c <code>&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:3478<\/code>, \u0441\u0435\u043a\u0440\u0435\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c UDP and TCP. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u0448\u0430\u0433\u0430 \u0437\u0432\u043e\u043d\u043a\u0438 \u043d\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448 TURN. \u0422\u0430\u043c \u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 STUN <a href=\"http:\/\/stun.nextcloud.com:443\" rel=\"noopener nofollow\"><code>stun.nextcloud.com:443<\/code><\/a>.<\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u0434\u0435\u043b\u0430\u0435\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0437\u0432\u043e\u043d\u043e\u043a \u0432\u043d\u0435 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438. \u0412\u0441\u0451 \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>\u041f\u043e\u0442\u043e\u043c \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u043c \u0437\u0432\u043e\u043d\u043a\u0435 \u043d\u0430 \u0430\u0439\u0444\u043e\u043d\u0435 (call kit \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b) &#8212; \u043f\u0435\u0440\u0435\u043b\u043e\u0433\u0438\u043d\u0438\u043b\u0441\u044f, \u0432\u044b\u043a\u0438\u043d\u0443\u043b \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437 \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0432\u0441\u0451 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e. \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043f\u0443\u0448-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 (\u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0432 Shell \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Nextcloud):<\/p>\n<pre><code>php occ notification:test-push --talk &lt;USER&gt;<\/code><div class=\"code-explainer\"><a href=\"https:\/\/sourcecraft.dev\/\" class=\"tm-button code-explainer__link\" style=\"visibility: hidden;\"><span class=\"sc-logo-wrapper icon-only\"><\/span><\/a><\/div><\/pre>\n<h3>\u0427\u0435\u043c \u043f\u043e\u0440\u0430\u0434\u043e\u0432\u0430\u043b Nextcloud \u043a\u0430\u043a \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440<\/h3>\n<ul>\n<li>\n<p>\u0415\u0441\u0442\u044c Screen Sharing \u0434\u043b\u044f iPhone. \u041e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e \u043e\u0431\u044a\u044f\u0441\u043d\u044f\u0442\u044c \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044f\u043c \u043a\u0443\u0434\u0430 \u0438 \u0447\u0442\u043e \u043d\u0430\u0436\u0438\u043c\u0430\u0442\u044c.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 \u043a \u043c\u0438\u0442\u0443 \u0434\u043b\u044f \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0445 \u0433\u043e\u0441\u0442\u0435\u0439.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Talk \u0431\u0435\u0437 \u043b\u0438\u0448\u043d\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u043e\u0431\u043b\u0430\u043a\u0430, \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e\u0435 (\u043b\u044e\u0431\u0430\u044f \u041e\u0421, \u043d\u0430 \u041f\u041a \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u043d\u0430 \u0431\u0430\u0437\u0435 Electron).<\/p>\n<\/li>\n<li>\n<p>\u0423\u0432\u0435\u0434\u043e\u043c\u0435\u043b\u043d\u0438\u044f \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 Apple Watch.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u0442\u044c \u0440\u0435\u0430\u043a\u0446\u0438\u0438 \u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445, \u043e\u043d\u043b\u0430\u0439\u043d-\u0441\u0442\u0430\u0442\u0443\u0441\u044b, \u0438\u0437\u0431\u0440\u0430\u043d\u043d\u043e\u0435, \u0432\u0438\u0434\u0435\u043e-\u0437\u0432\u043e\u043d\u043a\u0438. \u0427\u0442\u043e \u0435\u0449\u0435 \u043d\u0430\u0434\u043e \u0434\u043b\u044f \u0441\u0447\u0430\u0441\u0442\u044c\u044f?<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u0443 \u0438 \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0435\u0441\u0442\u044c \u0432\u043e \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u0440\u0430\u0445 (\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f), \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u044b \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0420\u041a\u041d.\u00a0<\/p>\n<h3>\u0412\u043c\u0435\u0441\u0442\u043e \u0432\u044b\u0432\u043e\u0434\u0430<\/h3>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0441\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e\u0439 \u0434\u0443\u0448\u043e\u0439 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u0441\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0432 Telegram, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043e\u0442\u0432\u043b\u0435\u043a\u0430\u043b\u0438 \u043e\u0442 \u0440\u0430\u0431\u043e\u0442\u044b. \u0410 \u0431\u043b\u0438\u0437\u043a\u0438\u0435 \u0434\u043e\u0441\u0442\u0430\u043d\u0443\u0442 \u0442\u0435\u0431\u044f \u0447\u0435\u0440\u0435\u0437 Nextcloud. \u041f\u043b\u044e\u0441\u043e\u043c \u0443 \u0432\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0448\u0430\u0440\u0438\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u043d\u0430\u0440\u0443\u0436\u0443 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Nextcloud &#8212; \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0438\u043c\u0435\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0430 \u0432\u043c\u0435\u0441\u0442\u043e IP.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u0435\u0449\u0435 \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u0434 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e &#8212; \u0443 \u043d\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043e\u043a \u043c\u0435\u0436\u0434\u0443 \u0434\u043e\u043c\u0435\u043d\u043e\u043c \u0438 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u0434\u0443\u043c\u0430\u0442\u044c \u043d\u0430\u0434 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043d\u0430\u0448\u0435\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430 \u043e\u0442 \u043f\u043e\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0433\u043b\u0430\u0437. \u041f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0443\u043c &#8212; \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 Request Headers \u043e\u0442 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 Nextcloud \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0445 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0432 htaccess, \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u043e\u0442\u0434\u0430\u0432\u0430\u0442\u044c 403 \u043a\u043e\u0434 \u043e\u0442\u0432\u0435\u0442\u0430.<\/p>\n<p>\u041c\u043e\u0439 \u043a\u0430\u043d\u0430\u043b \u0432\u00a0Telegram\u00a0\u2014 <a href=\"https:\/\/t.me\/barbolin\" rel=\"noopener nofollow\">@barbolin<\/a>, \u0442\u0430\u043c \u044f \u0434\u0435\u043b\u044e\u0441\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f\u043c\u0438 \u0432\u043e \u0432\u0441\u0451\u043c, \u0447\u0442\u043e \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0431\u043e\u0442\u044b.<\/p>\n<\/div>\n<p>\u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/1101832\/\">https:\/\/habr.com\/ru\/articles\/1101832\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u042f \u0443\u0441\u0442\u0430\u043b \u043e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0441 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0437\u0432\u043e\u043d\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 Nextcloud Talk \u0434\u043b\u044f \u0432\u0441\u0435\u0439 \u0441\u0435\u043c\u044c\u0438. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u0430\u043c\u0430 \u0437\u0432\u043e\u043d\u0438\u0442 \u0432 VK \u0438 \u043d\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u043f\u043e\u0447\u0435\u043c\u0443 \u0437\u0432\u043e\u043d\u043a\u0438 \u043d\u0435 \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 &#8212; \u0443 \u043c\u0435\u043d\u044f iPhone, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 VK \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0438\u0437 \u0441\u0442\u043e\u0440\u0430. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442, \u043e\u0442\u043e\u0437\u0432\u0430\u043d \u0442\u043e\u043a\u0435\u043d \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u0438 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432\u044b\u0437\u043e\u0432\u044b \u043f\u0440\u043e\u0445\u043e\u0434\u044f\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u043e. \u0410 \u043f\u0430\u043f\u0430 \u0437\u0432\u043e\u043d\u0438\u0442 \u0432 TG \u043f\u043e \u0441\u0442\u0430\u0440\u043e\u0439 \u043f\u0440\u0438\u0432\u044b\u0447\u043a\u0435 &#8212; \u043f\u043e\u043a\u0430 \u0432\u043a\u043b\u044e\u0447\u0438\u0448\u044c VPN, \u043f\u043e\u043a\u0430 \u0434\u043e\u0436\u0434\u0435\u0448\u044c\u0441\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f&#8230;\u0417\u0430\u0434\u0430\u0447\u0430: \u0434\u0430\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0435\u0439 \u0441\u0435\u043c\u044c\u0435 \u043e\u0431\u0449\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u0432\u043e\u0439 self-hosted \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 Nextcloud Talk. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e TrueNAS, \u043e\u0431 \u044d\u0442\u043e\u043c \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u0435\u043d \u0434\u043e\u043c\u0435\u043d \u0441 SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a htaccess \u043b\u0438\u0431\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0430\u043c nginx. \u0421\u0445\u0435\u043c\u0430 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a:\u0411\u043b\u043e\u043a-\u0441\u0445\u0435\u043c\u0430 \u043a\u0430\u043a \u043f\u043e\u0434\u043d\u044f\u0442\u044c Nextcloud Talk \u043d\u0430 \u0441\u0432\u043e\u0451\u043c self-hosted TrueNAS-\u0441\u0435\u0440\u0432\u0435\u0440\u0435\u0428\u0430\u0433 1. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0445\u043e\u0441\u0442\u0430\u041d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0441\u0432\u043e\u0439 \u0434\u043e\u043c\u0435\u043d example.com. \u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c \u0443 \u043d\u0435\u0433\u043e \u043f\u043e\u043f\u0438\u0441\u0430\u043d\u044b NS \u043e\u0442 \u0445\u043e\u0441\u0442\u0435\u0440\u0430:ns1.examplehosting.comns2.examplehosting.com\u042f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e VPS \u0441 HestiaCP \u0432\u043c\u0435\u0441\u0442\u043e \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430, \u043d\u043e \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043b\u044e\u0431\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u044c\u044e. \u0420\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u043d\u0435\u0439. \u0414\u0430\u043b\u0435\u0435 \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0445\u043e\u0441\u0442\u0435\u0440\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u043c \u043f\u043e\u0434\u0434\u043e\u043c\u0435\u043d nextcloud.example.com (\u0445\u043e\u0442\u044f \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435 \u0434\u0435\u043b\u0430\u0442\u044c) \u0438 \u043c\u0435\u043d\u044f\u0435\u043c A-\u0437\u0430\u043f\u0438\u0441\u044c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 DNS \u043d\u0430 IP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 HestiaCP. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0447\u0435\u0440\u0435\u0437 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b (PowerShell), \u0447\u0442\u043e \u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442\u0441\u044f:nslookup nextcloud.example.comnslookup nextcloud.example.com 8.8.8.8\u041c\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c IP \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441 HestiaCP. \u0412\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c SSL \u043e\u0442 Let&#8217;s Encrypt &#8212; \u0442\u0430\u043a SSL-\u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c HestiaCP \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0435\u0433\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u0432\u044b\u043f\u0443\u0441\u043a. DNS support \u0434\u043b\u044f \u0434\u043e\u043c\u0435\u043d\u0430 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d, \u0442 \u043a DNS \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u044f\u0442\u0441\u044f \u0445\u043e\u0441\u0442\u0435\u0440\u043e\u043c.Enable SSL for this domain &#8212; \u0432\u043a\u043bUse Let&#8217;s Encrypt to obtain SSL certificate &#8212; \u0432\u043a\u043bEnable automatic HTTPS redirection &#8212; \u0432\u043a\u043b\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 \u0432 HestiaCP\u0428\u0430\u0433 2. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u0435\u041c\u043d\u0435 \u043f\u043e\u0432\u0435\u0437\u043b\u043e, \u0438 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0432\u044b\u0434\u0430\u043b \u043c\u043d\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u043d\u044b\u0439 IPv4 \u043d\u0435 \u0437\u0430 CGNAT, \u0438\u043d\u0430\u0447\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u044b DDNS. \u0421\u0430\u043c Nextcloud \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u043d\u0430 TrueNAS \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 192.168.0.17:30027 (\u043f\u043e\u0440\u0442 30027 &#8212; \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 \u0434\u043b\u044f Nextcloud). \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u044b\u0439 \u043f\u043e\u0440\u0442 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u0441 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 \u043d\u0430 30027.\u041d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u043e\u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u043e\u0433\u043e \u0440\u043e\u0443\u0442\u0435\u0440\u0430 Asus RT-N12 &#8212; \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c Port Forwarding c \u0440\u0430\u043d\u0434\u043e\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u0440\u0442\u0430 56070 \u043d\u0430 192.168.0.17:30027:Service Name = Nextcloud # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044fSource Target = IP \u0432\u0430\u0448\u0435\u0433\u043e \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438\u043b\u0438 VPS. \u0422\u0430\u043a \u0434\u043e\u0441\u0442\u0443\u043f \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0443 \u0432\u0430\u0448\u0435\u0433\u043e VPS. \u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0443\u0441\u0442\u044b\u043c, \u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043ePort Range = 56070Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNASLocal Port = 30027Protocol = TCP\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u0435\u0449\u0435 \u0434\u0432\u0430 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 &#8212; \u043e\u043d\u0438 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u043d\u0430\u043c \u043f\u043e\u0437\u0436\u0435:Service Name = Nextcloud coturn 3478 # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044fSource Target = \u043f\u0443\u0441\u0442\u043e # \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e IPPort Range = 3478Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNASLocal Port = 3478Protocol = BOTH\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435:Service Name = Nextcloud coturn\u00a0 relay # \u041d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0435 \u043a\u0430\u043a \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044fSource Target = \u043f\u0443\u0441\u0442\u043e # \u0415\u0441\u043b\u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0441 \u043b\u044e\u0431\u043e\u0433\u043e IPPort Range = 49160:49200Local IP = 192.168.0.17 # \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 IP TrueNASLocal Port = 49160Protocol = UDP\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 Port Forwarding \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\u0428\u0430\u0433 3. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0435\u0432\u0435\u0440\u0441-\u043f\u0440\u043e\u043a\u0441\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435\u041d\u0430\u0448\u0430 \u0437\u0430\u0434\u0430\u0447\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 https:\/\/nextcloud.example.com\/ \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043b\u043e\u0433\u0438\u043d\u0430. \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432:\u00a0\u0412\u0430\u0440\u0438\u0430\u043d\u0442 1. \u0427\u0435\u0440\u0435\u0437 htaccess (apache)\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u0444\u0430\u0439\u043b .htaccess \u0432 \u043a\u043e\u0440\u043d\u0435 public_html \u0441\u0430\u0439\u0442\u0430 \u0438 \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u0442\u0443\u0434\u0430 2 \u0441\u0442\u0440\u043e\u0447\u043a\u0438:# \u041f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 NextcloudRewriteEngine OnRewriteRule (.*) http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070\/$1 [P,L]\u042d\u0442\u0430 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u043e 2 \u043c\u043e\u0434\u0443\u043b\u044f:proxy_moduleproxy_http_module\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0432\u0448\u0438\u0441\u044c \u043a \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0443 \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0430 \u0438 \u0432\u0432\u0435\u0441\u0442\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u0443:apachectl -M | grep proxy\u0415\u0441\u043b\u0438 \u044d\u0442\u0438\u0445 2\u0445 \u043c\u043e\u0434\u0443\u043b\u0435\u0439 \u043d\u0435 \u0432\u0438\u0434\u043d\u043e &#8212; \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0443 \u043c\u0435\u043d\u044f \u043d\u0435 \u0445\u0432\u0430\u0442\u0430\u043b\u043e \u043e\u0434\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f:a2enmod proxy_httpsystemctl restart apache2\u042f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0445\u0435\u043c\u0443 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u043e\u043c \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u0424 &#8212; \u0443 \u043d\u0435\u0433\u043e \u0445\u043e\u0442\u044c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b \u0438\u0437 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043d\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u043e\u043d \u043d\u0435 \u0434\u0430\u043b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u043c \u043a \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435.\u0412\u0430\u0440\u0438\u0430\u043d\u0442 2. \u0427\u0435\u0440\u0435\u0437 nginx\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0434\u043b\u044f Proxy Template \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c \u0435\u0433\u043e \u043a nextcloud.example.com \u0432 HestiaCP. \u041f\u0440\u0438\u0437\u043d\u0430\u044e\u0441\u044c \u0447\u0435\u0441\u0442\u043d\u043e &#8212; \u043a\u043e\u0434 \u043f\u043e\u043c\u043e\u0433\u0430\u043b \u043f\u0438\u0441\u0430\u0442\u044c Claude:cat &gt; \/usr\/local\/hestia\/data\/templates\/web\/nginx\/nextcloud_proxy.tpl &lt;&lt; &#8216;EOF&#8217;#=========================================================================## Nextcloud External Proxy Web Domain Template \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0## Custom template, proxies all requests including static assets \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ## to an external backend, without local try_files fallback. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ##=========================================================================#server {\u00a0 \u00a0 \u00a0 \u00a0 listen \u00a0 \u00a0 \u00a0%ip%:%proxy_port%;\u00a0 \u00a0 \u00a0 \u00a0 server_name %domain_idn% %alias_idn%;\u00a0 \u00a0 \u00a0 \u00a0 error_log \u00a0 \/var\/log\/%web_system%\/domains\/%domain%.error.log error;\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.forcessl.conf*;\u00a0 \u00a0 \u00a0 \u00a0 location ~ \/\\.(?!well-known\\\/|file) {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 deny all;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return 404;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_pass http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_http_version 1.1;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Host $host;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Real-IP $remote_addr;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-Proto $scheme;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Upgrade $http_upgrade;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Connection &#171;upgrade&#187;;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_read_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_send_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 client_max_body_size 10G;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/error\/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 alias %home%\/%user%\/web\/%domain%\/document_errors\/;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.conf_*;}EOF\u0418 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u0434\u043b\u044f HTTPS (stpl):cat &gt; \/usr\/local\/hestia\/data\/templates\/web\/nginx\/nextcloud_proxy.stpl &lt;&lt; &#8216;EOF&#8217;#=========================================================================## Nextcloud External Proxy Web Domain Template (SSL) \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0## Custom template, proxies all requests including static assets \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ## to an external backend, without local try_files fallback. \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ##=========================================================================#server {\u00a0 \u00a0 \u00a0 \u00a0 listen \u00a0 \u00a0 \u00a0%ip%:%proxy_ssl_port% ssl;\u00a0 \u00a0 \u00a0 \u00a0 server_name %domain_idn% %alias_idn%;\u00a0 \u00a0 \u00a0 \u00a0 error_log \u00a0 \/var\/log\/%web_system%\/domains\/%domain%.error.log error;\u00a0 \u00a0 \u00a0 \u00a0 ssl_certificate \u00a0 \u00a0 %ssl_pem%;\u00a0 \u00a0 \u00a0 \u00a0 ssl_certificate_key %ssl_key%;\u00a0 \u00a0 \u00a0 \u00a0 ssl_stapling \u00a0 \u00a0 \u00a0 \u00a0on;\u00a0 \u00a0 \u00a0 \u00a0 ssl_stapling_verify on;\u00a0 \u00a0 \u00a0 \u00a0 if ($anti_replay = 307) { return 307 https:\/\/$host$request\\_uri; }\u00a0 \u00a0 \u00a0 \u00a0 if ($anti_replay = 425) { return 425; }\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.hsts.conf*;\u00a0 \u00a0 \u00a0 \u00a0 location ~ \/\\.(?!well-known\\\/|file) {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 deny all;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 return 404;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_pass http:\/\/&lt;\u0412\u041d\u0415\u0428\u041d\u0418\u0419_IP_\u0420\u041e\u0423\u0422\u0415\u0420\u0410&gt;:56070;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_http_version 1.1;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Host $host;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Real-IP $remote_addr;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header X-Forwarded-Proto $scheme;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Upgrade $http_upgrade;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_set_header Connection &#171;upgrade&#187;;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_read_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 proxy_send_timeout 3600s;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 client_max_body_size 10G;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 location \/error\/ {\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 alias %home%\/%user%\/web\/%domain%\/document_errors\/;\u00a0 \u00a0 \u00a0 \u00a0 }\u00a0 \u00a0 \u00a0 \u00a0 proxy_hide_header Upgrade;\u00a0 \u00a0 \u00a0 \u00a0 include %home%\/%user%\/conf\/web\/%domain%\/nginx.ssl.conf_*;}EOF\u0417\u0430\u0442\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:# \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0431\u0435\u0437 \u043e\u0448\u0438\u0431\u043e\u043a\u00a0nginx -t# \u0440\u0435\u0431\u0443\u0442\u0430\u0435\u043c nginxsystemctl reload nginx# \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f (\u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c 200)curl -I https:\/\/nextcloud.example.com\/core\/css\/server.css\u0412\u0430\u0440\u0438\u0430\u043d\u0442 3. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u041d\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0439\u0442\u0435 \u044d\u0442\u043e \u0434\u043e\u043c\u0430!A-\u0437\u0430\u043f\u0438\u0441\u044c nextcloud.example.com\u00a0\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 IP.\u041d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043f\u043e\u0440\u0442\u044b 80 \u0438 443 \u043d\u0430 TrueNAS.\u0412 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 TrueNAS \u0441\u0442\u0430\u0432\u0438\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0441 Let&#8217;s Encrypt, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Nginx Proxy Manager, \u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u0443\u0435\u0442 \u0434\u043e\u043c\u0435\u043d \u043d\u0430 Nextcloud.&#8212;\u041f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 &#8212; \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u043e\u0442\u043a\u0440\u044b\u0442\u044c https:\/\/nextcloud.example.com\/ \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0438 \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0443 \u043e\u0442 Nextcloud.\u0428\u0430\u0433 4. \u041e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u00a0DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435\u0421\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u044b\u043c DoS protection \u0440\u043e\u0443\u0442\u0435\u0440 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u043b\u0438\u0448\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u0430 \u0432\u0441\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0434\u0430\u0451\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u0438 \u0441\u0442\u0430\u0432\u0438\u0442 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a, \u0447\u0442\u043e \u0432\u044b \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 Nextcloud \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443\u00a0https:\/\/nextcloud.example.com\/, \u0430 \u0442\u0430\u043c \u043f\u0440\u043e\u0441\u0442\u0430\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430 \u0438 \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442. \u0412 Dev Tools \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0432\u0438\u0434\u043d\u043e, \u043a\u0430\u043a \u0432\u043e \u0432\u043a\u043b\u0430\u0434\u043a\u0435 Network \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a \u0441\u0442\u0430\u0442\u0438\u043a\u0435 \u043b\u0435\u0442\u044f\u0442 \u0441 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0434\u0440\u0443\u0433 \u0437\u0430 \u0434\u0440\u0443\u0433\u043e\u043c.\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 DoS protection \u043d\u0430 \u0440\u043e\u0443\u0442\u0435\u0440\u0435 Asus RT-N12\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c, \u0447\u0442\u043e \u0441\u0442\u0430\u0442\u0438\u043a\u0430 \u041b\u041a Nextcloud \u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044f \u0431\u0435\u0437 \u0437\u0430\u0434\u0435\u0440\u0436\u0435\u043a \u0432 Dev Tools\u0428\u0430\u0433 5. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445 \u0445\u043e\u0441\u0442\u043e\u0432 \u0432 Nextcloud\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c Shell Nextcloud \u0432 Truenas \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0434\u043e\u043c\u0435\u043d \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043d\u044b\u0445:php occ config:system:get trusted_domains\u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e 4 \u0445\u043e\u0441\u0442\u0430:127.0.0.1192.168.0.17localhostnextcloud\u0417\u043d\u0430\u0447\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u043e\u0432\u044b\u0439 \u0445\u043e\u0441\u0442 \u0441 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u043c 4:php occ config:system:set trusted_domains 4 &#8212;value=nextcloud.example.com\u0414\u0430\u043b\u044c\u0448\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:php occ config:system:set overwrite.cli.url &#8212;value=&#187;https:\/\/nextcloud.example.com&#187;php occ config:system:set overwriteprotocol &#8212;value=&#187;https&#187;php occ config:system:set overwritehost &#8212;value=&#187;nextcloud.example.com&#187;\u041f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 Nextcloud \u0432 TrueNAS. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 https:\/\/nextcloud.example.com\/ \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \/login \u0438 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043b\u043e\u0433\u0438\u043d\u0430 \u0432 Nextcloud. \u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0441\u0442\u0430\u0442\u0438\u043a\u0443 \u0432 Dev Tools, \u0435\u0441\u043b\u0438 \u043e\u0442\u043a\u0440\u044b\u043b\u0430\u0441\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u0443\u0441\u0442\u0430\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u043d\u043e \u0432\u0435\u0440\u043d\u043e &#8212; \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0443 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0443\u0447\u0435\u0442\u043e\u043a \u0438 \u043e\u0431\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438. \u041d\u043e \u0434\u043b\u044f \u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u043d\u0430\u0434\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0435 \u043a\u043e\u0435-\u0447\u0442\u043e.\u0428\u0430\u0433 6. \u041f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c coturn-\u0441\u0435\u0440\u0432\u0435\u0440\u0414\u0430\u043b\u0435\u0435 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043d\u044f\u0442\u044c \u0441\u0432\u043e\u0439 Turn (coturn) \u0441\u0435\u0440\u0432\u0435\u0440. \u0411\u0435\u0437 \u043d\u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f, \u0441\u043e \u0437\u0432\u043e\u043d\u043a\u0430\u043c\u0438 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-501078","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/501078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=501078"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/501078\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=501078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=501078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=501078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}