{"id":319972,"date":"2021-03-21T09:00:18","date_gmt":"2021-03-21T09:00:18","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=319972"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=319972","title":{"rendered":"\u0414\u043e\u043c\u0430\u0448\u043d\u0438\u0439 DPI, \u0438\u043b\u0438 \u043a\u0430\u043a \u0431\u043e\u0440\u043e\u0442\u044c\u0441\u044f \u0441 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u043c \u0435\u0433\u043e \u0436\u0435 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438"},"content":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b4b\/293\/0ab\/b4b2930ab6cbc77bd63b414c1235b359.jpg\" width=\"1332\" height=\"850\"><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u0447\u0435\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<\/h2>\n<p>\u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u0442\u0435\u0440\u043f\u0435\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0420\u043e\u0441\u041a\u043e\u043c\u041d\u0430\u0434\u0437\u043e\u0440\u0430 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0430\u0439\u0442\u0430\u043c &#8212; \u043d\u043e \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0443\u0441\u0442\u0430\u043b, \u0438 \u043d\u0430\u0447\u0430\u043b \u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e, \u0438 \u0431\u044b\u0441\u0442\u0440\u043e, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u043e\u043c \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043a \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&#8230; \u0425\u043e\u0447\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0446\u0435\u043b\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u043b\u0430\u0441\u044c.<\/p>\n<h2>\u041a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f?<\/h2>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435, \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u0440\u0430\u0442\u043a\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044e \u0441\u0430\u043c\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u0438\u0445 \u043c\u0438\u043d\u0443\u0441\u044b:<\/p>\n<ol>\n<li>\n<p>\u0417\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 VPN-\u0442\u0443\u043d\u043d\u0435\u043b\u044c \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438 &#8212; \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442, TOR. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 TOR-\u043e\u043c \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c, \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0420\u043e\u0441\u041a\u043e\u043c\u041d\u0430\u0434\u0437\u043e\u0440 \u0443 \u043d\u0430\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0432\u0441\u0435\u0439 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u043e\u0441\u0441\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430 (\u0438\u043b\u0438 &#171;\u043f\u0438\u043d\u0433&#187;) \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0430\u0434\u0430\u0442\u044c. \u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c \u043f\u043b\u0430\u0441\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>&#171;\u0413\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439&#187; \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0434\u0451\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043d\u043e \u0447\u0430\u0441\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR. \u0421\u043f\u0438\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/reestr.rublacklist.net\/article\/api\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>. \u041c\u0438\u043d\u0443\u0441\u044b &#8212; \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u0441\u043f\u0438\u0441\u043a\u0438, \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0451 \u0436\u0435 \u043d\u0430\u0442\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043e\u0434\u0438\u043d \u0438\u0437 \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041d\u043e \u043c\u043e\u0436\u043d\u043e \u043b\u0443\u0447\u0448\u0435!<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 &#171;\u0447\u0451\u0440\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0438&#187;, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 DPI-\u0441\u043e\u0444\u0442\u0430. \u042f, \u0432 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c, \u043f\u0440\u043e &#171;\u0434\u044b\u0440\u044b&#187; \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 DNS, \u0438\u043b\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432), \u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u043e <a href=\"https:\/\/github.com\/ValdikSS\/GoodbyeDPI\" rel=\"noopener noreferrer nofollow\">GoodbyeDPI<\/a> \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e <a class=\"mention\" href=\"\/users\/valdikss\">@ValdikSS<\/a>. \u0421\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 &#8212; \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0435\u0437\u0434\u0435. \u0418 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u0445\u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0420\u043e\u0441\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043a\u043e\u0440\u0435\u0435 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0436\u0438\u0437\u043d\u044c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c, \u0447\u0435\u043c \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0435&#8230;<\/p>\n<\/li>\n<li>\n<p>&#8230;\u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 DPI \u0434\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 DPI! \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c &#171;\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e&#187;, \u043d\u043e \u0431\u0435\u0437\u043e \u0432\u0441\u044f\u043a\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041c\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b \u043b\u0438 \u043e\u043d \u043d\u0430\u043c \u0447\u0442\u043e-\u0442\u043e, \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u0438\u0431\u043e \u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0432\u0448\u0435\u043c\u0443, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR. \u0412\u0441\u0451 \u0435\u0449\u0451 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR, \u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043a\u043e\u043b\u044c \u0443\u0433\u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438!<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c. \u0418 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c NGINX.<\/p>\n<p>\u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0438\u0434\u0435\u044f \u0431\u044b\u043b\u0430 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0430 Squid-\u043e\u0432\u0441\u043a\u0438\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c HTTPS Peek and Splice, \u043d\u043e \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e.<\/p>\n<h2>\u0422\u0430\u043a \u0432\u0435\u0434\u044c NGINX &#8212; \u044d\u0442\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440, \u0430 \u043d\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f DPI?<\/h2>\n<p>NGINX &#8212; \u044d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0438 \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 &#8212; \u043b\u0438\u0448\u044c \u0432\u0435\u0440\u0445\u0443\u0448\u043a\u0430 \u0430\u0439\u0441\u0431\u0435\u0440\u0433\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u0435\u043d, \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u043b\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c.<\/p>\n<p>\u0418 \u0441\u0430\u043c\u044b\u043c \u043b\u0443\u0447\u0448\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c NGINX \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 OpenResty &#8212; \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e \u0432\u0441\u0435\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c NGINX-\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Lua.<\/p>\n<p>\u041c\u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0437\u0440\u0430\u0437\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 NGINX \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 &#171;\u0438\u0437\u043a\u0430\u0440\u043e\u0431\u043a\u0438&#187; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0438\u043d\u0433\u0430 \u043d\u0430 JavaScript (njs), \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0430\u0432, \u043d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, OpenResty \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0435\u0433\u043e API \u0438\u043c\u0435\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, OpenResty \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 LuaJit \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 FFI, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c C-\u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 Lua-\u043c\u0438\u0440\u0430 &#8212; \u0438 \u044d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f njs \u0434\u0430\u0436\u0435 \u0438 \u043d\u0435 \u0441\u043d\u0438\u043b\u0430\u0441\u044c. \u0412\u043e \u0432\u0441\u044f\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e&#8230;<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, NGINX \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 &#171;\u0441\u044b\u0440\u043e\u0439&#187; TCP-\u0442\u0440\u0430\u0444\u0438\u043a (\u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 UDP \u0442\u043e\u0436\u0435, \u043d\u043e \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b &#171;DPI&#187; \u0442\u043e\u043b\u044c\u043a\u043e TCP).<\/p>\n<h2>\u041e \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h2>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0434\u043e\u043c\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 4G-\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043e\u0442 \u041c\u0435\u0433\u0430\u0444\u043e\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u041c\u0435\u0433\u0430\u0444\u043e\u043d\u0430.<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0441\u0451 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435. \u0417\u0434\u0435\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c NGINX \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 stream \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043f\u043e\u0440\u0442\u0443&#8230; \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 40443. \u041d\u043e \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 nginx \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c, \u0447\u0442\u043e \u0442\u0443\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Lua.<\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 80 \u0438 443 \u043f\u043e\u0440\u0442\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 40443 \u043f\u043e\u0440\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 iptables \u0438 \u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b REDIRECT. \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043e\u043a\u0435\u0442\u0430 \u043e\u043f\u0446\u0438\u044e SO_ORIGINAL_DST, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0438 \u043f\u043e\u0440\u0442, \u043a\u0443\u0434\u0430 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f, \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a iptables \u043d\u0430\u0434 \u043d\u0438\u043c \u0437\u0432\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0438\u0437\u0434\u0435\u0432\u0430\u043b\u0441\u044f, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0432 destination&#8230; \u041a\u0445\u043c, \u044f \u043e\u0442\u0432\u043b\u0451\u043a\u0441\u044f. \u042d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 getsockopt&#8230; \u041f\u0440\u0430\u0432\u0434\u0430 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 C-\u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f nginx.<\/p>\n<p>\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TPROXY, \u0438 \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c NGINX \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 SO_TRANSPARENT \u0441\u043e\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a \u043f\u0440\u044f\u043c\u043e\u043c\u0443 \u043f\u0430\u0442\u0447\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 NGINX-\u0430 \u0438 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 REDIRECT.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442&#8230; \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, rutracker.org.<\/p>\n<p>&#8230;\u0418 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043f\u043e HTTP \u0438\u043b\u0438 HTTPS. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e HTTP \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0432\u0441\u0451 \u0436\u0435 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0441\u0430\u0439\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0435\u0433\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 HTTP \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430.<\/p>\n<h2>HTTP &#8212; \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c http:\/\/rutracker.org. \u0418 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0441 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0430 http:\/\/m.megafonpro.ru\/rkn, \u0433\u0434\u0435 \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u0443\u0441\u043b\u0443\u0436\u043b\u0438\u0432\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0447\u0442\u043e, \u043c\u043e\u043b, \u0442\u0430\u043a \u0438 \u0442\u0430\u043a, \u0441\u0430\u0439\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u0440\u043e\u0441\u0438\u043c \u0438\u0437\u0432\u0438\u043d\u0438\u0442\u044c, \u0430 \u043f\u043e\u043a\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0440\u0435\u043a\u043b\u0430\u043c\u0443.<\/p>\n<p>\u0414\u0430, \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b 307 Temporary Redirect \u0441 Location \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u044d\u0442\u043e &#8212; 307 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u0441 Location \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c http:\/\/m.megafonpro.ru\/rkn.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 16 \u043a\u0431\u0430\u0439\u0442, \u043d\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435), \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u043d\u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0451\u043c \u044d\u0442\u043e\u0442 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 &#8212; \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<ol>\n<li>\n<p>\u0421\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430\u0434\u043e \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0434\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0435\u043e\u0442\u043f\u0440\u0430\u0432\u044f\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e &#8212; \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u043d\u043e \u0432\u0435\u0440\u043d\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432 99% \u0441\u043b\u0443\u0447\u0430\u0435\u0432. \u041f\u0440\u0430\u0432\u0434\u0430, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0438 \u0432\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0442\u043e \u0442\u0443\u0442 \u0431\u0435\u0434\u0430&#8230; \u041f\u0440\u0438\u043b\u0435\u0442\u0438\u0442 \u043f\u043e \u0438\u0442\u043e\u0433\u0443 \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#8212; \u043e\u0434\u0438\u043d &#8212; \u0442\u043e\u0442 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442\u0432\u0435\u0442, \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 &#8212; \u0441\u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u0418 \u0443\u0437\u043d\u0430\u0442\u044c \u043c\u044b \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c. \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e HTTP \u0431\u0435\u0437 SSL \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u043c\u0435\u043d\u044c\u0448\u0435, \u043f\u0440\u0430\u0432\u0434\u0430? =)<\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430 \u043d\u0435\u0442\u0443, \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u0430\u043b\u044c\u0448\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a, \u043d\u0435 \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u044f\u0441\u044c \u0432 \u043d\u0435\u0433\u043e.<\/p>\n<h2>HTTPS \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e TLSv1.2 &#8212; \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435<\/h2>\n<p>\u0421 SSL\/TLS \u0432\u0441\u0451 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435&#8230; \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438. \u041f\u0435\u0440\u0435\u0434 \u043b\u044e\u0431\u044b\u043c HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c Handshake, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u043d\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0442\u0430\u043a\u0438 \u0443\u0448\u0451\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<p>\u041c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c https:\/\/rutracker.org \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435&#8230; \u041e\u0448\u0438\u0431\u043a\u0443. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430, \u0431\u0435\u0434\u0430-\u0431\u0435\u0434\u0430&#8230;<\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0430\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442&#8230; \u0418 \u0447\u0442\u043e \u0436\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c? CN=megafon.ru. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043a\u0440\u043e\u043c\u0435 megafon.ru, \u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441 CN=megafon.ru &#8212; \u043d\u0430\u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442, \u0438 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0443\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0438\u0441\u044c, \u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 SNI &#8212; \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e (\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439, \u043c\u044b \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u044d\u043f\u043e\u0445\u0443 IE6, \u043e\u043d\u0430 \u0443\u0448\u043b\u0430 \u0438 \u0441\u043b\u0430\u0432\u0430 \u0431\u043e\u0433\u0443) \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043c\u0435\u043d, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 ClientHello. \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u0441\u0430\u043c NGINX \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 &#8212; \u043c\u043e\u0434\u0443\u043b\u044c ssl_preread \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c. \u041d\u0443 \u0430 Lua-\u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0446\u0435\u043b\u0435\u0439&#8230;<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c? \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 HTTP &#8212; \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 ClientHello) \u0438 \u0436\u0434\u0451\u043c \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0447\u0442\u043e SNI \u043d\u0435 megafon.ru, \u043f\u0430\u0440\u0441\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u0432\u0448\u0435\u043c\u0443 \u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0438 \u043a OpenSSL \u0434\u043b\u044f Lua), \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &#8212; \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<p>\u0418 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 TLSv1.3, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0430\u043c\u044b\u0432\u0430\u0435\u0442&#8230;<\/p>\n<h2>TLSv1.3 \u043d\u0430\u043d\u043e\u0441\u0438\u0442 \u043e\u0442\u0432\u0435\u0442\u043d\u044b\u0439 \u0443\u0434\u0430\u0440<\/h2>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 TLSv1.3 SNI \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0425\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 SNI \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0438 \u0441\u0430\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 TLS-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a IP \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0436\u0435. \u0412\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435&#8230;<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u0438 \u043f\u043e TLSv1.3, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 TLSv1.3. \u0410 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&#8230;<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u0434\u0443\u043c\u0430\u043b \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0442\u0447\u0438\u0442\u044c ClientHello, \u0443\u0431\u0438\u0440\u0430\u044f \u0438\u0437 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 TLSv1.3, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u0430\u0442\u0430\u043a\u0443 \u043d\u0430 downgrade \u0434\u043e TLSv1.2, \u043d\u043e \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 TLSv1.3. \u0412 \u043d\u0451\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0430\u0436 \u0414\u0412\u0410 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0434\u0430\u0443\u043d\u0433\u0440\u0435\u0439\u0434\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043b\u043e\u0445\u043e\u0439.<\/p>\n<p>&#8230;\u0418 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a \u044d\u043a\u0441\u0442\u0440\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u0430\u043c. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u043c, \u0438 \u043e\u043d \u043f\u043e \u0441\u0443\u0442\u0438 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u0442\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 peek and splice \u0443 Squid-\u0430. <\/p>\n<p>\u041c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c tls-handshake. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441 CN=megafon.ru? \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442. \u041d\u0435\u0442? \u0417\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u0418 \u043d\u0430\u043c \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 &#8212; \u0434\u0430 \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u043c\u044b \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u043e\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0443\u0441\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c eSNI, \u0442\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u044b \u043a \u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e SNI \u0443 \u043d\u0435\u0433\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u0414\u0430 \u0438, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0442\u0430\u043c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c-\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c?<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c? \u041b\u0443\u0447\u0448\u0435\u0435 \u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0442\u043e \u044f \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b &#8212; \u044d\u0442\u043e SOCKS5 \u043f\u0440\u043e\u043a\u0441\u0438. \u041f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u0440\u043e\u0449\u0435 \u043d\u0435\u043a\u0443\u0434\u0430, \u043a \u043d\u0435\u043c\u0443 \u0435\u0441\u0442\u044c \u0443\u0434\u043e\u0431\u043d\u0430\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0447\u0443\u0442\u044c \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c &#8212; \u0438 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0412\u0434\u043e\u0431\u0430\u0432\u043e\u043a, SOCKS5 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 Tor \u0438 SSH. \u041f\u043e\u0434\u043d\u044f\u0442\u044c SOCKS5-\u0441\u0435\u0440\u0432\u0435\u0440 &#8212; \u0434\u0435\u043b\u043e \u043f\u044f\u0442\u0438 \u043c\u0438\u043d\u0443\u0442.<\/p>\n<h2>\u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0430\u0439\u0442\u043e\u0432 \u0438 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0431\u043e\u043d\u0443\u0441<\/h2>\n<p>\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u044f \u043d\u0430\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 linkedin.com. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438 \u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u044f \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u043b \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043e\u0442\u0432\u0435\u0442\u0430, \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0445\u043e\u0434\u0438\u043b \u0432 \u0442\u0430\u0439\u043c\u0430\u0443\u0442. \u042f \u0440\u0435\u0448\u0438\u043b, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0438\u0442\u0441\u044f, \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0442\u043e\u0436\u0435 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 VPN &#8212; \u0445\u0443\u0436\u0435 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<p>\u041a\u0430\u043a\u043e\u0432\u043e \u0436\u0435 \u0431\u044b\u043b\u043e \u043c\u043e\u0451 \u0443\u0434\u0438\u0432\u043b\u0435\u043d\u0438\u0435, \u043a\u043e\u0433\u0434\u0430 \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u043e\u0435 \u0436\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0438 \u0447\u0435\u0440\u0435\u0437 VPN. \u041f\u0440\u0438\u0447\u0451\u043c, \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0447\u0435\u0440\u0435\u0437 VPN IPv4 \u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u043b\u0441\u044f, \u0430 \u043f\u043e IPv6 \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0441\u0451 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e.<\/p>\n<p>\u0422\u0443\u0442 \u044f \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043b, \u0447\u0442\u043e \u0443 SOCKS5 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u0440\u0435\u0436\u0438\u043c\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c\u0443 \u0445\u043e\u0441\u0442\u0443 &#8212; \u043f\u043e IP \u0438 \u043f\u043e \u0445\u043e\u0441\u0442\u0443. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (Hostname \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 SNI):<\/p>\n<p>direct IP =&gt; direct Hostname =&gt; socks5 IP =&gt; socks5 Hostname<\/p>\n<p>\u0421 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u043c \u043d\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0432 2 \u0441\u0435\u043a\u0443\u043d\u0434\u044b. \u0412 \u0447\u0451\u043c \u0441\u043c\u044b\u0441\u043b? \u0415\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u043c\u0430\u0448\u0438\u043d\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442 NGINX \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f IPv6-capable, \u0430 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0435\u0442, \u0442\u043e \u043c\u044b \u0441\u043c\u043e\u0436\u0435\u043c \u0441\u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 IPv6, \u043f\u0440\u0438 \u0442\u043e\u043c, \u0447\u0442\u043e \u043a\u043b\u0438\u0435\u043d\u0442 \u0431\u0443\u0434\u0435\u0442 \u0434\u0443\u043c\u0430\u0442\u044c \u0447\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e IPv4. \u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438 \u0441 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0451\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438?<\/h2>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c &#8212; \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0438 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443. \u041d\u043e, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u0434\u0430\u0436\u0435 \u043e\u043d\u0438 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b. \u041f\u043e\u0441\u043b\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0447\u0442\u043e CPU, \u0447\u0442\u043e RAM \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u043d\u0435\u0437\u0430\u043c\u0435\u0442\u043d\u044b\u043c. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, Netgear R7000 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u043e\u0449\u043d\u0430\u044f \u043c\u0430\u0448\u0438\u043d\u043a\u0430 &#8212; \u0434\u0432\u0443\u0445\u044f\u0434\u0435\u0440\u043d\u0438\u043a \u0441 1 GHz \u044f\u0434\u0440\u0430\u043c\u0438 \u0438 256 \u041c\u0411 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043a\u0438 &#8212; \u043d\u043e \u043e\u043d \u0434\u0430\u0436\u0435 \u043d\u0435 \u043d\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u043d\u0430 10% \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f (\u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0441\u0451\u0440\u0444\u0438\u043d\u0433\u0430, \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0432\u0438\u0434\u0435\u043e \u043d\u0430 YouTube). \u041f\u0440\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0441\u043f\u0438\u0434\u0442\u0435\u0441\u0442\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 5% CPU. \u0421\u0430\u043c\u0443\u044e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0441\u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e \u0441\u0430\u0439\u0442 \u043f\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u044f t.co (<a href=\"https:\/\/speed.gulag.link\/\" rel=\"noopener noreferrer nofollow\">https:\/\/speed.gulag.link\/<\/a>) &#8212; \u0432\u043e\u0442 \u0442\u0430\u043c \u044f\u0434\u0440\u0430 \u043d\u0430\u043f\u0440\u044f\u0433\u0430\u044e\u0442\u0441\u044f \u0434\u043e 80% \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u044f\u0434\u0440\u0435 (\u0438 \u043e\u043a\u043e\u043b\u043e 25% \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c), \u043d\u043e \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0442\u0430\u043a \u0438 \u043d\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u044e\u0442 100%.<\/p>\n<h2>\u0418\u0442\u0430\u043a, \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435 &#8212; \u0447\u0442\u043e \u043d\u0430\u043c \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f?<\/h2>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0436\u0435\u043b\u0435\u0437\u0430 \u043f\u043e\u0434\u043e\u0439\u0434\u0451\u0442 \u043f\u043e\u0447\u0442\u0438 \u0447\u0442\u043e \u0432\u0441\u0451 \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e, \u043d\u0430 \u0447\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Linux. \u0412 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e \u044d\u0442\u043e \u0432\u0441\u0451 \u043d\u0430 Netgear R7000 \u0441 ARM-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c \u0432\u043d\u0443\u0442\u0440\u0438, \u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0439 \u043f\u0440\u043e\u0448\u0438\u0432\u043a\u043e\u0439 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u044f\u0434\u0440\u0430 \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c 2.6.36. \u0412 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u043c Linux-\u0435 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u044f\u0434\u0440\u0430 \u0445\u043e\u0442\u044f \u0431\u044b 2.6.32.<\/p>\n<p>\u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435, \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c NGINX\/OpenResty \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432. \u042f \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u043b \u043f\u0440\u044f\u043c\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u0435 &#8212; \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043d\u043e \u043d\u0435 \u0442\u0430\u043a \u0447\u0442\u043e\u0431\u044b \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0435.<\/p>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u043d\u0443\u0436\u043d\u043e:<\/p>\n<ol>\n<li>\n<p>OpenResty &#8212; \u044d\u0442\u043e NGINX \u0441 LuaJit \u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 Lua \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438. \u042f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043b \u0440\u0435\u043b\u0438\u0437\u043d\u044b\u0439 \u0442\u0430\u0440\u0431\u043e\u043b\u043b \u0438\u0437 \u0438\u0445 <a href=\"https:\/\/openresty.org\/en\/download.html\" rel=\"noopener noreferrer nofollow\">\u0440\u0430\u0437\u0434\u0435\u043b\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/fffonion\/lua-resty-openssl\" rel=\"noopener noreferrer nofollow\">lua-resty-openssl<\/a> \u0438 \u0435\u0433\u043e C-\u043c\u043e\u0434\u0443\u043b\u044c \u043a NGINX <a href=\"https:\/\/github.com\/fffonion\/lua-resty-openssl-aux-module\/\" rel=\"noopener noreferrer nofollow\">lua-resty-openssl-aux-module<\/a>. \u041d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438 \u0440\u0430\u0437\u0431\u043e\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0432 SSL-\u0441\u0435\u0441\u0441\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0439 \u0441\u0430\u043c\u043e\u043f\u0438\u0441\u043d\u044b\u0439 C-\u043c\u043e\u0434\u0443\u043b\u044c \u043a NGINX \u0438 Lua-\u0431\u0438\u043d\u0434\u0438\u043d\u0433 <a href=\"https:\/\/github.com\/Evengard\/lua-resty-getorigdest-module\" rel=\"noopener noreferrer nofollow\">lua-resty-getorigdest-module<\/a> \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 IP \u0438 \u043f\u043e\u0440\u0442\u0435 \u0442\u043e\u0433\u043e, \u043a\u0443\u0434\u0430 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442.<\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/github.com\/iryont\/lua-struct\" rel=\"noopener noreferrer nofollow\">lua-struct<\/a> \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 (\u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043f\u043e\u0441\u043b\u0435 ServerHello).<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0439 \u0444\u043e\u0440\u043a SOCKS5 Lua-\u043a\u043b\u0438\u0435\u043d\u0442\u0430 <a href=\"https:\/\/github.com\/Evengard\/lua-resty-socks5\" rel=\"noopener noreferrer nofollow\">lua-resty-socks5<\/a> \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e <a class=\"mention\" href=\"\/users\/starius\">@starius<\/a>, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 SOCKS5 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0445\u043e\u0441\u0442\u043d\u0435\u0439\u043c\u0443, \u043d\u043e \u0438 \u043f\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0443.<\/p>\n<\/li>\n<li>\n<p>SOCKS5 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 &#8212; \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, socks-\u043f\u0440\u043e\u043a\u0441\u0438 TOR-\u0430, \u043b\u0438\u0431\u043e \u043e\u0431\u044b\u043a\u043d\u043e\u0432\u0435\u043d\u043d\u044b\u0439 <code>ssh -D<\/code>. \u0414\u043b\u044f VPN-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 &#8212; \u043d\u0430\u0434\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u043d\u0430 \u0441\u0430\u043c\u043e\u043c VPN-\u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0438 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 socks-\u043f\u0440\u043e\u043a\u0441\u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438.<\/p>\n<\/li>\n<\/ol>\n<p>\u0422\u0430\u043a\u0436\u0435 \u044f \u0438\u0441\u0445\u043e\u0436\u0443 \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0435 \u0432\u044b \u044d\u0442\u043e \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435, \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u0432\u0430\u0448 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 &#8212; \u0432 \u043c\u043e\u0451\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e \u0440\u043e\u0443\u0442\u0435\u0440. \u041e\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0437\u0430\u0432\u0435\u0441\u0442\u0438\u0441\u044c \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043d\u0430 \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442\u0435, \u043d\u043e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u0441\u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 iptables. \u0422\u0430\u043a\u0436\u0435, \u0438\u0441\u0445\u043e\u0436\u0443 \u0438\u0437 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0442\u0440\u0430\u0444\u0438\u043a \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0441 br0 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430.<\/p>\n<h2>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0438 \u0441\u0431\u043e\u0440\u043a\u0430<\/h2>\n<p>\u041f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u044e, \u0447\u0442\u043e \u0441\u0431\u043e\u0440\u043a\u0443 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u043c \u0432 \/home\/username\/build. \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u043c \u0432 \/opt\/nginxdpi<\/p>\n<ol>\n<li>\n<p>\u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0443\u0435\u043c \u0442\u0430\u0440\u0431\u043e\u043b\u043b openresty, \u0434\u0435\u043b\u0430\u0435\u043c git clone \u0432\u0441\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432\u044b\u0448\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f\u043c. \u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u044b\u0432\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 openresty-X.Y.Z.V \u0432 openresty.<\/p>\n<\/li>\n<li>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \/home\/username\/build\/openresty, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c:<\/p>\n<p><code>.\/configure --prefix=\/opt\/nginxdpi --with-cc=gcc \\ <br \/>    --add-module=\/home\/username\/build\/lua-resty-openssl-aux-module \\ <br \/>  --add-module=\/home\/username\/build\/lua-resty-openssl-aux-module\/stream \\ <br \/>  --add-module=\/home\/username\/build\/lua-resty-getorigdest-module\/src<\/code><\/p>\n<\/li>\n<li>\n<p>\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c <code>make -j4 &amp;&amp; make install<\/code>, \u0436\u0434\u0451\u043c \u043f\u043e\u043a\u0430 \u0432\u0441\u0451 \u0441\u043e\u0431\u0435\u0440\u0451\u0442\u0441\u044f&#8230;<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c: <\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"bash\">cp -r \/home\/username\/build\/lua-resty-getorigdest-module\/lualib\/* \/opt\/nginxdpi\/lualib\/  cp -r \/home\/username\/build\/lua-resty-openssl\/lib\/resty\/* \/opt\/nginxdpi\/lualib\/resty\/ cp -r \/home\/username\/build\/lua-resty-openssl-aux-module\/lualib\/* \/opt\/nginxdpi\/lualib\/ cp \/home\/username\/build\/lua-resty-socks5\/socks5.lua \/opt\/nginxdpi\/lualib\/resty\/ cp \/home\/username\/build\/lua-struct\/src\/struct.lua \/opt\/nginxdpi\/lualib\/<\/code><\/pre>\n<p>\u0413\u043e\u0442\u043e\u0432\u043e! \u041c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0442\u044c \u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e.<\/p>\n<h2>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0412\u0441\u044f \u043b\u043e\u0433\u0438\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435:<\/p>\n<details class=\"spoiler\">\n<summary>nginx.conf<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"lua\">user root; worker_processes auto;  events {     worker_connections 1024; }  stream {     preread_buffer_size 16k;     server {         listen 30443 so_keepalive=on;         tcp_nodelay on;         #error_log \/opt\/nginxdpi\/cfg\/nginx\/error.log info;         error_log off;          lua_socket_connect_timeout 2s;          ssl_preread on;         content_by_lua_block {             local prefer_hosts = false;             local prefer_socks_hosts = true;             local host = nil;                                  local socket = ngx.req.socket(true);             socket.socktype = \"CLIENT\";             local god = require(\"resty.getorigdest\");             local dest = god.getorigdest(socket);             local sni_name = ngx.var.ssl_preread_server_name;             ngx.log(ngx.DEBUG, dest);             ngx.log(ngx.DEBUG, sni_name);             local openssl = require(\"resty.openssl\");             openssl.load_modules();             local ngx_re = require(\"ngx.re\");             local cjson = require(\"cjson\");             local socks5 = require(\"resty.socks5\");             local struct = require(\"struct\");              local dests = ngx_re.split(dest, \":\");             local dest_addr = dests[1];             local dest_port = tonumber(dests[2]);              local connect_type_last = nil;              local socket_create_with_type = function(typename)                 local target = ngx.socket.tcp();                 target.socktype = typename;                 return target;             end              local socket_connect_dest = function(target)                 local ok = nil;                 local err = nil;                 if (prefer_hosts == true and host ~= nil) then                     ok, err = target:connect(host, dest_port);                     connect_type_last = \"host\";                     if (err ~= nil) then                         local socktype = target.socktype;                         target = socket_create_with_type(socktype);                         ok, err = target:connect(dest_addr, dest_port);                         connect_type_last = \"ip\";                     end                 else                     ok, err = target:connect(dest_addr, dest_port);                     connect_type_last = \"ip\";                     if (err ~= nil and host ~= nil) then                         local socktype = target.socktype;                         target = socket_create_with_type(socktype);                         ok, err = target:connect(host, dest_port);                         connect_type_last = \"host\";                     end                 end                 if (ok == nil and err == nil) then                     err = \"failure\";                 end                 return target, err;             end              local intercept = false;             local connected = false;             local upstream = socket_create_with_type(\"UPSTREAM\");              local bufsize = 1024*16;             local peek, err, partpeek = socket:receiveany(bufsize);              if (peek == nil and partpeek ~= nil) then                 peek = partpeek;             elseif (err ~= nil) then                 ngx.log(ngx.WARN, err);             end              if (dest_port == 80 or ngx.re.match(peek, \"(^GET \\\\\/)|(HTTP\\\\\/1\\\\.0[\\\\r\\\\n]{1,2})|(HTTP\\\\\/1\\\\.1[\\\\r\\\\n]{1,2})\") ~= nil) then                 local http_host_find, err = ngx.re.match(peek, \"[\\\\r\\\\n]{1,2}([hH][oO][sS][tT]:[ ]?){1}(?&lt;host&gt;[0-9A-Za-z\\\\-\\\\.]+)[\\\\r\\\\n]{1,2}\");                 local http_host = nil;                 if (http_host_find ~= nil and http_host_find[\"host\"] ~= false) then                     http_host = http_host_find[\"host\"];                 end                  if (http_host ~= nil and host == nil) then                     host = http_host;                 end                  upstream = socket_connect_dest(upstream);                  local ok, err = upstream:send(peek);                 if (err ~= nil) then                     ngx.log(ngx.WARN, err);                 end                 local data, err, partdata = upstream:receiveany(bufsize);                 if (data == nil and partdata ~= nil) then                     data = partdata;                 elseif (err ~= nil) then                     ngx.log(ngx.WARN, err);                 end                 if (data ~= nil) then                     local match = \"HTTP\/1.1 307 Temporary Redirect\\r\\nLocation: http:\/\/m.megafonpro.ru\/rkn\";                     local match_len = string.len(match);                     local extract = data:sub(1, match_len);                     if (match == extract) then                         upstream:close();                         upstream = socket_create_with_type(\"UPSTREAM\");                         intercept = true;                     else                         connected = true;                         local ok, err = socket:send(data);                         if (err ~= nil) then                             ngx.log(ngx.WARN, err);                         end                         peek = nil;                     end                 end             elseif (dest_port == 443 or sni_name ~= nil) then                 local serv_host = nil;                                  if (sni_name ~= nil and host == nil) then                     host = sni_name;                 end                                  local err = nil;                 upstream, err = socket_connect_dest(upstream);                 ngx.log(ngx.DEBUG, err);                                  local ok, err = upstream:send(peek);                 if (err ~= nil) then                     ngx.log(ngx.WARN, err);                 end                                  -- Parsing the ServerHello packet to retrieve the certificate                 local offset = 1;                 local data = \"\";                 local size = 0;                 local servercert = nil;                 upstream:settimeouts(2000, 60000, 1000);                 while (servercert == nil) do                     if (size == 0 or offset &gt;= size) then                         local data2, err, partdata = upstream:receiveany(bufsize);                         if (data2 ~= nil) then                             data = data .. data2;                         elseif (data2 == nil and partdata ~= nil) then                             data = data .. partdata;                         elseif (err ~= nil) then                             ngx.log(ngx.WARN, err);                             break;                         end                         size = data:len();                         ngx.log(ngx.DEBUG, \"UPSTREAM received for ServerHello certificate retrieval! \"..size);                     end                     ngx.log(ngx.DEBUG, offset);                     if (offset &lt; size) then                         local contenttype, version, length, subtype = struct.unpack(\"&gt;BHHB\", data, offset);                         if (contenttype ~= 22) then                             -- We got something other than handshake before we retrieved the cert, probably the server is sending the cert encrypted, fallback to legacy cert retrieval                             break;                         elseif (subtype ~= 11) then                             offset = offset + 5 + length;                         else                             local suboffset = offset + 5;                             local _, _, _, _, certslength, _, firstcertlength = struct.unpack(\"&gt;BBHBHBH\", data, suboffset);                             -- We need only the first cert, we don't care about the others in the chain                             local firstcert = data:sub(suboffset + 1 + 3 + 3 + 3, firstcertlength);                             servercert = firstcert;                         end                     end                 end                 upstream:settimeouts(2000, 60000, 60000);                                  local cert = nil;                 if (servercert ~= nil) then                     cert = openssl.x509.new(servercert, \"DER\");                     ngx.log(ngx.DEBUG, \"Cert retrieved from ServerHello peeking\");                 else                     -- We employ a legacy method of gathering the certificate, involving connecting to the server and doing a SSL handshake by ourselves                     local serv = socket_create_with_type(\"TLSCHECK\");                     local err = nil;                     serv, err = socket_connect_dest(serv);                      ngx.log(ngx.DEBUG, err);                     local session, err = serv:sslhandshake(false, sni_name, false, false);                     ngx.log(ngx.DEBUG, err);                     local sslsess, err = openssl.ssl.from_socket(serv);                     ngx.log(ngx.DEBUG, err);                     if (sslsess ~= nil) then                         cert = sslsess:get_peer_certificate();                         ngx.log(ngx.DEBUG, \"Cert retrieved from secondary handshake\");                     end                     serv:close();                 end                                  -- Parsing the certificate                 if (cert ~= nil) then                     local sub = cert:get_subject_name();                     local alt = cert:get_subject_alt_name();                      for k, obj in pairs(sub) do                         ngx.log(ngx.DEBUG, k..\" \"..cjson.encode(obj));                          if (serv_host == nil and k == \"CN\" and obj.blob:find(\"*\", 1, true) == nil) then                             serv_host = obj.blob;                         end                          if (k == \"CN\" and obj.blob == \"megafon.ru\" and (sni_name == nil or sni_name:find(\"megafon.ru\", 1, true) == nil)) then                             ngx.log(ngx.DEBUG, k..\" \"..obj.blob);                             upstream:close();                             upstream = socket_create_with_type(\"UPSTREAM\");                             intercept = true;                                                     end                     end                     for k, obj in pairs(alt) do                         ngx.log(ngx.DEBUG, k..\" \"..cjson.encode(obj));                          if (serv_host == nil and k == \"DNS\" and obj:find(\"*\", 1, true) == nil) then                             serv_host = obj;                         end                     end                 end                  if (serv_host ~= nil and host == nil) then                     host = serv_host;                 end                                  if (intercept ~= true) then                     connected = true;                     local ok, err = socket:send(data);                     if (err ~= nil) then                         ngx.log(ngx.WARN, err);                     end                     peek = nil;                 end             end              if (connected == false and intercept == false) then                 local err = nil;                 upstream, err = socket_connect_dest(upstream);                  if (err ~= nil) then                     intercept = true;                     upstream = socket_create_with_type(\"UPSTREAM\");                 end             end              if (intercept == true) then                 local ok, err = upstream:connect(\"192.168.120.1\", 45213);                 ngx.log(ngx.DEBUG, err);                 ok, err = socks5.auth(upstream);                 ngx.log(ngx.DEBUG, err);                  local ok = nil;                 local err = nil;                 if (prefer_socks_hosts == true and host ~= nil) then                     ok, err = socks5.connect(upstream, host, dest_port);                     connect_type_last = \"socks_host\";                     if (err ~= nil) then                         upstream = socket_create_with_type(\"UPSTREAM\");                         upstream:connect(\"192.168.120.1\", 45213);                         ok, err = socks5.auth(upstream);                         ok, err = socks5.connect_ip(upstream, dest_ip, dest_port);                         connect_type_last = \"socks_ip\";                     end                 else                     ok, err = socks5.connect_ip(upstream, dest_addr, dest_port);                     connect_type_last = \"socks_ip\";                     if (err ~= nil and host ~= nil) then                         upstream = socket_create_with_type(\"UPSTREAM\");                         upstream:connect(\"192.168.120.1\", 45213);                         ok, err = socks5.auth(upstream);                         ok, err = socks5.connect(upstream, host, dest_port);                         connect_type_last = \"socks_host\";                     end                 end                 ngx.log(ngx.DEBUG, err);             end              upstream:setoption(\"keepalive\", true);             upstream:setoption(\"tcp-nodelay\", true);             upstream:setoption(\"sndbuf\", bufsize);             upstream:setoption(\"rcvbuf\", bufsize);              ngx.log(ngx.INFO, \"RESULT: \"..tostring(host)..\"\/\"..dest_addr..\":\"..dest_port..\" intercept:\"..tostring(intercept)..\" connecttype:\"..connect_type_last);              local ok = false;              if (peek ~= nil and peek:len() &gt; 0) then                 ok, err = upstream:send(peek);                 if (err ~= nil) then                     ngx.log(ngx.WARN, err);                 end             else                 ok = true;             end              local pipe = function(src, dst)                 while true do                     local data, err, partial = src:receiveany(bufsize);                      local errs = nil;                     local ok = false;                     if (data ~= nil) then                         ok, errs = dst:send(data)                     elseif (data == nil and partial ~= nil) then                         ok, errs = dst:send(partial)                     elseif (err == 'closed') then                         ngx.log(ngx.WARN, src.socktype..\":\"..err);                         return;                     elseif (err ~= nil and err ~= \"timeout\") then                         ngx.log(ngx.WARN, src.socktype..\":\"..err);                     end                      if (errs == 'closed') then                         ngx.log(ngx.WARN, dst.socktype..\":\"..errs);                         return;                     elseif (errs ~= nil) then                         ngx.log(ngx.WARN, dst.socktypeerr..\":\"..errs);                     end                 end             end              if (ok ~= false) then                 local co_updown = ngx.thread.spawn(pipe, upstream, socket);                 local co_downup = ngx.thread.spawn(pipe, socket, upstream);                  ngx.thread.wait(co_updown);                 ngx.thread.wait(co_downup);             end              upstream:close();             ngx.flush(true);             socket:shutdown(\"send\");         }     } } <\/code><\/pre>\n<p><em>\u041c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c lua \u043a\u043e\u0434 \u043e\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0430, \u043d\u043e \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043b\u0435\u043d\u044c =)<\/em><\/p>\n<p><strong><em>\u0417\u0430\u043c\u0435\u043d\u0438\u0442\u0435 192.168.120.1 \u0438 45213 \u043d\u0430 \u0445\u043e\u0441\u0442 \u0438 \u043f\u043e\u0440\u0442 \u0432\u0430\u0448\u0435\u0433\u043e SOCKS5-\u0441\u0435\u0440\u0432\u0435\u0440\u0430!<\/em><\/strong><\/p>\n<\/div>\n<\/details>\n<p>\u0420\u0430\u0437\u043c\u0435\u0449\u0430\u0435\u043c \u0435\u0433\u043e \u0432 \/opt\/nginxdpi\/cfg\/nginx.conf<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0444\u0430\u0439\u043b \/opt\/nginxdpi\/cfg\/start.sh \u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>start.sh<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/sh \/opt\/nginxdpi\/bin\/openresty -c \/opt\/nginxdpi\/cfg\/nginx.conf iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 30443 iptables -t nat -A PREROUTING -i br0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 30443<\/code><\/pre>\n<p><strong><em>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e br0 &#8212; \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u044b!<\/em><\/strong><\/p>\n<\/div>\n<\/details>\n<p>\u0414\u0430\u0451\u043c start.sh \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 <code>chmod +x \/opt\/nginxdpi\/cfg\/start.sh<\/code>, \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u0434\u043e\u0431\u0440\u043e (\u043e\u0442 \u0440\u0443\u0442\u0430! \u0412 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0438 \u0431\u0435\u0437 \u0440\u0443\u0442\u0430, \u043d\u043e \u044f \u043d\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b&#8230;):<\/p>\n<p><code>\/opt\/nginxdpi\/cfg\/start.sh<\/code><\/p>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u0435\u0441\u044c \u0432\u0430\u0448 HTTP \u0438 HTTPS \u0442\u0440\u0430\u0444\u0438\u043a \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<h2>\u0427\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0449\u0451?<\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0449\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c, \u0440\u0430\u0437\u043d\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043a\u0430\u043a \u044f \u0443\u0436\u0435 \u043f\u0438\u0441\u0430\u043b, \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u043c \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0441\u043a\u043e\u0433\u043e \u0441\u0430\u0439\u0442\u0430 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043d\u0430\u0447\u043d\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c eSNI, \u0435\u0441\u0442\u044c \u0441\u043c\u044b\u0441\u043b \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0441\u0442\u044c &#8212; \u044d\u0442\u043e \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 OpenSSL.<\/p>\n<p>\u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f IPv6. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e&#8230; \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u043e IPv6 \u0442\u0440\u0430\u0444\u0438\u043a \u0441\u0435\u0439\u0447\u0430\u0441 \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0434\u043a\u043e (\u0435\u0441\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u0433\u0434\u0435-\u0442\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u0443\u0435\u0442\u0441\u044f).<\/p>\n<p>\u0412-\u0442\u0440\u0435\u0442\u044c\u0438\u0445, \u043e\u043f\u044f\u0442\u044c \u0442\u0430\u043a\u0438 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f UDP. \u0418 \u0435\u0441\u043b\u0438 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u044d\u0442\u0430\u043f\u0435 \u044d\u0442\u043e \u043d\u0435 \u0441\u0442\u043e\u043b\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e (\u043c\u0430\u043b\u043e \u0447\u0442\u043e \u043f\u043e UDP \u0441\u0435\u0439\u0447\u0430\u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f), \u0442\u043e \u0441 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c HTTP3\/QUIC \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0431\u0443\u0434\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e\u0439. \u041f\u0440\u0430\u0432\u0434\u0430 \u043a\u0430\u043a \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c QUIC \u044f \u043f\u043e\u043a\u0430 \u043f\u043e\u043d\u044f\u0442\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e, \u0434\u0430 \u0438 DTLS \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 TLS&#8230; \u0422\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u0445\u0432\u0430\u0442\u0430\u0442\u044c \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c. \u042d\u0442\u043e, \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0430\u043c\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430.<\/p>\n<h2>\u0418 \u0432 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435&#8230;<\/h2>\n<p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0433\u043e DPI. \u041f\u043e \u0441\u0443\u0442\u0438 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u0443\u044e TCP-\u0441\u0435\u0441\u0441\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u0435\u043c \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c &#171;\u043d\u0430 \u043b\u0435\u0442\u0443&#187; &#8212; \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043f\u043e \u0441\u0443\u0442\u0438, \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c pipe-\u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0421 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u0441\u043c\u044b\u0441\u043b\u0430 \u0432 \u0430\u043d\u0430\u043b\u0438\u0437\u0435 \u0441\u044b\u0440\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f SSL-handshake \u043d\u044b\u043d\u0447\u0435 \u043c\u0430\u043b\u043e, \u0430 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u043e\u043b\u044c\u0448\u0435&#8230;<\/p>\n<p>\u042d\u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0442\u0440\u0430\u0444\u0438\u043a &#8212; \u0437\u0430\u043a\u043e\u043d \u042f\u0440\u043e\u0432\u043e\u0439 \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440. \u041d\u0430\u0434\u0435\u044e\u0441\u044c \u044f \u043d\u0435 \u043e\u0442\u043a\u0440\u044b\u043b \u0441\u0435\u0439\u0447\u0430\u0441 \u044f\u0449\u0438\u043a \u041f\u0430\u043d\u0434\u043e\u0440\u044b&#8230; =)<\/p>\n<p>&#8230;\u0432\u0434\u0440\u0443\u0433 \u043a\u043e\u043c\u0443-\u0442\u043e \u0438\u0437 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u043d\u0430 DPI-\u0441\u043e\u0444\u0442\u0435 \u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0446\u0435\u043d\u0443 \u0442\u0430\u0440\u0438\u0444\u043e\u0432? =) \u041a\u0442\u043e \u0437\u043d\u0430\u0435\u0442.<\/p>\n<p>\u0421\u043a\u0430\u0436\u0443 \u0447\u0435\u0441\u0442\u043d\u043e, \u043c\u0435\u0441\u0442\u0430\u043c\u0438 \u043c\u043d\u0435 \u0431\u044b\u043b\u043e \u043b\u0435\u043d\u044c \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0440\u0430\u043d\u043d\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435. \u0415\u0441\u043b\u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u0442\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u0438\u0448\u0438\u0442\u0435, \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u044e \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u0442\u044c &#8212; \u043d\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u044f \u0441\u0438\u0436\u0443 \u0447\u0435\u0440\u0435\u0437 \u044d\u0442\u043e\u0442 DPI \u0441\u0435\u0439\u0447\u0430\u0441 \u0441\u0430\u043c, \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043e\u0441\u043e\u0431\u044b\u0445 \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u043b (\u0430 \u0442\u0435 \u0447\u0442\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u043b &#8212; \u043f\u043e\u0444\u0438\u043a\u0441\u0438\u043b).<\/p>\n<p>\u0416\u0435\u043b\u0430\u044e \u0443\u0434\u0430\u0447\u0438 \u0432 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432!<\/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\/post\/548110\/\"> https:\/\/habr.com\/ru\/post\/548110\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text_v2\" id=\"post-content-body\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<h2>\u0417\u0430\u0447\u0435\u043c \u0432\u0441\u0451 \u044d\u0442\u043e \u043d\u0443\u0436\u043d\u043e?<\/h2>\n<p>\u0414\u043e\u043b\u0433\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u044f \u0442\u0435\u0440\u043f\u0435\u043b \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0420\u043e\u0441\u041a\u043e\u043c\u041d\u0430\u0434\u0437\u043e\u0440\u0430 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u043c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0430\u0439\u0442\u0430\u043c &#8212; \u043d\u043e \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0443\u0441\u0442\u0430\u043b, \u0438 \u043d\u0430\u0447\u0430\u043b \u0434\u0443\u043c\u0430\u0442\u044c \u043a\u0430\u043a \u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u043b\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e, \u0438 \u0431\u044b\u0441\u0442\u0440\u043e, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0441 \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u043e\u043c \u0437\u0430\u043c\u043e\u0440\u043e\u0447\u0435\u043a \u043f\u043e\u0441\u043b\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438&#8230; \u0425\u043e\u0447\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0446\u0435\u043b\u044c \u0430\u043d\u043e\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435 \u0441\u0442\u0430\u0432\u0438\u043b\u0430\u0441\u044c.<\/p>\n<h2>\u041a\u0430\u043a\u0438\u0435 \u0432\u043e\u043e\u0431\u0449\u0435 \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f?<\/h2>\n<p>\u0412\u043e\u043e\u0431\u0449\u0435, \u044d\u0442\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0439. \u041a\u0440\u0430\u0442\u043a\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u044e \u0441\u0430\u043c\u044b\u0435 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u0438 \u0438\u0445 \u043c\u0438\u043d\u0443\u0441\u044b:<\/p>\n<ol>\n<li>\n<p>\u0417\u0430\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 VPN-\u0442\u0443\u043d\u043d\u0435\u043b\u044c \u043b\u0438\u0431\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438 &#8212; \u043a\u0430\u043a \u0432\u0430\u0440\u0438\u0430\u043d\u0442, TOR. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 TOR-\u043e\u043c \u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u044b\u0442\u044c, \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0440\u0430\u0434\u0430\u044e\u0442, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0420\u043e\u0441\u041a\u043e\u043c\u041d\u0430\u0434\u0437\u043e\u0440 \u0443 \u043d\u0430\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0430 \u0432\u0441\u0435\u0439 \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0420\u043e\u0441\u0441\u0438\u0438, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u0440\u0443\u0431\u0435\u0436\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430 (\u0438\u043b\u0438 &#171;\u043f\u0438\u043d\u0433&#187;) \u0431\u0443\u0434\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0441\u0442\u0440\u0430\u0434\u0430\u0442\u044c. \u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u0440\u0435\u0437\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c \u043f\u043b\u0430\u0441\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0438\u0433\u0440\u043e\u0432\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<\/li>\n<li>\n<p>&#171;\u0413\u0438\u0431\u0440\u0438\u0434\u043d\u044b\u0439&#187; \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0438\u0434\u0451\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e, \u043d\u043e \u0447\u0430\u0441\u0442\u044c IP-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR. \u0421\u043f\u0438\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0431\u0438\u0440\u0430\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/reestr.rublacklist.net\/article\/api\/\" rel=\"noopener noreferrer nofollow\">\u043e\u0442\u0441\u044e\u0434\u0430<\/a>. \u041c\u0438\u043d\u0443\u0441\u044b &#8212; \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u0441\u043f\u0438\u0441\u043a\u0438, \u0438 \u043a\u0430\u043a\u0438\u043c\u0438 \u0431\u044b \u043e\u043d\u0438 \u043d\u0435 \u0431\u044b\u043b\u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u0435\u0441\u0442\u044c \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0432\u0441\u0451 \u0436\u0435 \u043d\u0430\u0442\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u043e\u0434\u0438\u043d \u0438\u0437 \u043b\u0443\u0447\u0448\u0438\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u043c\u0444\u043e\u0440\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u043e\u043c \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439. \u041d\u043e \u043c\u043e\u0436\u043d\u043e \u043b\u0443\u0447\u0448\u0435!<\/p>\n<\/li>\n<li>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 &#171;\u0447\u0451\u0440\u043d\u043e\u0439 \u043c\u0430\u0433\u0438\u0438&#187;, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439 \u0441 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c\u0438 DPI-\u0441\u043e\u0444\u0442\u0430. \u042f, \u0432 \u043e\u0431\u0449\u0435\u043c \u0438 \u0446\u0435\u043b\u043e\u043c, \u043f\u0440\u043e &#171;\u0434\u044b\u0440\u044b&#187; \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 DNS, \u0438\u043b\u0438 \u043f\u0440\u043e\u043f\u0443\u0441\u043a \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432), \u0438, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043f\u0440\u043e <a href=\"https:\/\/github.com\/ValdikSS\/GoodbyeDPI\" rel=\"noopener noreferrer nofollow\">GoodbyeDPI<\/a> \u0443\u0432\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e <a class=\"mention\" href=\"\/users\/valdikss\">@ValdikSS<\/a>. \u0421\u0430\u043c\u044b\u0439 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043c\u0438\u043d\u0443\u0441 &#8212; \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u0430\u043b\u0435\u043a\u043e \u043d\u0435 \u0432\u0435\u0437\u0434\u0435. \u0418 \u0447\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435, \u0442\u0435\u043c \u0445\u0443\u0436\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0420\u043e\u0441\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0435\u0439 \u0441\u043a\u043e\u0440\u0435\u0435 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0436\u0438\u0437\u043d\u044c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430\u043c, \u0447\u0435\u043c \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0435&#8230;<\/p>\n<\/li>\n<li>\n<p>&#8230;\u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 DPI \u0434\u043b\u044f \u043e\u0431\u0445\u043e\u0434\u0430 DPI! \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u043c &#171;\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e&#187;, \u043d\u043e \u0431\u0435\u0437\u043e \u0432\u0441\u044f\u043a\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432. \u041c\u044b \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u0430, \u0434\u0435\u043b\u0430\u0435\u043c \u0432\u044b\u0432\u043e\u0434, \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b \u043b\u0438 \u043e\u043d \u043d\u0430\u043c \u0447\u0442\u043e-\u0442\u043e, \u0438 \u043d\u0430 \u044d\u0442\u043e\u043c \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u043b\u0438\u0431\u043e \u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0434\u0430\u043b\u044c\u0448\u0435 \u0442\u0440\u0430\u0444\u0438\u043a \u043a \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0432\u0448\u0435\u043c\u0443, \u043b\u0438\u0431\u043e \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR. \u0412\u0441\u0451 \u0435\u0449\u0451 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 VPN\/\u043f\u0440\u043e\u043a\u0441\u0438\/TOR, \u043d\u043e \u0443\u0436\u0435 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 \u0441\u043f\u0438\u0441\u043a\u043e\u0432, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u0438\u0438 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043a\u043e\u043b\u044c \u0443\u0433\u043e\u0434\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u043b\u043e\u0433\u0438\u043a\u0438!<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u0440\u043e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u043f\u043e\u0439\u0434\u0451\u0442 \u0440\u0435\u0447\u044c. \u0418 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u043c \u0432 \u044d\u0442\u043e\u043c NGINX.<\/p>\n<p>\u0412\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0438\u0434\u0435\u044f \u0431\u044b\u043b\u0430 \u0432\u0434\u043e\u0445\u043d\u043e\u0432\u043b\u0435\u043d\u0430 Squid-\u043e\u0432\u0441\u043a\u0438\u043c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u043c HTTPS Peek and Splice, \u043d\u043e \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u043b\u043e.<\/p>\n<h2>\u0422\u0430\u043a \u0432\u0435\u0434\u044c NGINX &#8212; \u044d\u0442\u043e \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440, \u0430 \u043d\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f DPI?<\/h2>\n<p>NGINX &#8212; \u044d\u0442\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0439 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u0438 \u0435\u0433\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 HTTP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 &#8212; \u043b\u0438\u0448\u044c \u0432\u0435\u0440\u0445\u0443\u0448\u043a\u0430 \u0430\u0439\u0441\u0431\u0435\u0440\u0433\u0430. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u043d \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u0435\u043d, \u0438\u043c\u0435\u0435\u0442 \u043c\u0430\u043b\u043e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c.<\/p>\n<p>\u0418 \u0441\u0430\u043c\u044b\u043c \u043b\u0443\u0447\u0448\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c NGINX \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0435\u043a\u0442 OpenResty &#8212; \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043a\u043e \u0432\u0441\u0435\u043c \u0430\u0441\u043f\u0435\u043a\u0442\u0430\u043c NGINX-\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 Lua.<\/p>\n<p>\u041c\u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u043e\u0437\u0440\u0430\u0437\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 NGINX \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 &#171;\u0438\u0437\u043a\u0430\u0440\u043e\u0431\u043a\u0438&#187; \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442\u0438\u043d\u0433\u0430 \u043d\u0430 JavaScript (njs), \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0430\u0432, \u043d\u043e, \u0432\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, OpenResty \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0437\u0432\u0438\u0442\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0435\u0433\u043e API \u0438\u043c\u0435\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u0430 \u0432\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, OpenResty \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 LuaJit \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 FFI, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c C-\u043c\u0435\u0442\u043e\u0434\u044b \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 Lua-\u043c\u0438\u0440\u0430 &#8212; \u0438 \u044d\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u0442\u0430\u043a\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f njs \u0434\u0430\u0436\u0435 \u0438 \u043d\u0435 \u0441\u043d\u0438\u043b\u0430\u0441\u044c. \u0412\u043e \u0432\u0441\u044f\u043a\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e&#8230;<\/p>\n<p>\u041f\u0440\u0438 \u044d\u0442\u043e\u043c, NGINX \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 &#171;\u0441\u044b\u0440\u043e\u0439&#187; TCP-\u0442\u0440\u0430\u0444\u0438\u043a (\u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 UDP \u0442\u043e\u0436\u0435, \u043d\u043e \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b &#171;DPI&#187; \u0442\u043e\u043b\u044c\u043a\u043e TCP).<\/p>\n<h2>\u041e \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438<\/h2>\n<p>\u041a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044f \u043a\u0430\u0431\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0434\u043e\u043c\u0430 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f 4G-\u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u043e\u0442 \u041c\u0435\u0433\u0430\u0444\u043e\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442\u044c \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u0438\u043c\u0435\u043d\u043d\u043e \u041c\u0435\u0433\u0430\u0444\u043e\u043d\u0430.<\/p>\n<p>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0432\u0441\u0451 \u0441\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0443\u0434\u0435\u0442 \u0434\u0430\u043b\u044c\u0448\u0435. \u0417\u0434\u0435\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043b \u043f\u0440\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0435\u043c NGINX \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 stream \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u043f\u043e\u0440\u0442\u0443&#8230; \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442 40443. \u041d\u043e \u0441\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 nginx \u043d\u0435 \u0437\u043d\u0430\u0435\u0442 \u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c, \u0447\u0442\u043e \u0442\u0443\u0434\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e \u043c\u044b \u0438 \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0437\u0440\u0443\u043b\u0438\u0432\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Lua.<\/p>\n<p>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, \u043c\u044b \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u0435\u0441\u044c \u0442\u0440\u0430\u0444\u0438\u043a \u0441 80 \u0438 443 \u043f\u043e\u0440\u0442\u0430 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 40443 \u043f\u043e\u0440\u0442 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 iptables \u0438 \u0435\u0433\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u044b REDIRECT. \u042d\u0442\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430 \u0442\u0435\u043c, \u0447\u0442\u043e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0432 \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u0430 \u0441\u043e\u043a\u0435\u0442\u0430 \u043e\u043f\u0446\u0438\u044e SO_ORIGINAL_DST, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 IP \u0438 \u043f\u043e\u0440\u0442, \u043a\u0443\u0434\u0430 \u043f\u0430\u043a\u0435\u0442 \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u043b\u0441\u044f, \u0434\u043e \u0442\u043e\u0433\u043e \u043a\u0430\u043a iptables \u043d\u0430\u0434 \u043d\u0438\u043c \u0437\u0432\u0435\u0440\u0441\u043a\u0438 \u043f\u043e\u0438\u0437\u0434\u0435\u0432\u0430\u043b\u0441\u044f, \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u0430\u0432 destination&#8230; \u041a\u0445\u043c, \u044f \u043e\u0442\u0432\u043b\u0451\u043a\u0441\u044f. \u042d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u0432\u043b\u0435\u0447\u044c \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 getsockopt&#8230; \u041f\u0440\u0430\u0432\u0434\u0430 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u043e\u0431\u0451\u0440\u0442\u043a\u0438 \u043d\u0430\u0434 \u043d\u0438\u043c \u043d\u0435 \u0431\u044b\u043b\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0435\u043d\u044c\u043a\u0438\u0439 C-\u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f nginx.<\/p>\n<p>\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TPROXY, \u0438 \u043f\u0440\u043e\u043f\u0430\u0442\u0447\u0438\u0442\u044c NGINX \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 SO_TRANSPARENT \u0441\u043e\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u043d\u0435 \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a \u043f\u0440\u044f\u043c\u043e\u043c\u0443 \u043f\u0430\u0442\u0447\u0443 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432 NGINX-\u0430 \u0438 \u043e\u0431\u043e\u0439\u0442\u0438\u0441\u044c \u043c\u043e\u0434\u0443\u043b\u044f\u043c\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 REDIRECT.<\/p>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442&#8230; \u041f\u0443\u0441\u0442\u044c \u0431\u0443\u0434\u0435\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, rutracker.org.<\/p>\n<p>&#8230;\u0418 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430\u0434\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u043f\u043e HTTP \u0438\u043b\u0438 HTTPS. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e HTTP \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u043c\u0438\u0440\u0430\u0435\u0442, \u0432\u0441\u0451 \u0436\u0435 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u0441\u0430\u0439\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 \u0435\u0433\u043e. \u0422\u0430\u043a \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 HTTP \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430.<\/p>\n<h2>HTTP &#8212; \u0442\u0443\u0442 \u0432\u0441\u0451 \u043f\u0440\u043e\u0441\u0442\u043e<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c http:\/\/rutracker.org. \u0418 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u043d\u0430\u0441 \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u0438\u043b\u043e \u043d\u0430 http:\/\/m.megafonpro.ru\/rkn, \u0433\u0434\u0435 \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u0443\u0441\u043b\u0443\u0436\u043b\u0438\u0432\u043e \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442, \u0447\u0442\u043e, \u043c\u043e\u043b, \u0442\u0430\u043a \u0438 \u0442\u0430\u043a, \u0441\u0430\u0439\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d, \u043f\u0440\u043e\u0441\u0438\u043c \u0438\u0437\u0432\u0438\u043d\u0438\u0442\u044c, \u0430 \u043f\u043e\u043a\u0430 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043d\u0430 \u043d\u0430\u0448\u0443 \u0440\u0435\u043a\u043b\u0430\u043c\u0443.<\/p>\n<p>\u0414\u0430, \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0430\u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b 307 Temporary Redirect \u0441 Location \u043d\u0430 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f. \u0410 \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0440\u043e\u0432\u043d\u043e \u044d\u0442\u043e &#8212; 307 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u0441 Location \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c http:\/\/m.megafonpro.ru\/rkn.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u044b \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0438\u0435 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 (\u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e 16 \u043a\u0431\u0430\u0439\u0442, \u043d\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0432\u0435\u0441\u044c\u043c\u0430 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0435), \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u0447\u0438\u0442\u0430\u0435\u043c \u043e\u0442\u0432\u0435\u0442 \u043e\u0442 \u043d\u0435\u0433\u043e. \u0415\u0441\u043b\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0451\u043c \u044d\u0442\u043e\u0442 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442 &#8212; \u044d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0441\u0440\u0430\u0437\u0443 \u0434\u0432\u0435 \u0432\u0435\u0449\u0438:<\/p>\n<ol>\n<li>\n<p>\u0421\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0437\u043d\u0430\u0447\u0438\u0442 \u044d\u0442\u043e\u0442 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043d\u0430\u0434\u043e \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u043f\u0440\u043e\u0441 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0435 \u0434\u043e\u0448\u0451\u043b \u0434\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0435\u043e\u0442\u043f\u0440\u0430\u0432\u044f\u0442\u044c \u0435\u0433\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e &#8212; \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e. \u042d\u0442\u043e \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0435\u0440\u043d\u043e, \u043d\u043e \u0432\u0435\u0440\u043d\u043e \u043d\u0430\u0432\u0435\u0440\u043d\u043e\u0435 \u0432 99% \u0441\u043b\u0443\u0447\u0430\u0435\u0432. \u041f\u0440\u0430\u0432\u0434\u0430, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043d\u043e, \u0438 \u0432\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u044e\u0449\u0438\u0435 \u043d\u0430 \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u0442\u043e \u0442\u0443\u0442 \u0431\u0435\u0434\u0430&#8230; \u041f\u0440\u0438\u043b\u0435\u0442\u0438\u0442 \u043f\u043e \u0438\u0442\u043e\u0433\u0443 \u0434\u0432\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 &#8212; \u043e\u0434\u0438\u043d &#8212; \u0442\u043e\u0442 \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u043e\u0442\u0432\u0435\u0442, \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 &#8212; \u0441\u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u0418 \u0443\u0437\u043d\u0430\u0442\u044c \u043c\u044b \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c. \u0425\u043e\u0440\u043e\u0448\u043e, \u0447\u0442\u043e HTTP \u0431\u0435\u0437 SSL \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0432\u0441\u0451 \u043c\u0435\u043d\u044c\u0448\u0435, \u043f\u0440\u0430\u0432\u0434\u0430? =)<\/p>\n<\/li>\n<\/ol>\n<p>\u0415\u0441\u043b\u0438 \u0440\u0435\u0434\u0438\u0440\u0435\u043a\u0442\u0430 \u043d\u0435\u0442\u0443, \u0437\u043d\u0430\u0447\u0438\u0442 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0434\u0430\u043b\u044c\u0448\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u0443\u0435\u043c \u0442\u0440\u0430\u0444\u0438\u043a, \u043d\u0435 \u0432\u043c\u0435\u0448\u0438\u0432\u0430\u044f\u0441\u044c \u0432 \u043d\u0435\u0433\u043e.<\/p>\n<h2>HTTPS \u0432\u043f\u043b\u043e\u0442\u044c \u0434\u043e TLSv1.2 &#8212; \u043f\u043e\u0441\u043b\u043e\u0436\u043d\u0435\u0435<\/h2>\n<p>\u0421 SSL\/TLS \u0432\u0441\u0451 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435&#8230; \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u0445\u043e\u0440\u043e\u0448\u0438\u0435 \u043d\u043e\u0432\u043e\u0441\u0442\u0438. \u041f\u0435\u0440\u0435\u0434 \u043b\u044e\u0431\u044b\u043c HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043c\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c Handshake, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0442\u043e\u0447\u043d\u043e \u043d\u0435 \u0432\u044b\u0437\u043e\u0432\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u043d\u043e \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u0442\u0430\u043a\u0438 \u0443\u0448\u0451\u043b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440.<\/p>\n<p>\u041c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c https:\/\/rutracker.org \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435&#8230; \u041e\u0448\u0438\u0431\u043a\u0443. \u0421\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u0434\u0430\u0436\u0435 \u043d\u0435 \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430, \u0431\u0435\u0434\u0430-\u0431\u0435\u0434\u0430&#8230;<\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0441\u0430\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442&#8230; \u0418 \u0447\u0442\u043e \u0436\u0435 \u043c\u044b \u0432\u0438\u0434\u0438\u043c? CN=megafon.ru. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u0438 \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0447\u0442\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043a\u0440\u043e\u043c\u0435 megafon.ru, \u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441 CN=megafon.ru &#8212; \u043d\u0430\u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442, \u0438 \u043d\u0430\u0434\u043e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c.<\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0443\u0434\u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043c\u044b \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0430\u043b\u0438\u0441\u044c, \u0438 \u043a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<p>\u0418 \u0437\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0436\u0435\u0442 SNI &#8212; \u0434\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e (\u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439, \u043c\u044b \u043d\u0435 \u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u044d\u043f\u043e\u0445\u0443 IE6, \u043e\u043d\u0430 \u0443\u0448\u043b\u0430 \u0438 \u0441\u043b\u0430\u0432\u0430 \u0431\u043e\u0433\u0443) \u043a\u043b\u0438\u0435\u043d\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u043c\u0435\u043d, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f, \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 ClientHello. \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u0436\u0435 \u0441\u0430\u043c NGINX \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 &#8212; \u043c\u043e\u0434\u0443\u043b\u044c ssl_preread \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0438\u043c. \u041d\u0443 \u0430 Lua-\u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0438 \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0446\u0435\u043b\u0435\u0439&#8230;<\/p>\n<p>\u0418\u0442\u0430\u043a, \u0447\u0442\u043e \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c? \u041f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430 \u0432\u043e \u043c\u043d\u043e\u0433\u043e\u043c \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u0430 HTTP &#8212; \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 (\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u0430\u043a \u0440\u0430\u0437 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 ClientHello) \u0438 \u0436\u0434\u0451\u043c \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u0442\u0432\u0435\u0442\u0430 \u0441 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u043c. \u041f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0447\u0442\u043e SNI \u043d\u0435 megafon.ru, \u043f\u0430\u0440\u0441\u0438\u043c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0443, \u043d\u0430\u043f\u0438\u0441\u0430\u0432\u0448\u0435\u043c\u0443 \u0431\u0438\u043d\u0434\u0438\u043d\u0433\u0438 \u043a OpenSSL \u0434\u043b\u044f Lua), \u0438 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 &#8212; \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u043d\u0435\u0442.<\/p>\n<p>\u0418 \u0432\u0441\u0451 \u0431\u044b\u043b\u043e \u0431\u044b \u0445\u043e\u0440\u043e\u0448\u043e, \u0435\u0441\u043b\u0438 \u0431\u044b \u043d\u0435 TLSv1.3, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0441\u044e \u044d\u0442\u0443 \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0441\u0438\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0430\u043c\u044b\u0432\u0430\u0435\u0442&#8230;<\/p>\n<h2>TLSv1.3 \u043d\u0430\u043d\u043e\u0441\u0438\u0442 \u043e\u0442\u0432\u0435\u0442\u043d\u044b\u0439 \u0443\u0434\u0430\u0440<\/h2>\n<p>\u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u0432 TLSv1.3 SNI \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c. \u0425\u043e\u0440\u043e\u0448\u0430\u044f \u043d\u043e\u0432\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 SNI \u043d\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u0443\u0435\u0442 \u0438 \u0441\u0430\u043c \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u044b\u0435 TLS-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043a IP \u0442\u043e\u0447\u043d\u043e \u0442\u0430\u043a\u0436\u0435. \u0412\u0442\u043e\u0440\u0430\u044f \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441\u0435\u0440\u0432\u0435\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u043e\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0432 \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435&#8230;<\/p>\n<p>\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0443\u0441\u0443\u0433\u0443\u0431\u043b\u044f\u0435\u0442\u0441\u044f \u0435\u0449\u0451 \u0438 \u0442\u0435\u043c, \u0447\u0442\u043e \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u0438 \u043f\u043e TLSv1.3, \u0442\u043e \u0435\u0441\u0442\u044c \u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 TLSv1.3. \u0410 \u0432\u0441\u0435 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442. \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&#8230;<\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u044f \u0443\u0436\u0435 \u0434\u0430\u0436\u0435 \u0434\u0443\u043c\u0430\u043b \u043e \u0442\u043e\u043c, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0442\u0447\u0438\u0442\u044c ClientHello, \u0443\u0431\u0438\u0440\u0430\u044f \u0438\u0437 \u043d\u0435\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 TLSv1.3, \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u044f \u043f\u043e \u0441\u0443\u0442\u0438 \u0430\u0442\u0430\u043a\u0443 \u043d\u0430 downgrade \u0434\u043e TLSv1.2, \u043d\u043e \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u043b \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 TLSv1.3. \u0412 \u043d\u0451\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0430\u0436 \u0414\u0412\u0410 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043f\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0434\u0430\u0443\u043d\u0433\u0440\u0435\u0439\u0434\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u043b\u043e\u0445\u043e\u0439.<\/p>\n<p>&#8230;\u0418 \u0437\u0434\u0435\u0441\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0440\u0438\u0431\u0435\u0433\u0430\u0442\u044c \u043a \u044d\u043a\u0441\u0442\u0440\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0440\u0430\u043c. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u044d\u0442\u043e\u0442 \u043c\u0435\u0442\u043e\u0434 \u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b \u0434\u0430\u0436\u0435 \u043f\u0435\u0440\u0432\u044b\u043c, \u0438 \u043e\u043d \u043f\u043e \u0441\u0443\u0442\u0438 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0443\u0442\u044c\u044e \u043c\u0435\u0442\u043e\u0434\u0430 peek and splice \u0443 Squid-\u0430. <\/p>\n<p>\u041c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0437\u044f\u0442\u044c \u0438 \u0432\u044b\u0447\u0438\u0442\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0441\u0430\u043c\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0438\u0442\u044c tls-handshake. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0441 CN=megafon.ru? \u0417\u043d\u0430\u0447\u0438\u0442 \u043d\u0430\u0441 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u044e\u0442. \u041d\u0435\u0442? \u0417\u043d\u0430\u0447\u0438\u0442 \u0432\u0441\u0451 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435. \u0418 \u043d\u0430\u043c \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043a\u0430\u043a\u043e\u0439 \u0434\u0440\u0443\u0433\u043e\u0439 &#8212; \u0434\u0430 \u043f\u0443\u0441\u0442\u044c \u0434\u0430\u0436\u0435 \u043c\u044b \u0434\u0438\u0441\u043a\u043e\u043d\u043d\u0435\u043a\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c. \u0413\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u043c\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u043b\u0430\u0433\u043e\u043c \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438.<\/p>\n<p>\u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043c\u0438\u043d\u0443\u0441\u043e\u043c \u0442\u0430\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u041c\u0435\u0433\u0430\u0444\u043e\u043d \u043d\u0430\u0447\u043d\u0451\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c eSNI, \u0442\u043e \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u044b \u043a \u0435\u0433\u043e \u0441\u0430\u0439\u0442\u0443 \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e SNI \u0443 \u043d\u0435\u0433\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u043d\u0435\u0437\u0430\u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439. \u0414\u0430 \u0438, \u043d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435, \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0442\u0430\u043c \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u043e\u0442\u0434\u0430\u0451\u0442\u0441\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438 \u0443\u0433\u043b\u0443\u0431\u0438\u0442\u044c \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0441 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c-\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c?<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u043c\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0441\u0430\u0439\u0442 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442\u0441\u044f. \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c?<\/p>\n<\/div>\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-319972","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319972","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=319972"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319972\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=319972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=319972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=319972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}