113 lines
No EOL
13 KiB
Markdown
113 lines
No EOL
13 KiB
Markdown
Да, именно так! Вы абсолютно правы. Вся "магия" держится на сервере-посреднике, без него схема просто не сработает.
|
||
|
||
Однако, тут есть один нюанс: роль этого сервера меняется в зависимости от того, насколько удачно удалось "обмануть" систему.
|
||
|
||
У сервера-посредника есть две принципиально разные функции:
|
||
|
||
### 1. Роль "Свахи" (Брокер) — Работает всегда
|
||
Это основная и обязательная функция сервера.
|
||
* **Что делает:** Знакомит компьютеры друг с другом. Когда вы нажимаете "Включить" в Hamachi/Radmin, ваш компьютер стучится на центральный сервер и говорит: "Привет, я в сети, мой адрес такой-то". То же самое делает ваш друг.
|
||
* **Зачем нужен:** Ваши компьютеры сами по себе слепы. Они не знают IP-адреса друг друга и закрыты NAT-ом (роутером). Сервер-посредник сообщает им адреса друг друга и командует: "А теперь попробуйте соединиться напрямую!".
|
||
* **Итог:** Если всё прошло хорошо (UDP Hole Punching сработал), сервер отходит в сторону. Трафик идет напрямую от вас к другу. **Это идеальный сценарий.**
|
||
|
||
### 2. Роль "Переводчика" (Ретранслятор / Relay) — Работает, когда всё плохо
|
||
Это запасной вариант, если "пробить стены" (NAT) напрямую не удалось.
|
||
* **Что делает:** Если ваши роутеры слишком строгие (например, симметричный NAT или корпоративная сеть) и прямая связь невозможна, сервер начинает работать как труба. Весь ваш игровой трафик летит сначала на сервер Hamachi/Radmin, а оттуда — к другу.
|
||
* **Почему это плохо:**
|
||
* **Огромный пинг:** Сигнал делает крюк через дата-центр компании.
|
||
* **Медленная скорость:** Пропускная способность канала сервера ограничена.
|
||
* **Как это увидеть:**
|
||
* **В Hamachi:** Возле имени друга горит **синий кружок** (Relayed tunnel). Это значит, что вы идете через сервер. Если кружок **зеленый** — связь прямая (P2P).
|
||
* **В Radmin VPN:** Если связь идет через сервер, тип соединения обычно отображается как **Relay/TCP**.
|
||
|
||
### Резюме
|
||
Сервер-посредник есть **всегда** для координации (чтобы найти друг друга). Но для передачи самих данных (игры, файлов) программы стараются его избегать, создавая прямой туннель. Если вы играете с комфортным пингом — значит, сервер только "познакомил" вас и ушел. Если пинг высокий — вы гоняете данные через него.
|
||
|
||
[1](https://support.goto.com/hamachi/help/what-do-the-different-color-indicators-mean-in-logmein-hamachi-hamachi-c-hamachi-client-colors)
|
||
[2](https://help.rt-ms.com/portal/en/kb/articles/vpn-color-indicators)
|
||
[3](https://www.reddit.com/r/logmein/comments/ls247y/relayed_tunnel_issue_hamachi/)
|
||
[4](http://logmeinwiki.com/wiki/Hamachi:Indicators)
|
||
[5](https://forum.nhl94.com/index.php?%2Ftopic%2F18378-hamachi-relayed-connection%2F)
|
||
[6](https://radmin-club.com/radmin-vpn/relay-connection-vs-direct-connection/)
|
||
[7](https://dzen.ru/a/Z8wkcG12XFn0UX3o)
|
||
[8](https://support.goto.com/hamachi/help/que-significan-los-diferentes-indicadores-de-color-de-logmein-hamachi-hamachi-c-hamachi-client-colors)
|
||
[9](https://freevpnmentor.com/radmin-vpn-review-is-it-safe/)
|
||
[10](https://hamachi-pc.ru/instructions/ispravlyaem-tunnel-cherez-retranslyator-v-hamachi.html)
|
||
[11](https://retailedge.com/phpBB/viewtopic.php?t=3338)
|
||
[12](https://www.radmin-vpn.com/help/)
|
||
[13](https://coop-land.ru/forum/showtopic/73245-hamachi-tunnel-cherez-retranslyator/)
|
||
[14](https://www.youtube.com/watch?v=wiyj4WTZpWQ)
|
||
[15](https://helpdesk.radmin.com/kb/faq.php?id=275)
|
||
[16](https://www.youtube.com/watch?v=jQt4V9Y8kwo)
|
||
[17](https://steamcommunity.com/sharedfiles/filedetails/?id=2095729239)
|
||
[18](https://www.reddit.com/r/stronghold/comments/1hrs0iz/not_able_to_join_a_friend_using_radmin_vpn_not/)
|
||
[19](https://otvet.mail.ru/question/219881145)
|
||
[20](https://projectcrusade.forumotion.com/t4162-a-crusade-hamachi-online-play-guide-with-extras)
|
||
|
||
Чтобы создать видимость того, что компьютеры находятся в одной комнате (в локальной сети), хотя на самом деле их разделяют тысячи километров, Radmin VPN и Hamachi используют технологию виртуализации сети.
|
||
|
||
Весь процесс можно разделить на три ключевых этапа: обман операционной системы, упаковка данных в «конверт» и пробивание стен (NAT).
|
||
|
||
### 1. Виртуальный сетевой адаптер (Обман системы)
|
||
Когда вы устанавливаете Radmin VPN или Hamachi, они инсталлируют в Windows специальный драйвер — **виртуальный сетевой адаптер**.[1]
|
||
|
||
* **Как это видит Windows:** Система считает, что вы вставили в компьютер еще одну реальную сетевую карту и подключили к ней кабель.
|
||
* **Что происходит на самом деле:** Этот «кабель» никуда не ведет. Это программная эмуляция. Когда игра или программа пытается отправить данные в «локальную сеть» (например, найти сервер Minecraft), она отправляет их на этот виртуальный адаптер.
|
||
* **Присвоение адреса:** Программа выдает этому виртуальному адаптеру специальный IP-адрес (обычно в диапазоне 25.x.x.x или 26.x.x.x), который отличается от вашего реального интернет-адреса.[1]
|
||
|
||
### 2. Туннелирование (Упаковка в конверт)
|
||
Когда данные попадают на виртуальный адаптер, программа (Radmin/Hamachi) перехватывает их.
|
||
|
||
1. **Захват:** Игра отправляет пакет данных «Привет, я игрок А» на адрес 26.15.20.1 (адрес друга).
|
||
2. **Шифрование и инкапсуляция:** Программа берет этот пакет и шифрует его. Затем она кладет его внутрь обычного интернет-пакета (протокола UDP или TCP).[2][3]
|
||
* *Аналогия:* Вы берете письмо, адресованное «В соседнюю комнату», кладете его в большой почтовый конверт, пишете на нем реальный почтовый адрес друга в другом городе и отправляете по обычной почте.
|
||
3. **Передача:** Этот пакет летит через обычный интернет, проходя через провайдеров, как обычный трафик (просмотр YouTube или скачивание файлов).
|
||
4. **Распаковка:** Компьютер друга получает пакет. Программа Radmin/Hamachi на его стороне вскрывает «внешний конверт», расшифровывает данные и передает их своему виртуальному адаптеру.
|
||
5. **Результат:** Windows друга видит входящий пакет от «игрока А» через виртуальный кабель и думает, что друг сидит рядом.
|
||
|
||
### 3. UDP Hole Punching (Пробивание стен)
|
||
Самая сложная часть магии — как соединить два компьютера напрямую, если у обоих, скорее всего, есть роутеры и нет «белого» IP-адреса. Для этого используется технология **UDP Hole Punching**.[4][5]
|
||
|
||
* **Проблема:** Ваш роутер (NAT) по умолчанию блокирует все входящие соединения извне, если вы сами их не запросили. Если друг просто попытается отправить вам пакет, роутер его отбросит.
|
||
* **Решение:**
|
||
1. Оба компьютера сначала связываются с центральным сервером Radmin или Hamachi (сервер-посредник).[6][2]
|
||
2. Сервер сообщает им реальные IP-адреса друг друга.
|
||
3. Компьютеры начинают одновременно «бомбардировать» друг друга пустыми пакетами.
|
||
4. Когда ваш компьютер отправляет пакет другу, ваш роутер открывает «дырку» (запись в таблице NAT) для ответа. В этот же момент друг делает то же самое.
|
||
5. В какой-то момент пакеты проскакивают в открытые навстречу друг другу «дырки», и устанавливается прямое соединение (P2P).[7][6]
|
||
|
||
Если пробиться напрямую не удается (из-за строгого корпоративного фаервола), трафик идет через сервер-ретранслятор (Relay), что вызывает высокие задержки (пинг) в играх.[6]
|
||
|
||
### Итог: почему пространство изолированное?
|
||
«Изолированность» обеспечивается тем, что:
|
||
1. Виртуальные адаптеры имеют свои IP-адреса, которые не маршрутизируются в обычном интернете.[3]
|
||
2. Весь трафик между участниками шифруется (обычно AES-256), поэтому провайдер видит только поток случайных данных, но не видит, что внутри (файлы, игра, чат).[8][3]
|
||
|
||
Таким образом, создается **VPN (Virtual Private Network)** — защищенный туннель внутри незащищенной сети Интернет.
|
||
|
||
[1](https://www.white-windows.ru/sozdanie-virtualnoj-lokalnoj-seti-po-internetu-s-pomoshhyu-besplatnoj-programmy-radmin-vpn/)
|
||
[2](https://otvet.mail.ru/question/78812594)
|
||
[3](https://www.datahata.by/info/articles/virtualnaya-chastnaya-set-chto-eto-takoe.html)
|
||
[4](https://gmnet-engine.org/manual/punch/about/aboutpunching)
|
||
[5](https://www.infosecinstitute.com/resources/hacking/udp-hole-punching/)
|
||
[6](https://hobbycomp.ru/internet/hamachi-vsyo-o-programme/)
|
||
[7](https://www.dinhphu28.com/blog/2024/udp-hole-punching/)
|
||
[8](https://habr.com/ru/articles/534250/)
|
||
[9](https://qna.habr.com/q/900405)
|
||
[10](https://habr.com/ru/companies/ru_mts/articles/745996/)
|
||
[11](https://ru.wikipedia.org/wiki/LogMeIn_Hamachi)
|
||
[12](https://www.reddit.com/r/Terraria/comments/hrs2w/what_is_hamachi_and_how_does_it_work/?tl=ru)
|
||
[13](https://www.qsfptek.com/ru/qt-news/vpn-router-what-is-it.html)
|
||
[14](https://www.radmin-vpn.com/ru/help/)
|
||
[15](https://www.youtube.com/watch?v=9ImqBCt47JM)
|
||
[16](https://otvet.mail.ru/question/240481604)
|
||
[17](https://www.reddit.com/r/Terraria/comments/hrs2w/what_is_hamachi_and_how_does_it_work/)
|
||
[18](https://docs.usergate.com/vpn-dlya-udalennogo-dostupa-klientov-(remote-access-vpn)_925.html)
|
||
[19](https://www.youtube.com/watch?v=Hh_fG6ze5Aw)
|
||
[20](https://dev.to/dev-dhanushkumar/nat-traversal-a-visual-guide-to-udp-hole-punching-1936)
|
||
|
||
$a^{n-1} \equiv 1 \pmod n$
|
||
эквивалентно вот этому
|
||
```rust
|
||
a.pow(n-1) % n == 1
|
||
``` |