diff --git a/public/uk/index.gmi b/public/uk/index.gmi index af9f3b2..d352363 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -9,6 +9,7 @@ ### Нотатки +=> install-mycelium-network-router-in-linux.gmi 2025-09-16 Встановлення роутера мережі Mycelium в Linux => restoration-of-ukrainian-web-archives.gmi 2025-09-14 Реставрація українських Веб-архівів => change-transmission-peer-id-user-agent.gmi 2025-09-13 Зміна PeerID / User-agent в Transmission => peers-geo-location-for-transmission-gtk.gmi 2025-09-12 Гео-локація пірів для BitTorrent клієнта Transmission / GTK diff --git a/public/uk/install-mycelium-network-router-in-linux.gmi b/public/uk/install-mycelium-network-router-in-linux.gmi new file mode 100644 index 0000000..644c232 --- /dev/null +++ b/public/uk/install-mycelium-network-router-in-linux.gmi @@ -0,0 +1,108 @@ +# Встановлення роутера мережі Mycelium в Linux + +Коротка інструкція по встановленню оверлейної мережі Mycelium в Linux, оскільки навіть з моїми скілами, вона видалась дещо заплутаною, через безлад в репозиторії та відсутність доків. + +По суті, Mycelium нічим особливим від Yggdrasil не відрізняється, окрім іншої моделі маршрутизації та реалізації роутера мовою Rust. Також, відомою мені характерною рисою цієї мережі - є наявність traceroute. + +Варто зауважити, що проєкт в стадії розробки, користуйтесь на власний ризик! + +## Встановлення + +Якщо в системі ще не встановлено інфраструктуру Rust/Cargo, то вам сюди: + +=> https://rustup.rs + +або + +``` bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` + +Далі клонуємо та збираємо пакунок з репозиторію: + +``` bash +https://github.com/threefoldtech/mycelium.git +cd mycelium/myceliumd +cargo build --release +sudo install target/release/mycelium /usr/local/bin/mycelium +``` + +можливо потрібно буде довстановити: + +``` bash +apt install build-essential pkg-config libssl-dev +``` + +### systemd + +``` /etc/systemd/system/mycelium.service +#/etc/systemd/system/mycelium.service + +[Unit] +Wants=network.target +After=network.target + +[Service] +ProtectHome=true +ProtectSystem=true +SyslogIdentifier=mycelium +CapabilityBoundingSet=CAP_NET_ADMIN + +ExecStartPre=+-/sbin/modprobe tun +ExecStart=/usr/local/bin/mycelium -k /etc/mycelium.bin --peers tcp://xxx.xx.xxx.x:xxxx + +# Адреси підмереж +#ExecStartPost=/bin/sleep 5s +#ExecStartPost=/bin/ip address add xxx:xxxx:xxxx:xxxx::x1/64 dev mycelium +#ExecStartPost=/bin/ip address add xxx:xxxx:xxxx:xxxx::x2/64 dev mycelium + +#Restart=always +#RestartSec=5 + +TimeoutStopSec=5 + +# mkdir /var/log/mycelium +StandardOutput=file:/var/log/mycelium/debug.log +StandardError=file:/var/log/mycelium/error.log +``` +* `/etc/mycelium.bin` - це приватний ключ, він створюється автоматично при першому запуску +* якщо журнали не потрібні - додайте до `exec` опцію ` --silent` + +## Налаштування + +Фаєрволи обслуговуються так само, як і у випадку Yggdrasil, тільки діапазон тут - 0400::/7 + +Для Alfis DNS існує окремий патч PR#386, який теоретично вміє сікти все окрім Yggdrasil або Mycelium, але в мене там є деякі питання як і до іншого пірингового софту, які поки що не перевіряв. + +### PAC + +Мій файл конфігурації для окремого браузеру виглядає якось так: + +``` config.pac +function FindProxyForURL(url, host) +{ + if (/^0{0,1}[2-3][a-f0-9]{0,2}:/.test(host) || /\.ygg$/.test(host)) + { + return 'DIRECT'; + } + if (/^0{0,1}[4-5][a-f0-9]{0,2}:/.test(host)) + { + return 'DIRECT'; + } + return 'PROXY 127.0.0.1:123'; +} +``` +* тобто обслуговуються конекти Yggdrasil та Mycelium, а все інше йде на фіктивний проксі +* детальніше про PAC читайте за посиланнями нижче + +## Посилання + +=> https://github.com/threefoldtech/mycelium Проєкт Mycelium на GitHub +=> https://github.com/YGGverse/Alfis/tree/mycelium-network-mode Модифікація резольвера Alfis DNS з підтримкою діапазону Mycelium +=> https://devzone.org.ua/post/vstanovlennia-routera-merezi-mycelium-v-linux Веб-версія цього матеріалу з коментарями на DevZone + +### Читайте також + +=> yggdrasil-is-network-with-distributed-routing.gmi Yggdrasil - мережа з децентралізованою маршрутизацією +=> alfis-dns-domain-registration-in-blockchain.gmi Alfis DNS - реєстрація домену в блокчейн +=> safe-yggdrasil-websites-browsing-with-yggstack.gmi Безпечний перегляд сайтів Yggdrasil з Yggstack \ No newline at end of file