{"id":41742,"date":"2020-02-15T11:08:28","date_gmt":"2020-02-15T08:08:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1"},"modified":"2026-05-21T16:37:40","modified_gmt":"2026-05-21T14:37:40","slug":"powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1","title":{"rendered":"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/485914\/\" rel=\"nofollow\"><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/2dd5268fe56b6097ed82527ceac50179.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><\/a><br \/>\nContinuing the discussion about ZeroTier, from the theory presented in the article \"<a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/484178\/\" rel=\"nofollow\">Intelligent Ethernet Switch for Planet Earth<\/a>,\u201d I move to practice, in which:<\/p>\n<ul>\n<li>Let's create and configure a private network controller<\/li>\n<li>Let's create a virtual network<\/li>\n<li>Let's configure and connect nodes to it<\/li>\n<li>Let's check network connectivity between them<\/li>\n<li>Let's restrict access to the network controller's GUI from the outside<\/li>\n<\/ul>\n<p><a rel=\"nofollow\" name=\"habracut\"><\/a><\/p>\n<h2>Network Controller<\/h2>\n<p>As already mentioned, to create virtual networks, manage them, and connect nodes, the user needs a network controller, whose graphical interface (GUI) exists in two forms:<\/p>\n<p><b class=\"spoiler_title\">ZeroTier GUI Options<\/b><\/p>\n<ul>\n<li>One from the ZeroTier developer, available as a public cloud solution provided under a SaaS model, with four subscription plans, including a free but limited option in terms of the number of managed devices and level of support.<\/li>\n<li>The second one is from an independent developer, somewhat simplified in functionality, but available as a private open source solution, for on-premise or cloud resource use.<\/li>\n<\/ul>\n<p>In my experience, I have used both and ultimately settled on the second. This was due to the developer's warnings.<\/p>\n<p><i>\"Network controllers serve as certification centers for ZeroTier virtual networks. Files containing the controller's secret keys must be carefully protected and securely archived. Their compromise allows unauthorized attackers to create fraudulent network configurations, and loss leads to the inability to control and manage the network, effectively rendering it unusable.\"<\/i><\/p>\n<p>\u2192 <a href=\"https:\/\/www.zerotier.com\/manual\/#2_2_1\" rel=\"nofollow\">Link to documentation<\/a><\/p>\n<p>And also, signs of my own cybersecurity paranoia \ud83d\ude42<\/p>\n<ul>\n<li>Even if CheburNet comes, I must retain access to my network controller;<\/li>\n<li>Only I should use the network controller. If necessary, providing access to my trusted individuals;<\/li>\n<li>There should be a possibility to restrict access to the network controller from the outside.<\/li>\n<\/ul>\n<p>I see no particular reason to dwell separately on how to deploy a network controller and GUI for it on on-premise physical or virtual resources in this article. There are three reasons for this as well:<\/p>\n<ul>\n<li>there will be more letters than planned<\/li>\n<li>this has already been <a href=\"https:\/\/github.com\/key-networks\/ztncui\" rel=\"nofollow\">discussed<\/a> on the developer's GitHub page<\/li>\n<li>the topic of the article is different<\/li>\n<\/ul>\n<p>Therefore, choosing the path of least resistance, I will use a network controller with a GUI based on <a href=\"https:\/\/prohoster.info\/en\/vps\/abuzoustojchivye-vps\/\">VDS<\/a>, created <a href=\"https:\/\/ruvds.com\/ru-rub\/marketplace\/zerotier#advantages\" rel=\"nofollow\">from a template<\/a>, kindly developed by my colleagues at ProHoster.<\/p>\n<h2>The initial setup<\/h2>\n<p>based on the BTRFS file system, execute the following commands: <a href=\"https:\/\/prohoster.info\/en\/server\/dts-los-angeles\/\">server<\/a> from the specified template, the user accesses the Web-GUI of the controller through a browser at the address htt\u0440s:\/\/:3443<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/47a64c95797b49b874efe93eb2ff5183.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nthe net\/http <a href=\"https:\/\/prohoster.info\/en\/server\/\">server<\/a> already contains a pre-created self-signed TLS\/SSL certificate. This is sufficient for me, as I restrict access from the outside. For those who wish to use different types of certificates, there is <a href=\"https:\/\/github.com\/key-networks\/ztncui\" rel=\"nofollow\">installation instructions<\/a> on the developer's GitHub page.<\/p>\n<p>When the user logs into the system for the first time <b>Login<\/b> with the default login and password \u2014 <b>admin<\/b> and <b>password<\/b>:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/491efbca93287738a237b163c0c26b20.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nIt prompts to change the default password to a custom one.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/f7e37af39ed01f0b7b864a0a78137307.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nI do it a little differently \u2014 I don't change the password for the existing user, but create a new one \u2014 <b>Create User<\/b>.<\/p>\n<p>I set the new user's name \u2014 <b>Username<\/b>:<br \/>\nI set a new password \u2014 <b>Enter new password<\/b>:<br \/>\nI confirm the new password \u2014 <b>Re-enter password<\/b>:<\/p>\n<p>The characters entered are case-sensitive \u2014 be careful!<\/p>\n<p>The checkbox confirming the password change on the next login \u2014 <b>Change password on next login:<\/b> I do not check it.<\/p>\n<p>To confirm the entered data, I click on <b>Set password<\/b>:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/2796b7dfd681688b788c9e3aa2baca3d.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nThen: I log in again \u2014 <b>Logout<\/b> \/ <b>Login<\/b>, already with the new user's credentials:<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/9c4da8f33bf06845ec6298b200630ad2.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nNext, I go to the users tab \u2014 <b>Users<\/b> and delete the user <b>admin<\/b>, clicking on the trash bin icon located to the left of their name.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/62caa16b4a1326875312cf7df7fc5778.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nIn the future, to change a user's password, you can click either on their name or on set password.<\/p>\n<h2>Creating a virtual network<\/h2>\n<p>To create a virtual network, the user needs to go to the tab <b>Add network<\/b>. From the item <b>User<\/b> this can be done through the page <b>Home<\/b> \u2014 the main page of the Web-GUI, which displays the ZeroTier address of this network controller and contains a link to the page listing the networks created through it.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/6ef871af6aa26a4f31abb0f090843442.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nOn the page <b>Add network<\/b> the user assigns a name to the newly created network.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/760ff4886272c5ed9c7ac6502c3d8786.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nWhen applying the entered data \u2014 <b>Create Network<\/b> The user is directed to a page with a list of networks, which includes:<\/p>\n<p><b>Network name<\/b> \u2014 the name of the network in the form of a link, by clicking on which it can be changed<br \/>\n<b>Network ID<\/b> \u2014 the identifier of the network<br \/>\n<b>detail<\/b> \u2014 a link to the page with detailed network parameters<br \/>\n<b>easy setup<\/b> \u2014 a link to the page for easy configuration<br \/>\n<b>members<\/b> \u2014 a link to the node management page<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/fb7734caa8cd6793f19cb7ca1824f55d.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nFor further setup, proceed by clicking the link <b>easy setup<\/b>. On the opened page, the user sets the range of IPv4 addresses for the created network. This can be done automatically by pressing the button <b>Generate network address<\/b> or manually by entering the network mask in the corresponding field <b>CIDR<\/b>.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/2878034db9e121a30971a3e65a21ceed.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nUpon confirming the successful input of data, the user must return to the page with the list of networks by using the Back button. At this point, the main setup of the network can be considered complete.<\/p>\n<h2>Connecting network nodes<\/h2>\n<p><a rel=\"nofollow\" name=\"section1\"><\/a><\/p>\n<ol>\n<li><b>To begin, the node that the user wishes to connect to the network must have the ZeroTier One service installed.<\/b><b class=\"spoiler_title\">What is ZeroTier One?<\/b><b>ZeroTier One<\/b> \u2014 a service that works on laptops, desktops, servers, virtual machines, and containers, which provides connections to a virtual network through a virtual network port, similar to a VPN client. After installation and starting the service, connections to virtual networks can be made using their 16-digit addresses. Each network appears as a virtual network port in the system, behaving like a regular Ethernet port.<br \/>\nLinks to distributions and installation commands can be found <a href=\"https:\/\/www.zerotier.com\/download\/\" rel=\"nofollow\">on the manufacturer's page<\/a>. The installed service can be managed via the command line interface (CLI) with admin\/root rights. In Windows\/MacOS, it can also be managed through the graphical interface. In Android\/iOS, it is only via GUI.<\/li>\n<li><b>Checking if the service is installed successfully:<\/b>CLI:\n<pre><code class=\"plaintext\">zerotier-cli status<\/code><\/pre>\n<p>Result:<\/p>\n<p><code>200 info ebf416fac1 1.4.6 ONLINE<\/code><br \/>\nGUI:<\/p>\n<p>The presence of the application running and the line with Node ID showing the node address.<\/li>\n<li><b>Connecting the node to the network:<\/b>CLI:\n<pre><code class=\"plaintext\">zerotier-cli join<\/code><\/pre>\n<p>Result:<\/p>\n<p><code>200 join OK<\/code><\/p>\n<p>GUI:<\/p>\n<p><b>Windows:<\/b> by right-clicking on the icon <b>ZeroTier One<\/b> in the system tray and selecting the option \u2014 <b>Join Network<\/b>.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/d0376a130e9516ae8371f817d4d3c226.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\n<b>MacOS:<\/b> Launch the application <b>ZeroTier One<\/b> from the bar menu, if it is not already running. Click on the icon \u23c1 and select <b>Join Network<\/b>.<\/p>\n<p>Android\/iOS: + (plus image) in the application<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/0d65dc87b6fce097f2ef9738da17a2c0.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nIn the field that appears, enter the address specified in the GUI of the network controller <b>Network ID<\/b>, and press <b>Join \/ Add Network<\/b>.<\/li>\n<li><b>Assign an IP address to the node<\/b><br \/>\nNow, let's return to the network controller and go to the list of networks by clicking the link <b>members<\/b>. If you see an image like this on the screen, it means your network controller has received a connection confirmation request from the connecting node.<img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/c6589f1cc7b23c70bda7851101c7b012.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nOn this page, we will leave everything as it is and click the link <b>IP assignment<\/b> and navigate to the page to assign an IP address to the node:<img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/fd99a0671533f10f8bd7dd5edfe122e9.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nAfter assigning the address, click the button <b>Back<\/b> to return to the list of connected nodes and set the name \u2014 <b>Member name<\/b> and check the box for authorizing the node in the network \u2014 <b>Authorized<\/b>. By the way, this checkbox is a very convenient feature for enabling\/disabling the node from the network later.<img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/7d4cc765e8f86ede0e05ae0429ce77d5.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nSave the changes using the button <b>Refresh<\/b>.<\/li>\n<li><b>Checking the connection status of the node to the network:<\/b><br \/>\nTo check the connection status on the node itself, execute:<br \/>\nCLI:<\/p>\n<pre><code class=\"plaintext\">zerotier-cli listnetworks<\/code><\/pre>\n<p>Result:<\/p>\n<p><code>200 listnetworks<br \/>\n200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2\/24<\/code><br \/>\nGUI:<\/p>\n<p>The network status should be OK<\/p>\n<p>To connect the other nodes, repeat steps 1-5 for each of them.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>Checking network connectivity of the nodes<\/h2>\n<p>I do this by executing the command <b>ping<\/b> on the device connected to the network that I am currently managing.<\/p>\n<p><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/64523f3bac8886585356f90439ccef83.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><br \/>\nIn the screenshot of the Web-GUI of the controller, you can see three nodes connected to the network:<\/p>\n<ol>\n<li><b>ZTNCUI \u2014 10.10.10.1<\/b> \u2014 my network controller with GUI \u2014 <a href=\"https:\/\/prohoster.info\/en\/vps\/abuzoustojchivye-vps\/\">VDS<\/a> in one of ProHoster's data centers. For normal operation, there is no need to add it to the network, but I did this because I want to restrict access to the web interface from the outside. More on that later.<\/li>\n<li><b>MyComp \u2014 10.10.10.2<\/b> \u2014 my work computer \u2014 a physical PC<\/li>\n<li><b>Backup \u2014 10.10.10.3<\/b> \u2014 VDS in another data center.<\/li>\n<\/ol>\n<p>Therefore, from my work computer, I check the accessibility of other nodes with the commands:<\/p>\n<pre><code class=\"plaintext\">ping 10.10.10.1<\/code><\/pre>\n<p><code>Pinging 10.10.10.1 with 32 bytes of data:<br \/>\nReply from 10.10.10.1: bytes=32 time=14ms TTL=64<br \/>\nReply from 10.10.10.1: bytes=32 time=4ms TTL=64<br \/>\nReply from 10.10.10.1: bytes=32 time=7ms TTL=64<br \/>\nReply from 10.10.10.1: bytes=32 time=2ms TTL=64<\/code><\/p>\n<p>Ping statistics for 10.10.10.1:<br \/>\nPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),<br \/>\nApproximate round trip times in milliseconds:<br \/>\nMinimum = 2ms, Maximum = 14ms, Average = 6ms<\/p>\n<pre><code class=\"plaintext\">ping 10.10.10.3<\/code><\/pre>\n<p><code>Pinging 10.10.10.3 with 32 bytes of data:<br \/>\nReply from 10.10.10.3: bytes=32 time=15ms TTL=64<br \/>\nReply from 10.10.10.3: bytes=32 time=4ms TTL=64<br \/>\nReply from 10.10.10.3: bytes=32 time=8ms TTL=64<br \/>\nReply from 10.10.10.3: bytes=32 time=4ms TTL=64<\/code><\/p>\n<p>Ping statistics for 10.10.10.3:<br \/>\nPackets: Sent = 4, Received = 4, Lost = 0 (0% loss),<br \/>\nApproximate round trip times in milliseconds:<br \/>\nMinimum = 4ms, Maximum = 15ms, Average = 7ms<\/p>\n<p>Users have the right to use other tools to check the availability of nodes in the network, both built into the OS and those like NMAP, Advanced IP Scanner, etc.<\/p>\n<h2>Hiding access to the GUI of the network controller from the outside.<\/h2>\n<p>In general, to reduce the likelihood of unauthorized access to the VDS, where my network controller is located, I can use the firewall tools in the ProHoster personal account. This topic is more suitable for a separate article. Therefore, here I will show how to ensure access to the controller's GUI only from the network that I created in this article.<\/p>\n<p>To do this, connect via SSH to the VDS where the controller is located, and open the configuration file using the command:<\/p>\n<pre><code class=\"plaintext\">nano \/opt\/key-networks\/ztncui\/.env<\/code><\/pre>\n<p>In the opened file, after the line \"HTTPS_PORT=3443\" which contains the port address for the GUI, you need to add an additional line with the address from which the GUI will be accessible \u2014 in my case, this is HTTPS_HOST=10.10.10.1.<\/p>\n<p>Then I will save the file<\/p>\n<p><code>Ctrl+C<br \/>\nY<br \/>\nEnter\u00a0<\/code><\/p>\n<p>and execute the command:<\/p>\n<pre><code class=\"plaintext\">systemctl restart ztncui<\/code><\/pre>\n<p>And that's it, now the GUI of my network controller is accessible only to nodes on the network 10.10.10.0\/24.<\/p>\n<h2>In conclusion<\/h2>\n<p>I want to conclude the first part of the practical guide on creating virtual networks based on ZeroTier here. I look forward to your comments.<\/p>\n<p>In the meantime, to pass the time before the publication of the next part, in which I will explain how to bridge a virtual network with a physical one, how to set up a 'road warrior' mode, and something else, I suggest you try to set up your own virtual network using a private network controller with a GUI based on a VDS from the marketplace on <a href=\"https:\/\/prohoster.info\/en\/vps\/abuzoustojchivye-vps\/\" rel=\"nofollow\">the website<\/a> ProHoster. Moreover, all new clients can take advantage of a free trial period \u2014 3 days!<\/p>\n<p><b>P.S.<\/b> Oh! I almost forgot! You can remove a node from the network using a command in that node's CLI.<\/p>\n<pre><code class=\"plaintext\">zerotier-cli leave<\/code><\/pre>\n<p><code>200 leave OK<\/code><\/p>\n<p>or using the Delete command in the client GUI on the node.<\/p>\n<p>-&gt; <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/484178\/\" rel=\"nofollow\"> Introduction. Theoretical Part. Intelligent Ethernet Switch for Planet Earth<\/a><br \/>\n-&gt; <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/485914\/\" rel=\"nofollow\">Practical Guide to Building Virtual Networks. Part 1<\/a><br \/>\n-&gt; <a href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/485914\/\" rel=\"nofollow\"> Practical Guide to Building Virtual Networks. Part 2<\/a><\/p>\n<p><a href=\"https:\/\/ruvds.com\/ru-rub\/#order\" rel=\"nofollow\"><img decoding=\"async\" style=\"display: block; margin: 0 auto;\" src=\"\/wp-content\/uploads\/2020\/02\/fc1d4abf1f622ec115238a9ae76a9415.jpg\" alt=\"Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1\" \/><\/a><\/p>\n<p>Source: <a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/485914\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e ZeroTier, \u043e\u0442 \u0442\u0435\u043e\u0440\u0438\u0438, \u0438\u0437\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u00ab\u0418\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 Ethernet-\u043a\u043e\u043c\u043c\u0443\u0442\u0430\u0442\u043e\u0440 \u0434\u043b\u044f \u043f\u043b\u0430\u043d\u0435\u0442\u044b \u0417\u0435\u043c\u043b\u044f\u00bb, \u043f\u0435\u0440\u0435\u0445\u043e\u0436\u0443 \u043a \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439: \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0447\u0430\u0441\u0442\u043d\u044b\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0435\u0442\u044c \u041d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0438 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u043a \u043d\u0435\u0439 \u0443\u0437\u043b\u044b \u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0441\u0432\u044f\u0437\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0436\u0434\u0443 \u043d\u0438\u043c\u0438 \u0417\u0430\u043a\u0440\u043e\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a GUI \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0438\u0437\u0432\u043d\u0435 \u0421\u0435\u0442\u0435\u0432\u043e\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u041a\u0430\u043a \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0441\u043a\u0430\u0437\u0430\u043d\u043e \u0440\u0430\u043d\u0435\u0435, \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41743,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-41742","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Powered by ZeroTier. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-15T08:08:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-21T14:37:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Powered by ZeroTier. Practical Guide to Building Virtual Networks. Part 1 | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/en\/blog\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Powered by ZeroTier. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u043f\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0435\u043b\u044c\u0441\u0442\u0432\u0443 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439. \u0427\u0430\u0441\u0442\u044c 1 | ProHoster","og:url":"https:\/\/prohoster.info\/en\/blog\/powered-by-zerotier-prakticheskoe-rukovodstvo-po-stroitelstvu-virtualnyh-setej-chast-1","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-15T08:08:28+00:00","article:modified_time":"2026-05-21T14:37:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41742","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:11:43","updated":"2026-08-11 12:50:25","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/41742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=41742"}],"version-history":[{"count":4,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/41742\/revisions"}],"predecessor-version":[{"id":181624,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/41742\/revisions\/181624"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/41743"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=41742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=41742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=41742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}