{"id":304849,"date":"2020-06-04T21:00:20","date_gmt":"2020-06-04T21:00:20","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=304849"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=304849","title":{"rendered":"\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0443\u043c\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0443 \u043f\u0440\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0438 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0433\u043e IP (\u0447\u0430\u0441\u0442\u044c 2)"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505412\/\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/504716\/\">\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u044f \u043f\u0438\u0441\u0430\u043b \u043e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043a\u0430\u043a \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0445\u043e\u0442\u0435\u043b\u043a\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenVPN, \u043d\u043e, \u0432\u0441\u0432\u044f\u0437\u0438 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0448\u0438\u043b \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 Docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u044d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043f\u043e\u0442\u043e\u043c \u044f \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e VPS. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0440\u044f\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445, \u043e \u043a\u043e\u0438\u0445 \u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c.<br \/>  <a name=\"habracut\"><\/a>  <\/p>\n<h2>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/h2>\n<p>  \u041e\u043f\u0438\u0448\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<h3>ioBroker<\/h3>\n<p>  <\/p>\n<pre><code class=\"plaintext\">docker run -d --name iobhost  --net=host -v \/opt\/iobroker\/:\/opt\/iobroker\/ --device=\/dev\/ttyACM0 --env-file \/opt\/ioBroker_env.list --restart=always buanet\/iobroker:latest <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043c\u0435\u043d\u044f \u0435\u0441\u0442\u044c MiHome Gateway, \u043a \u043d\u0435\u043c\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0434\u0430\u0442\u0447\u0438\u043a\u0438, \u0434\u0430\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0435 \u0445\u043e\u0447\u0443 \u043f\u043e\u043a\u0430 \u043b\u043e\u043c\u0430\u0442\u044c, \u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b \u043a \u043d\u0435\u043c\u0443 ioBroker. \u041e\u043d \u0443\u0432\u0438\u0434\u0435\u043b \u0434\u0430\u0442\u0447\u0438\u043a\u0438, \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0438\u0445 \u043f\u0435\u0440\u0435\u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u043a Zigbee stick (\u0445\u043e\u0442\u044f \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c, \u0438 \u043a\u043e\u0435-\u043a\u0430\u043a\u0438\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a \u043d\u0435\u043c\u0443).<\/p>\n<p>  \u0412\u043e\u0442 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b ioBroker \u0441\u0432\u044f\u0437\u0430\u043b\u0441\u044f \u0441 MiHome Gateway, \u0438 \u043f\u0440\u0448\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c &#8212;net=host. \u0422.\u0435. \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0445\u043e\u0441\u0442\u0430, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u043f\u043e\u0440\u0442\u044b \u043f\u0440\u043e\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e. \u0411\u0435\u0437 \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0448\u043b\u044e\u0437\u0430 \u043d\u0435 \u0432\u0438\u0434\u0435\u043b, \u0438\u0431\u043e \u0442\u043e\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 \u043c\u0443\u043b\u044c\u0442\u0438\u043a\u0430\u0441\u0442\u044b.<\/p>\n<p>  \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212;device=\/dev\/ttyACM0 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u0440\u043e\u0431\u0440\u043e\u0441\u0430 Zigbee USB stick \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u0422\u0430\u043a\u0436\u0435 \u0432 \/opt\/ioBroker_env.list \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u0447\u043a\u0443 USBDEVICES=&quot;\/dev\/ttyACM0&quot;. \u0412\u0430\u0436\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u0430 \u0441\u0442\u0440\u043e\u0447\u043a\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u043a\u043e\u0433\u0434\u0430 \u043e\u043d \u0432\u0438\u0434\u0438\u0442 \u043f\u0443\u0441\u0442\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0438 \u043f\u043e\u0442\u043e\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u043e \u043f\u0440\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0442\u0435\u043b\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f.<\/p>\n<h3>MQTT \u0441\u0435\u0440\u0432\u0435\u0440<\/h3>\n<p>  \u041d\u0430 \u0432\u043d\u0435\u0448\u043d\u0435\u043c VPS \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b eclipse mosquito. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0435\u043c\u0443 TLS, \u0432\u044b\u043f\u0438\u0441\u0430\u0432 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 Let\u2019s encrypt. \u041f\u043e\u0442\u043e\u043c \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043c \u0443\u0436\u0435 \u0438\u043c\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c (\u0437\u0430\u0449\u0438\u0442\u0430 \u043e\u0442 bruteforce). \u0422\u0430\u043a \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439, \u0447\u0442\u043e\u0431\u044b \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0432\u044b\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b.<\/p>\n<h3>OpenVPN<\/h3>\n<p>  \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u043e\u0431\u0440\u0430\u0437\u044b \u0441 Docker Hub. \u0414\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 (VPS) kylemanna\/openvpn. \u0414\u043b\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0433\u0434\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d ioBroker) \u2014 ekristen\/openvpn-client.<\/p>\n<h2>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h2>\n<p>  \u0412\u043e\u0442 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0432\u043e\u0437\u0438\u0442\u044c\u0441\u044f. \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u043e\u0447\u0443\u0432\u0441\u0442\u0432\u043e\u0432\u0430\u043b \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u0434\u043e\u043a\u0435\u0440\u0430, \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 iptables, \u0443\u0437\u0430\u043d\u043b \u043d\u043e\u0432\u043e\u0435, \u0432 \u0442.\u0447. netplan, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u0435\u043b\u0430 \u043d\u0435 \u0438\u043c\u0435\u043b. \u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438 \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e.<\/p>\n<h3>\u0421\u0435\u0440\u0432\u0435\u0440 VPS<\/h3>\n<p>  \u0421 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 OpenVPN \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u0432\u0441\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e, \u043a\u0430\u043a \u043d\u0430 <a href=\"https:\/\/hub.docker.com\/r\/kylemanna\/openvpn\" rel=\"nofollow\">https:\/\/hub.docker.com\/r\/kylemanna\/openvpn<\/a> \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u043b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e, \u0442\u0430\u043a \u044d\u0442\u043e \u043f\u043e\u0434\u043d\u044f\u043b \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 loopback \u043d\u0430 VPS \u0438 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. <\/p>\n<p>  <i>\/etc\/netplan\/01-netcfg.yaml<\/i><\/p>\n<pre><code class=\"plaintext\">\t# This file describes the network interfaces available on your system \t# For more information, see netplan(5). \tnetwork: \t  version: 2 \t  renderer: networkd \t  &lt;b&gt;ethernets: \t    lo: \t      renderer: networkd \t      match: \t        name: lo \t      addresses:         - 192.168.16.1\/32&lt;\/b&gt;<\/code><\/pre>\n<p>  \u0416\u0438\u0440\u043d\u044b\u043c \u0432\u044b\u0434\u0435\u043b\u0438\u043b \u00ab\u0434\u043e\u0431\u0430\u0432\u043a\u0443\u00bb. \u041f\u0440\u043e\u0431\u0435\u043b\u044b, \u043f\u043e\u0445\u043e\u0436\u0435, \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f, \u0445\u043e\u0442\u044f \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u044b.<\/p>\n<p>  \u0410\u0434\u0440\u0435\u0441\u0430 \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0431\u0443\u0434\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c 192.168.6.0 \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0438 192.168.16.0 \u0434\u043b\u044f loopback. \u041f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0412 <i>openvpn.conf<\/i> \u0434\u043e\u0431\u0430\u0432\u0438\u043b<\/p>\n<pre><code class=\"plaintext\">server 192.168.16.192 255.255.255.192 push &quot;dhcp-option DNS 192.168.16.6&quot; push &quot;route 192.168.16.0 255.255.255.128&quot; client-to-client client-config-dir       \/etc\/openvpn\/ccd\/<\/code><\/pre>\n<p>  \u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u043b loopback \u0438\u0437 192.168.16.0\/25, \u0430 \u0432\u044b\u0434\u0430\u044e \u0430\u0434\u0440\u0435\u0441\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0438\u0437 192.168.16.128\/25, \u0447\u0442\u043e\u0431\u044b \u0432\u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0438 \u0440\u0430\u0449\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 iptables \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u043a\u043e\u0439 192.168.16.0\/24<\/p>\n<p>  \u0418\u0442\u0430\u043a, \u0443 VPS loopback 192.168.16.1, \u043d\u0430 \u043d\u0435\u043c \u0436\u0435 mqtt.<\/p>\n<p>  \u0423 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 192.168.16.6. \u0422\u0430\u043c \u0436\u0435 iobroker, \u043e\u043d \u0436\u0435 dns \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0445 \u043a\u043b\u0435\u043d\u0442\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0434\u043e\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043c\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0445\u0441\u044f \u0438\u0437 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 VPN.<br \/>  \u0411\u044b\u043b\u0430 \u043c\u044b\u0441\u043b\u044c \u0432\u0435\u0437\u0434\u0435 \u043f\u0440\u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u00ab\u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439\u00bb IP \u0438\u0437 \u0441\u0435\u0442\u0438. \u0422\u0438\u043f\u0430 \u0432 ccd\/iobroker \u0443\u043a\u0430\u0437\u0430\u0442\u044c <br \/>  iroute 192.168.6.6 255.255.255.255<\/p>\n<p>  \u041d\u043e, \u0432\u0438\u0434\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0430\u0434\u0440\u0435\u0441 \u0438\u0437 \u0441\u0435\u0442\u0438 \u043d\u0430 WiFi \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e \u043d\u043e\u0443\u0442\u0431\u0443\u043a\u0430, \u0434\u0430 \u0435\u0449\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0448\u043b\u044e\u0437\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0431\u044b\u043b\u0438 \u0433\u043b\u044e\u043a\u0438. \u0412 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0441\u043e \u0441\u043c\u0430\u0440\u0442\u0444\u043e\u043d\u043e\u043c. \u0410 \u043c\u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c, \u0447\u0442\u043e\u0431\u044b \u0438\u0437 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u043a\u0430\u043a \u0441 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c, \u0442\u0430\u043a \u0438 \u0431\u0435\u0437 \u043d\u0435\u0433\u043e. \u0418 \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u0443\u0434\u043e\u0440\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043f\u0440\u0438\u0434\u044f \u0434\u043e\u043c\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0435\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0438 \u0441 loopback, \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e \u043e\u0442 \u0442\u043e\u0433\u043e, \u0430\u043a\u0442\u0438\u0432\u0435\u043d \u043b\u0438 VPN. \u0418 \u043a \u044d\u0442\u043e\u043c\u0443 \u0436\u0435 \u0430\u0434\u0440\u0435\u0441\u0443 \u0448\u043b\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0422\u0430\u043a \u0447\u0442\u043e \u0432 <i>ccd\/iobroker<\/i><\/p>\n<pre><code class=\"plaintext\">iroute 192.168.16.6 255.255.255.255<\/code><\/pre>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0432\u0441\u0435 VPN \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0437\u043d\u0430\u044e\u0442, \u0447\u0442\u043e \u0441\u0435\u0442\u044c 192.168.16.0\/24 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0447\u0435\u0440\u0435\u0437 VPN. \u0415\u0441\u043b\u0438 \u043e\u043d\u0438 \u0448\u043b\u044e\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 192.168.16.1 (loopback VPS), \u043f\u0430\u043a\u0435\u0442 \u0448\u0438\u0444\u0440\u0443\u0435\u0442\u0441\u044f, \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 openvpn, \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0443 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0434\u0435\u0442 \u043d\u0430 172.17.0.1 (default gateway \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e), \u043f\u043e\u043f\u0430\u0434\u0430\u0435\u0442 \u043d\u0430 \u0445\u043e\u0441\u0442, \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>  \u041d\u043e \u043a\u0430\u043a \u043c\u043d\u0435 \u0441 VPS \u0445\u043e\u0441\u0442\u0430 \u00ab\u043f\u0438\u043d\u0433\u0430\u043d\u0443\u0442\u044c\u00bb VPN \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438\u043b\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c\u0441\u044f \u043a \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0441 \u0430\u0434\u0440\u0435\u0441\u043e\u043c 192.168.16.6 (\u0430 \u043d\u0435 \u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c\u0443 IP \u043d\u0430 VPN \u0442\u0443\u043d\u043d\u0435\u043b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 OpenVPN)?<\/p>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u0435\u0442\u043a\u0443 192.168.16.0 \u043d\u0430\u0434\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 OpenVPN. \u042f, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043c\u043e\u0433\u0443 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u043e\u043d 172.17.0.3. \u041d\u043e \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0435\u043d\u044c \u043c\u043e\u0436\u0435\u0442 \u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0411\u044b\u043b \u0431\u044b OpenVPN \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442 \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0430 \u043d\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435, \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0431\u044b \u0441\u0430\u043c\u043e. \u0410 \u0442\u0443\u0442 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0434\u0435\u043b\u0430\u0442\u044c \u0445\u0438\u0442\u0440\u043e. \u0421\u043e\u0437\u0434\u0430\u044e \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0432 system, \u0438 \u0432 \u043d\u0435\u0433\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u044e:<\/p>\n<pre><code class=\"plaintext\">ipaddr=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' vpn-client) route add -net 192.168.16.0\/24 gw $ipaddr<\/code><\/pre>\n<p>  \u0422.\u0435. \u0447\u0435\u0440\u0435\u0437 docker inspect \u0443\u0437\u043d\u0430\u044e IP \u0430\u0434\u0440\u0435\u0441 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u043d\u0430 \u043d\u0435\u0433\u043e \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u044e \u0441\u0435\u0442\u043a\u0443 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u043e\u043c.<\/p>\n<p>  \u0412 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u0438\u0432\u044b\u0447\u043d\u043e\u0433\u043e rc.local \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u043e\u0433\u0443\u0433\u043b\u0438\u0442\u044c, \u0430 \u043a\u0430\u043a \u0436\u0435, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u0439\u0441\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c. \u041f\u0440\u0438\u0432\u0435\u0434\u0443 \u043a\u0440\u0430\u0442\u043a\u0443\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044e:<\/p>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b <i>\/etc\/systemd\/system\/custom.target<\/i>:<\/p>\n<pre><code class=\"plaintext\">[Unit]  Description=My Custom Target Requires=multi-user.target After=multi-user.target AllowIsolate=yes <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0444\u0430\u0439\u043b <i>\/etc\/systemd\/system\/last_command.service<\/i> <\/p>\n<pre><code class=\"plaintext\">[Unit] Description=My custom command After=multi-user.target [Service] Type=simple ExecStart=\/usr\/local\/bin\/my_last_command.sh [Install] WantedBy=custom.target <\/code><\/pre>\n<p>  \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e <i>\/etc\/systemd\/system\/custom.target.wants<\/i><\/p>\n<pre><code class=\"plaintext\">ln -s \/etc\/systemd\/system\/last_command.service \\   \/etc\/systemd\/system\/custom.target.wants\/last_command.service systemctl daemon-reload systemctl set-default custom.target<\/code><\/pre>\n<p>  \u041f\u0440\u0438 \u0436\u0435\u043b\u0430\u043d\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443, \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u044f\u0441\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438: systemctl isolate custom.target<br \/>  \u0412\u043e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0444\u0430\u0439\u043b <i>\/usr\/local\/bin\/my_last_command.sh<\/i>, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 ExecStart.<\/p>\n<h4>Iptables<\/h4>\n<p>  \u041d\u0430 mqtt \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0443 \u043c\u0435\u043d\u044f \u043f\u043e\u0434\u043d\u044f\u0442\u043e 2 \u043f\u043e\u0440\u0442\u0430: 8883 \u0441 TLS \u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0435\u0439, \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u0442\u0447\u0438\u043a\u043e\u0432. \u0414\u0430 \u0438 \u0441\u0430\u043c \u043c\u043e\u0433\u0443 \u043a\u0430\u043a\u0438\u043c-\u043d\u0438\u0431\u0443\u0434\u044c MQTT Explorer \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0438 \u043a\u0430\u043a.<\/p>\n<p>  1883 \u0443\u0436\u0435 \u0431\u0435\u0437 TLS, \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u043c\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c. \u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0433\u043e Sonoff rfBridge, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 TLS \u043d\u0435 \u0443\u043c\u0435\u0435\u0442.<\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u043d\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0437 \u0434\u043e\u043c\u0430 \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u0439\u0434\u0435\u0442 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0441 iobroker, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0448\u043b\u044e\u0437\u043e\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f 192.168.16.0, \u043e\u043d \u043f\u0435\u0440\u0435\u0448\u043b\u0435\u0442 \u043f\u0430\u043a\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 OpenVPN \u0438 \u0442.\u043f. \u041e\u0434\u043d\u0430\u043a\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0440\u0442\u0443 1883 \u0442\u043e\u043b\u044c\u043a\u043e \u00ab\u0438\u0437\u043d\u0443\u0442\u0440\u0438\u00bb. \u0422.\u0435. iptables.<\/p>\n<p>  \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u2013 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u043e\u0440\u0442\u0443 \u043e\u0442\u043e\u0432\u0441\u044e\u0434\u0443, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u043e, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0435\u0442\u0435\u0439.<\/p>\n<pre><code class=\"plaintext\">iptables -I INPUT -p tcp -m tcp --dport 1883 -j DROP iptables -I INPUT -s 172.17.0.0\/24 -p tcp -m tcp --dport 1883 -j ACCEPT<\/code><\/pre>\n<p>  \u0421\u0435\u0442\u043a\u0430 \u0437\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u0430 172.17.0.0, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0438\u0437 OpenVPN \u00ab\u043a \u0441\u043e\u0441\u0435\u0434\u044f\u043c\u00bb \u044f \u0432 \u0438\u0442\u043e\u0433\u0435 \u0445\u043e\u0436\u0443 \u043a\u0430\u043a hide NAT (\u0447\u0442\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 iobroker \u0447\u0442\u043e rfBridge \u0438\u0437 WiFi \u0441\u0435\u0442\u0438), \u0430 \u043d\u0435 \u0441 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0445.<\/p>\n<p>  \u0418 \u0442\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441. \u0423 \u043c\u0435\u043d\u044f \u043f\u043e\u0440\u0442 1883 \u043f\u0440\u043e\u0431\u0440\u043e\u0448\u0435\u043d \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 mqtt. \u0418, \u043a\u0430\u043a \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, iptables \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0442\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u0446\u0435\u043f\u043e\u0447\u043a\u0443 DOCKER-USER. <\/p>\n<p>  \u0422.\u0435 \u043f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043f\u043e\u0440\u0442\u0443 1883 \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u043b\u0441\u044f _\u0434\u043e_ \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430. \u0418 \u0438\u0437 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u043a \u043d\u0435\u043c\u0443 \u0442\u043e\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0411\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0449\u0435\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0430\u0434\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432 \u0446\u0435\u043f\u043e\u0447\u043a\u0435 DOCKER-USER!<\/p>\n<pre><code class=\"plaintext\">iptables -I DOCKR-USER -p tcp -m tcp --dport 1883 -j DROP iptables -I INPUT -s 172.17.0.0\/24 -p tcp -m tcp --dport 1883 -j ACCEPT<\/code><\/pre>\n<p>  \u0410 \u0432\u043e\u0442 \u043d\u0438\u0436\u043d\u0435\u0435, \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0435 \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u0437 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0445 \u0441\u0435\u0442\u0435\u0439, \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 INPUT.<\/p>\n<h3>\u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0439 \u0441\u0435\u0440\u0432\u0435\u0440<\/h3>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u0436\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d \u0445\u043e\u0442\u044c \u0438 \u043a\u043b\u0438\u0435\u043d\u0442, \u043d\u043e \u0434\u043e\u043b\u0436\u0435\u043d \u0431\u044b\u043b \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0437 WiFi \u0441\u0435\u0442\u0438 (rfBridge) \u0432 mqtt \u043d\u0430 VPS. \u0422.\u0435. \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430:<\/p>\n<p>  rfBridge (192.168.6.8) -&gt; iobroker host (192.168.6.6) -&gt; \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 vpn-client (172.17.0.?) -&gt; \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 opevpn \u043d\u0430 VPS -&gt; loopback VPS (192.168.16.1) -&gt; \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 mqtt (\u043f\u043e\u0440\u0442 1883)<\/p>\n<p>  \u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u043c \u00ab\u0444\u043e\u0440\u0432\u0430\u0440\u0434\u0438\u0442\u044c\u00bb \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043b\u044f \u0441\u0435\u0442\u043a\u0438 \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0438 \u043b\u0443\u043f\u0431\u044d\u043a\u0430\u043c\u0438:<\/p>\n<pre><code class=\"plaintext\">iptables -A FORWARD -d 192.168.16.0\/24 -j ACCEPT<\/code><\/pre>\n<p>  \u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0435.<\/p>\n<h4>\u0417\u0430\u0434\u0430\u0447\u0430 1<\/h4>\n<p>  \u041a\u0430\u043a \u0432\u044b \u043f\u043e\u043c\u043d\u0438\u0442\u0435, \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438 \u0443 \u043c\u0435\u043d\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043e \u0447\u0435\u0440\u0435\u0437 loopback. \u0422.\u0435. \u043d\u0443\u0436\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430 192.168.16.6 \u0438\u0437 vpn-client\u0443\u0448\u043b\u0438 \u043d\u0430 \u0445\u043e\u0441\u0442 (172.17.0.1), \u0430 \u043d\u0435 \u0432 VPN \u0442\u0443\u043d\u043d\u0435\u043b\u044c.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443, \u0432\u0441\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u044d\u0442\u043e \u0437\u0430\u0431\u0443\u0434\u0435\u0442\u0441\u044f, \u043d\u043e \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435 iobroker.ovpn \u043c\u043e\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c<br \/>  <code>route 192.168.16.6 255.255.255.255 172.17.0.1<\/code>.<\/p>\n<p>  \u0418 openvpn \u044d\u0442\u043e\u0442 \u043c\u0430\u0440\u0448\u0443\u0440\u0442 \u0431\u0443\u0434\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u0441\u0442\u0430\u0440\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u042d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c.<\/p>\n<h4>\u0417\u0430\u0434\u0430\u0447\u0430 2<\/h4>\n<p>  \u041f\u0430\u043a\u0435\u0442\u044b \u0438\u0437 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u0439 \u0441\u0435\u0442\u0438 192.168.6.0 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442 rfBridge) \u043f\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043d\u0430 \u0445\u043e\u0441\u0442\u044c iobroker \u0438 \u0444\u043e\u0440\u0432\u0430\u0434\u044f\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 vpn-client.<\/p>\n<p>  \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0435\u0442\u044c 192.168.6.0 \u044f \u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e \u0432 \u0434\u043e\u043c\u0435\u043d \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 OpenVPN \u043d\u0430 VPS \u043d\u0435 \u0437\u043d\u0430\u0435\u0442, \u0447\u0442\u043e \u0441 \u044d\u0442\u043e\u0439 \u0441\u0435\u0442\u043a\u043e\u0439 \u0434\u0435\u043b\u0430\u0442\u044c. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u2013 \u0441\u0434\u0435\u043b\u0430\u0442\u044c NAT \u0432\u043d\u0443\u0442\u0440\u0438 vpn-client, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u043a\u0435\u0442 \u043d\u0430 VPS \u043f\u0440\u0438\u0448\u0435\u043b \u0441 \u0435\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430. \u041d\u043e \u0435\u0441\u0442\u044c \u043d\u044e\u0430\u043d\u0441. \u041a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b iptables \u043f\u043e\u0441\u043b\u0435 \u0440\u0435\u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430? Iptables-persistent \u0442\u0443\u0434\u0430 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0448\u044c.<\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0441 \u0434\u043e\u0431\u0430\u0432\u043a\u0430\u043c\u0438. \u041d\u043e \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f, \u0438\u0431\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u0441\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0430\u043f\u0433\u0440\u0435\u0439\u0434\u0430. \u0412\u043c\u0435\u0441\u0442\u043e \u00ab\u0443\u0431\u0438\u043b \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b latest, \u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043e\u043d \u043f\u043e\u0434\u0442\u044f\u043d\u0443\u043b \u0438\u0437 \u043f\u043e\u0434\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0438\u00bb \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443\u2026 \u041d\u0435 \u0434\u043b\u044f \u0442\u043e\u0433\u043e \u044f \u0441 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u043c\u0438 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0441\u044c.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0438\u043b \u00ab\u043f\u043e\u0441\u043b\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432 \u043d\u0435\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0435 iptables \u0434\u0435\u043b\u0430\u0442\u044c NAT\u00bb. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 <br \/>  <code>docker events --filter &quot;container=vpn-client&quot; --filter &quot;event=start&quot;<\/code>.<\/p>\n<p>  \u041e\u043d\u0430 \u0432\u0438\u0441\u0438\u0442 \u0438 \u0436\u0434\u0435\u0442 \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0432 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0445. \u0412 \u043c\u043e\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0447\u0435\u0440\u0435\u0437 docker exec \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e \u0432 \u043d\u0435\u043c \u0441 \u0445\u043e\u0441\u0442\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0438 \u0441 VPS \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044e <i>\/usr\/local\/bin\/my_last_command.sh<\/i><\/p>\n<pre><code class=\"plaintext\">#!\/bin\/bash cont=&quot;vpn-client&quot; ipaddr=$(docker inspect -f '{{.NetworkSettings.IPAddress}}' $cont) route add -net 192.168.16.0\/24 gw $ipaddr for (( ; ; )) do   docker events --filter &quot;container=$cont&quot; --filter &quot;event=start&quot;   docker exec -it $cont iptables -t nat -I POSTROUTING -s 192.168.16.0\/255.255.255.0 -j MASQUERADE   docker exec -it $cont iptables -t nat -I POSTROUTING -s 192.168.6.0\/255.255.255.0 -j MASQUERADE done <\/code><\/pre>\n<p>  \u0415\u0441\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u044b, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0432\u043e\u0434 docker events \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u0432\u0445\u043e\u0434 awk, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u044b. \u041d\u043e \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0449\u0435 \u00ab\u043f\u043e\u0432\u0438\u0441\u0435\u0442\u044c\u00bb \u0434\u043e \u043d\u0430\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u0441\u043e\u0431\u044b\u0442\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0438 \u043e\u043f\u044f\u0442\u044c \u0436\u0434\u0430\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435<\/h2>\n<p>  \u0427\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u043c\u043d\u0435 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043f\u0438\u0441\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u043e\u0441\u0442. \u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043e\u0431\u0440\u0435\u043b, \u043d\u043e \u00ab\u043d\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u00bb \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u043e, \u044f \u0442\u0430\u043a \u043d\u0435 \u043b\u044e\u043b\u044e. \u0422\u0430\u043a \u0447\u0442\u043e \u044f \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b, \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 VPS \u0432\u043e\u043e\u0431\u0449\u0435. \u041d\u043e \u0440\u0430\u0437 \u0443\u0436 \u043e\u0431\u0435\u0449\u0430\u043b \u0432\u0442\u043e\u0440\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u2026 \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u043c\u0435\u043d\u044f \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u0438\u043b \u043f\u043e\u0434\u0445\u043e\u0434 \u0441 docker events, \u0437\u0430\u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f. \u0414\u0443\u043c\u0430\u044e, \u043e\u043d \u0435\u0449\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<p>  \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0440\u0435\u0448\u0438\u043b \u0442\u0430\u043a.<br \/>  \u041a\u043e\u043b\u044c \u0441\u043a\u043e\u0440\u043e \u043c\u043d\u0435 \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c vis \u0447\u0435\u0440\u0435\u0437 reverse proxy, \u0430 mqtt \u044f \u0437\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u043c\u043e\u0433\u0443 \u0432\u0437\u044f\u0442\u044c \u00ab\u0438\u0437\u0432\u043d\u0435\u00bb \u043a\u0430\u043a \u0441\u0435\u0440\u0432\u0438\u0441, VPS \u0434\u043b\u044f \u044d\u0442\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043d\u0435 \u0438 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d. \u0412\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u0438 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e OTA \u044f \u043c\u043e\u0433\u0443 \u0438 \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433, \u0431\u043b\u0430\u0433\u043e \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c.<\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443.<\/p>\n<p>  Mqtt \u0432\u0437\u044f\u043b \u043d\u0430 wqtt.ru. TLS \u0435\u0441\u0442\u044c (\u043f\u0430\u0440\u043e\u043b\u0438 \u0448\u043b\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435). \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u0430\u044f (10ms \u043f\u0440\u043e\u0442\u0438\u0432 80ms \u0443 mymqtthub). \u0422\u043e\u043f\u0438\u043a\u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0430 &#8216;$device\/&lt;\u0431\u0435\u0437\u0443\u043c\u043d\u044b\u0439 ID&gt;\/events&#8217; (\u043a\u0430\u043a \u0443 \u042f\u043d\u0434\u0435\u043a\u0441\u0430) \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f. \u0422.\u0435. \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0447\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0441\u043a\u043e\u0447\u0438\u0442\u044c \u043a\u0443\u0434\u0430-\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u0440\u043d\u043e. \u0426\u0435\u043d\u0430 \u043a\u043e\u043f\u0435\u0435\u0447\u043d\u0430\u044f (300 \u0440\u0443\u0431 \u0432 \u0433\u043e\u0434).<\/p>\n<p>  Firmware \u0434\u043b\u044f OTA \u0432\u044b\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u044e \u043d\u0430 \u0438\u043c\u0435\u044e\u0449\u0438\u0439\u0441\u044f \u043d\u0430 \u0445\u043e\u0441\u0442\u0438\u043d\u0433.<\/p>\n<p>  \u0414\u043e\u0441\u0442\u0443\u043f \u043a vis \u2013 \u0432\u0441\u0435-\u0442\u0430\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 Zerotier. \u0423\u0436 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e. \u0410 \u0435\u0441\u043b\u0438 \u0438\u0445 \u0438 \u0441\u043b\u043e\u043c\u0430\u044e\u0442, \u0442\u0430\u043a \u0432\u0440\u044f\u0434 \u043b\u0438 \u0440\u0430\u0434\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c CO2 \u0443 \u043c\u0435\u043d\u044f \u0434\u043e\u043c\u0430. \u0418 \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0435 \u043f\u0440\u043e\u0438\u0437\u043e\u0439\u0434\u0435\u0442, \u044d\u0442\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u0441\u0442\u0430\u043d\u0435\u0442 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u043c, \u0447\u0435\u043c \u0435\u0441\u043b\u0438 \u043b\u043e\u043c\u0430\u043d\u0443\u0442 \u043c\u0435\u043d\u044f \u043b\u0438\u0447\u043d\u043e.<\/p>\n<p>  \u0412\u0441\u0435 \u043a\u0440\u0430\u0441\u0438\u0432\u043e, \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u0435\u0437 \u0441\u0431\u043e\u0435\u0432, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043d\u0435\u0441\u0442\u0438 \u043b\u0435\u0433\u043a\u043e, \u043b\u0438\u0448\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043d\u0443\u0436\u0435\u043d \u0443\u0445\u043e\u0434, \u043d\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c, \u044f \u0434\u043e\u0432\u043e\u043b\u0435\u043d.<\/p><\/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\/post\/505412\/\"> https:\/\/habr.com\/ru\/post\/505412\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/505412\/\">\n<h2>\u0412\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435<\/h2>\n<p>  <a href=\"https:\/\/habr.com\/ru\/post\/504716\/\">\u0412 \u043f\u0435\u0440\u0432\u043e\u0439 \u0447\u0430\u0441\u0442\u0438<\/a> \u044f \u043f\u0438\u0441\u0430\u043b \u043e \u043f\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u043a\u0430\u043a \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0445\u043e\u0442\u0435\u043b\u043a\u0438. \u0412 \u0438\u0442\u043e\u0433\u0435 \u044f \u0440\u0435\u0448\u0438\u043b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c OpenVPN, \u043d\u043e, \u0432\u0441\u0432\u044f\u0437\u0438 \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u0448\u0438\u043b \u0432\u0441\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432 Docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u044d\u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043d\u0435 \u0442\u0430\u043a-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e.<\/p>\n<p>  \u0421\u0440\u0430\u0437\u0443 \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043f\u043e\u0442\u043e\u043c \u044f \u043e\u043f\u044f\u0442\u044c \u0432\u0441\u0435 \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u043b, \u0432 \u0438\u0442\u043e\u0433\u0435 \u043e\u0442\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u043e\u0442 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e VPS. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0441\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u0440\u044f\u0434\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0445 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445, \u043e \u043a\u043e\u0438\u0445 \u0438 \u043f\u043e\u0439\u0434\u0435\u0442 \u0440\u0435\u0447\u044c.  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-304849","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304849","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=304849"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/304849\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=304849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=304849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=304849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}