Страница 1 из 4
Yggdrasil в RPM
Добавлено: 27 июн 2023, 15:06
Olej
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: Fedora
Description: Fedora release 38 (Thirty Eight)
Release: 38
Codename: ThirtyEight
В репозетории есть:
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf list yggdrasil
Последняя проверка окончания срока действия метаданных: 0:00:20 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
yggdrasil.x86_64 0.3.1-2.fc38 fedora
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf info yggdrasil
Последняя проверка окончания срока действия метаданных: 0:00:29 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
Имя : yggdrasil
Версия : 0.3.1
Выпуск : 2.fc38
Архитектура : x86_64
Размер : 4.3 M
Источник : yggdrasil-0.3.1-2.fc38.src.rpm
Репозиторий : fedora
Краткое опис : Remote data transmission and processing client
URL : https://github.com/redhatinsights/yggdrasil
Лицензия : GPL-3.0-only
Описание : yggdrasil is a system daemon that subscribes to topics on an MQTT broker and
: routes any data received on the topics to an appropriate child "worker" process,
: exchanging data with its worker processes through a D-Bus message broker.
Но это не интересно, по версии 0.3
Yggdrasil в RPM
Добавлено: 27 июн 2023, 15:09
Olej
Olej писал(а): ↑27 июн 2023, 15:06
В репозетории
В сборке бинарных пакетов от авторов
Version 0.4.7
Код: Выделить всё
yggdrasil-0.4.7-amd64.deb 3.53 MB 2022-11-20T21:26:39Z
yggdrasil-0.4.7-arm.msi 2.93 MB 2022-11-20T21:26:21Z
yggdrasil-0.4.7-arm64.deb 3.17 MB 2022-11-20T21:26:37Z
yggdrasil-0.4.7-arm64.msi 2.84 MB 2022-11-20T21:26:19Z
yggdrasil-0.4.7-armel.deb 3.29 MB 2022-11-20T21:26:35Z
yggdrasil-0.4.7-armhf.deb 3.27 MB 2022-11-20T21:26:33Z
yggdrasil-0.4.7-i386.deb 3.35 MB 2022-11-20T21:26:32Z
yggdrasil-0.4.7-macos-amd64.pkg 3.66 MB 2022-11-20T21:26:14Z
yggdrasil-0.4.7-macos-arm64.pkg 3.41 MB 2022-11-20T21:26:11Z
yggdrasil-0.4.7-mips.deb 3.04 MB 2022-11-20T21:26:30Z
yggdrasil-0.4.7-mipsel.deb 3.11 MB 2022-11-20T21:26:29Z
yggdrasil-0.4.7-vendored.tar.gz 2.12 MB 2022-11-20T22:32:21Z
yggdrasil-0.4.7-x64.msi 3.16 MB 2022-11-20T21:26:17Z
yggdrasil-0.4.7-x86.msi 3.03 MB 2022-11-20T21:26:16Z
yggdrasil-edgeos2x-0.4.7-mips.deb 3.04 MB 2022-11-20T21:26:27Z
yggdrasil-edgeos2x-0.4.7-mipsel.deb 3.12 MB 2022-11-20T21:26:25Z
yggdrasil-vyos13-0.4.7-amd64.deb 3.53 MB 2022-11-20T21:26:24Z
yggdrasil-vyos13-0.4.7-i386.deb 3.35 MB 2022-11-20T21:26:22Z
Source code (zip) 2022-11-20T21:20:11Z
Source code (tar.gz) 2022-11-20T21:20:11Z
Они собирают только в DEB ... и исходники.
Yggdrasil в RPM
Добавлено: 27 июн 2023, 15:13
Olej
Конспектирую...
Код: Выделить всё
[olej@xenix IPv6]$ pwd
/home/olej/2023/IPv6
Код: Выделить всё
[olej@xenix IPv6]$ git clone https://github.com/yggdrasil-network/yggdrasil-go.git
Клонирование в «yggdrasil-go»...
remote: Enumerating objects: 12260, done.
remote: Counting objects: 100% (397/397), done.
remote: Compressing objects: 100% (188/188), done.
remote: Total 12260 (delta 234), reused 334 (delta 202), pack-reused 11863
Получение объектов: 100% (12260/12260), 3.40 МиБ | 183.00 КиБ/с, готово.
Определение изменений: 100% (8242/8242), готово.
Код: Выделить всё
[olej@xenix IPv6]$ du -hs yggdrasil-go
4,5M yggdrasil-go
Yggdrasil в RPM
Добавлено: 27 июн 2023, 15:44
Olej
Для сборки нужен GoLang...
Которого на этом компьютере нет:
Код: Выделить всё
[olej@xenix IPv6]$ which go
/usr/bin/which: no go in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin)
Но
свежую версию можно не собирать, а взять готовую:
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ dnf info golang
Последняя проверка окончания срока действия метаданных: 0:15:46 назад, Вт 27 июн 2023 15:01:46.
Имеющиеся пакеты
Имя : golang
Версия : 1.20.5
Выпуск : 1.fc38
Архитектура : x86_64
Размер : 604 k
Источник : golang-1.20.5-1.fc38.src.rpm
Репозиторий : updates
Краткое опис : The Go Programming Language
URL : https://go.dev
Лицензия : BSD and Public Domain
Описание : The Go Programming Language.
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ sudo dnf install golang
[sudo] пароль для olej:
Последняя проверка окончания срока действия метаданных: 1:21:13 назад, Вт 27 июн 2023 13:57:07.
Зависимости разрешены.
=======================================================================================================================================================================================================
Пакет Архитектура Версия Репозиторий Размер
=======================================================================================================================================================================================================
Установка:
golang x86_64 1.20.5-1.fc38 updates 604 k
Установка зависимостей:
golang-bin x86_64 1.20.5-1.fc38 updates 58 M
golang-src noarch 1.20.5-1.fc38 updates 11 M
Результат транзакции
=======================================================================================================================================================================================================
Установка 3 Пакета
Объем загрузки: 70 M
Объем изменений: 204 M
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/3): golang-1.20.5-1.fc38.x86_64.rpm 243 kB/s | 604 kB 00:02
(2/3): golang-src-1.20.5-1.fc38.noarch.rpm 1.4 MB/s | 11 MB 00:07
[MIRROR] golang-bin-1.20.5-1.fc38.x86_64.rpm: Curl error (18): Transferred a partial file for http://mirror.ihost.md/fedora/updates/38/Everything/x86_64/Packages/g/golang-bin-1.20.5-1.fc38.x86_64.rpm [transfer closed with 55033290 bytes remaining to read]
(3/3): golang-bin-1.20.5-1.fc38.x86_64.rpm 208 kB/s | 58 MB 04:44
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер 249 kB/s | 70 MB 04:46
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно.
Выполнение транзакции
Запуск скриптлета: golang-1.20.5-1.fc38.x86_64 1/1
Подготовка : 1/1
Установка : golang-src-1.20.5-1.fc38.noarch 1/3
Установка : golang-bin-1.20.5-1.fc38.x86_64 2/3
Запуск скриптлета: golang-bin-1.20.5-1.fc38.x86_64 2/3
Установка : golang-1.20.5-1.fc38.x86_64 3/3
Запуск скриптлета: golang-1.20.5-1.fc38.x86_64 3/3
Проверка : golang-1.20.5-1.fc38.x86_64 1/3
Проверка : golang-bin-1.20.5-1.fc38.x86_64 2/3
Проверка : golang-src-1.20.5-1.fc38.noarch 3/3
Установлен:
golang-1.20.5-1.fc38.x86_64 golang-bin-1.20.5-1.fc38.x86_64 golang-src-1.20.5-1.fc38.noarch
Выполнено!
Код: Выделить всё
[olej@xenix FUJITSU.ESPRIMO.P420]$ go version
go version go1.20.5 linux/amd64
Yggdrasil в RPM
Добавлено: 27 июн 2023, 15:56
Olej
Сборка:
Всё что нужно, из пакетов, GoLang подтянет сам...
Код: Выделить всё
[olej@xenix yggdrasil-go]$ time ./build
Building: yggdrasil
go: downloading github.com/gologme/log v1.2.0
go: downloading github.com/hashicorp/go-syslog v1.0.0
go: downloading github.com/hjson/hjson-go v3.1.0+incompatible
go: downloading github.com/kardianos/minwinsvc v1.0.2
go: downloading github.com/mitchellh/mapstructure v1.4.1
go: downloading golang.org/x/text v0.7.0
go: downloading github.com/Arceliar/ironwood v0.0.0-20221115123222-ec61cea2f439
go: downloading golang.org/x/net v0.7.0
get "golang.org/x/net": found meta tag vcs.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at //golang.org/x/net?go-get=1
get "golang.org/x/text": found meta tag vcs.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text?go-get=1
go: downloading github.com/Arceliar/phony v0.0.0-20210209235338-dde1a8dca979
go: downloading golang.org/x/sys v0.5.0
get "golang.org/x/sys": found meta tag vcs.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys?go-get=1
go: downloading github.com/vishvananda/netlink v1.1.0
go: downloading golang.zx2c4.com/wireguard v0.0.0-20211017052713-f87e87af0d9a
get "golang.zx2c4.com/wireguard": found meta tag vcs.metaImport{Prefix:"golang.zx2c4.com/wireguard", VCS:"git", RepoRoot:"https://git.zx2c4.com/wireguard-go"} at //golang.zx2c4.com/wireguard?go-get=1
go: downloading golang.org/x/crypto v0.0.0-20221012134737-56aed061732a
get "golang.org/x/crypto": found meta tag vcs.metaImport{Prefix:"golang.org/x/crypto", VCS:"git", RepoRoot:"https://go.googlesource.com/crypto"} at //golang.org/x/crypto?go-get=1
go: downloading github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f
internal/goarch
internal/unsafeheader
internal/coverage/rtcov
internal/goexperiment
internal/goos
internal/cpu
runtime/internal/syscall
runtime/internal/atomic
internal/race
internal/abi
sync/atomic
runtime/internal/math
runtime/internal/sys
unicode
unicode/utf8
internal/itoa
math/bits
crypto/subtle
crypto/internal/alias
crypto/internal/boring/sig
encoding
unicode/utf16
internal/nettrace
github.com/kardianos/minwinsvc
internal/bytealg
container/list
vendor/golang.org/x/crypto/cryptobyte/asn1
math
vendor/golang.org/x/crypto/internal/alias
golang.org/x/crypto/internal/alias
golang.org/x/crypto/salsa20/salsa
github.com/yggdrasil-network/yggdrasil-go/src/version
golang.org/x/text/encoding/internal/identifier
golang.org/x/net/internal/iana
golang.org/x/text/internal/utf8internal
runtime
github.com/Arceliar/phony
internal/reflectlite
sync
internal/godebug
internal/singleflight
internal/testlog
runtime/cgo
internal/intern
math/rand
errors
sort
internal/oserror
io
path
strconv
vendor/golang.org/x/net/dns/dnsmessage
internal/safefilepath
crypto/internal/nistec/fiat
syscall
container/heap
hash
bytes
crypto/internal/randutil
strings
golang.org/x/text/transform
reflect
crypto
net/netip
regexp/syntax
crypto/rc4
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/unicode
internal/syscall/unix
internal/syscall/execenv
time
regexp
internal/poll
io/fs
context
embed
os
internal/fmtsort
encoding/binary
encoding/base64
crypto/md5
vendor/golang.org/x/crypto/internal/poly1305
crypto/internal/edwards25519/field
golang.org/x/crypto/curve25519/internal/field
crypto/cipher
crypto/internal/nistec
fmt
net
encoding/pem
path/filepath
crypto/internal/edwards25519
io/ioutil
crypto/internal/boring
crypto/des
vendor/golang.org/x/crypto/chacha20
crypto/sha512
crypto/aes
crypto/hmac
crypto/sha1
crypto/sha256
vendor/golang.org/x/sys/cpu
vendor/golang.org/x/crypto/hkdf
golang.org/x/crypto/curve25519
crypto/ecdh
vendor/golang.org/x/crypto/chacha20poly1305
golang.org/x/sys/cpu
golang.org/x/crypto/internal/poly1305
golang.org/x/sys/unix
os/signal
math/big
encoding/hex
encoding/json
flag
github.com/gologme/log
log
net/url
golang.org/x/crypto/blake2b
golang.org/x/crypto/nacl/secretbox
golang.org/x/net/bpf
github.com/hjson/hjson-go
crypto/elliptic
crypto/internal/boring/bbig
crypto/internal/bigmod
encoding/asn1
crypto/dsa
crypto/rand
golang.org/x/crypto/nacl/box
crypto/ed25519
crypto/rsa
github.com/yggdrasil-network/yggdrasil-go/src/address
github.com/Arceliar/ironwood/encrypted/internal/e2c
github.com/yggdrasil-network/yggdrasil-go/src/config
github.com/yggdrasil-network/yggdrasil-go/src/defaults
crypto/x509/pkix
vendor/golang.org/x/crypto/cryptobyte
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
crypto/ecdsa
log/syslog
github.com/Arceliar/ironwood/types
golang.org/x/net/internal/socks
github.com/mitchellh/mapstructure
golang.org/x/net/internal/socket
github.com/vishvananda/netlink/nl
crypto/x509
github.com/Arceliar/ironwood/network
github.com/hashicorp/go-syslog
golang.org/x/net/proxy
golang.org/x/net/ipv6
golang.org/x/net/ipv4
github.com/vishvananda/netlink
github.com/Arceliar/ironwood/encrypted
golang.zx2c4.com/wireguard/tun
golang.org/x/net/icmp
crypto/tls
github.com/yggdrasil-network/yggdrasil-go/src/core
github.com/yggdrasil-network/yggdrasil-go/src/ipv6rwc
github.com/yggdrasil-network/yggdrasil-go/src/admin
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/src/multicast
# github.com/yggdrasil-network/yggdrasil-go/src/tun
src/tun/tun.go:125:13: tun.setupFD undefined (type *TunAdapter has no field or method setupFD)
real 2m9,967s
user 0m44,119s
sys 0m5,935s
Но вот тут - сбой
Это (см.
Yggdrasil (2)) предпоследний шаг сборки, ... но он не проходит!
Yggdrasil в RPM
Добавлено: 27 июн 2023, 16:11
Olej
Olej писал(а): ↑27 июн 2023, 15:56
предпоследний шаг сборки, ... но он не проходит!
Код: Выделить всё
[olej@xenix yggdrasil-go]$ git log -1
commit db9b57c052e628fa7dcef909a24bc39e532df469 (HEAD -> develop, origin/develop, origin/HEAD)
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date: Tue Jun 6 22:11:49 2023 +0100
Update `contrib/mobile` for the latest iOS build
А ведь было где-то в обсуждениях что последний девлоперский комит не собирается
Проект в разработке, в изменениях...
Код: Выделить всё
[olej@xenix yggdrasil-go]$ git branch -a
* develop
remotes/origin/HEAD -> origin/develop
remotes/origin/arc/linkfix
remotes/origin/develop
remotes/origin/future
remotes/origin/master
remotes/origin/neil/handshake
remotes/origin/neil/multicast
remotes/origin/neil/quic
remotes/origin/netstack
Код: Выделить всё
[olej@xenix yggdrasil-go]$ git checkout master
branch 'master' set up to track 'origin/master'.
Переключились на новую ветку «master»
Код: Выделить всё
[olej@xenix yggdrasil-go]$ git branch
develop
* master
Переключились:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ git log -1
commit 14f1cd4696a37b0f7fdcb067fac337c46953f8af (HEAD -> master, tag: v0.4.7, origin/master)
Merge: 4c66a13 b0f6544
Author: Neil Alexander <neilalexander@users.noreply.github.com>
Date: Sun Nov 20 21:20:11 2022 +0000
Version 0.4.7
Merge pull request #986 from yggdrasil-network/develop
Код: Выделить всё
[olej@xenix yggdrasil-go]$ time ./build
Building: yggdrasil
go: downloading golang.org/x/text v0.3.8
go: downloading golang.org/x/net v0.0.0-20221014081412-f15817d10f9b
go: downloading golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43
get "golang.org/x/text": found meta tag vcs.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text?go-get=1
get "golang.org/x/net": found meta tag vcs.metaImport{Prefix:"golang.org/x/net", VCS:"git", RepoRoot:"https://go.googlesource.com/net"} at //golang.org/x/net?go-get=1
get "golang.org/x/sys": found meta tag vcs.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys?go-get=1
golang.org/x/net/internal/iana
golang.org/x/text/internal/utf8internal
golang.org/x/text/encoding/internal/identifier
golang.org/x/text/transform
golang.org/x/sys/unix
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/net/internal/socks
golang.org/x/net/bpf
golang.org/x/text/encoding/internal
golang.org/x/sys/cpu
golang.org/x/net/proxy
golang.org/x/text/encoding/unicode
golang.org/x/crypto/blake2b
golang.org/x/crypto/nacl/box
github.com/Arceliar/ironwood/encrypted
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
golang.org/x/net/internal/socket
github.com/yggdrasil-network/yggdrasil-go/src/core
github.com/vishvananda/netlink/nl
golang.org/x/net/ipv6
golang.org/x/net/ipv4
golang.zx2c4.com/wireguard/tun
github.com/yggdrasil-network/yggdrasil-go/src/admin
github.com/vishvananda/netlink
golang.org/x/net/icmp
github.com/yggdrasil-network/yggdrasil-go/src/multicast
github.com/yggdrasil-network/yggdrasil-go/src/ipv6rwc
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil
Building: yggdrasilctl
go: downloading github.com/olekukonko/tablewriter v0.0.5
go: downloading github.com/mattn/go-runewidth v0.0.13
go: downloading github.com/rivo/uniseg v0.2.0
github.com/rivo/uniseg
bufio
github.com/mattn/go-runewidth
encoding/csv
github.com/olekukonko/tablewriter
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl
real 6m45,581s
user 0m19,401s
sys 0m3,079s
Вот так!
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ls -l | grep ^\-rwx
-rwxr-xr-x 1 olej olej 848 июн 27 15:11 build
-rwxr-xr-x 1 olej olej 25 июн 27 15:11 clean
-rwxr-xr-x 1 olej olej 5595136 июн 27 16:05 yggdrasil
-rwxr-xr-x 1 olej olej 3104768 июн 27 16:06 yggdrasilctl
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ./yggdrasil --version
Build name: yggdrasil
Build version: 0.4.7
Yggdrasil в RPM
Добавлено: 27 июн 2023, 16:27
Olej
Olej писал(а): ↑27 июн 2023, 15:13
Конспектирую...
... "с нуля" ... (см.
Yggdrasil (2)) -
по шагам и по пунктам
1. Генерируем черновой конфиг-файл:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ./yggdrasil -genconf > yggdrasil.conf
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ./yggdrasil -genconf
{
# List of connection strings for outbound peer connections in URI format,
# e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections
# will obey the operating system routing table, therefore you should
# use this section when you may connect via different interfaces.
Peers: []
# List of connection strings for outbound peer connections in URI format,
# arranged by source interface, e.g. { "eth0": [ "tls://a.b.c.d:e" ] }.
# Note that SOCKS peerings will NOT be affected by this option and should
# go in the "Peers" section instead.
InterfacePeers: {}
# Listen addresses for incoming connections. You will need to add
# listeners in order to accept incoming peerings from non-local nodes.
# Multicast peer discovery will work regardless of any listeners set
# here. Each listener should be specified in URI format as above, e.g.
# tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces.
Listen: []
# Listen address for admin connections. Default is to listen for local
# connections either on TCP/9001 or a UNIX socket depending on your
# platform. Use this value for yggdrasilctl -endpoint=X. To disable
# the admin socket, use the value "none" instead.
AdminListen: unix:///var/run/yggdrasil.sock
# Configuration for which interfaces multicast peer discovery should be
# enabled on. Each entry in the list should be a json object which may
# contain Regex, Beacon, Listen, and Port. Regex is a regular expression
# which is matched against an interface name, and interfaces use the
# first configuration that they match gainst. Beacon configures whether
# or not the node should send link-local multicast beacons to advertise
# their presence, while listening for incoming connections on Port.
# Listen controls whether or not the node listens for multicast beacons
# and opens outgoing connections.
MulticastInterfaces:
[
{
Regex: .*
Beacon: true
Listen: true
Port: 0
Priority: 0
}
]
# List of peer public keys to allow incoming peering connections
# from. If left empty/undefined then all connections will be allowed
# by default. This does not affect outgoing peerings, nor does it
# affect link-local peers discovered via multicast.
AllowedPublicKeys: []
# Your public key. Your peers may ask you for this to put
# into their AllowedPublicKeys configuration.
PublicKey: 6308742a685608a965a14212999b35e4d01519d86d98494e1bf40cf4c98171a3
# Your private key. DO NOT share this with anyone!
PrivateKey: 3a388e473b60156c80c3efd998dd0a2817b78fc0b8ba7bef460e69cda928b0ce6308742a685608a965a14212999b35e4d01519d86d98494e1bf40cf4c98171a3
# Local network interface name for TUN adapter, or "auto" to select
# an interface automatically, or "none" to run without TUN.
IfName: auto
# Maximum Transmission Unit (MTU) size for your local TUN interface.
# Default is the largest supported size for your platform. The lowest
# possible value is 1280.
IfMTU: 65535
# By default, nodeinfo contains some defaults including the platform,
# architecture and Yggdrasil version. These can help when surveying
# the network and diagnosing network routing problems. Enabling
# nodeinfo privacy prevents this, so that only items specified in
# "NodeInfo" are sent back if specified.
NodeInfoPrivacy: false
# Optional node info. This must be a { "key": "value", ... } map
# or set as null. This is entirely optional but, if set, is visible
# to the whole network on request.
NodeInfo: {}
}
Описание конфига, на русском языке, здесь:
Конфигурационный файл Yggdrasil на русском
Yggdrasil в RPM
Добавлено: 27 июн 2023, 16:37
Olej
Olej писал(а): ↑27 июн 2023, 16:27
1. Генерируем черновой конфиг-файл:
2. В принципе, если
в LAN есть уже работающий хост Yuggdrasil (
), то уже бы можно
пробоввать запускать ... за счёт link-local IPv6
Multicast Peer Discovery (см.
IPv6 хосты LAN (link-local) +
Yggdrasil in LAN)...
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo ./yggdrasil -useconffile ./yggdrasil.conf
2023/06/27 16:43:09 Build name: yggdrasil
2023/06/27 16:43:09 Build version: 0.4.7
2023/06/27 16:43:09 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 16:43:09 Interface name: tun0
2023/06/27 16:43:09 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 16:43:09 Interface MTU: 53049
2023/06/27 16:43:09 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 16:43:09 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 16:43:09 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 16:43:10 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Link handler tls://[fe80::522d:d0bd:b221:a526%enp2s0]:37861 error ([fe80::522d:d0bd:b221:a526%enp2s0]:37861): read handshake: EOF
2023/06/27 16:43:10 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:36483
2023/06/27 16:43:10 Connected outbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:53729
...
Видно как он сразу подцепился к локальным пирам IPv6: fe80::...
Код: Выделить всё
[olej@xenix yggdrasil-go]$ host ygg.linux-ru.lib
ygg.linux-ru.lib has IPv6 address 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ping -c3 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
PING 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771(221:58c9:9a6:99be:f3d:c1ac:2b5b:9771) 56 data bytes
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=1 ttl=64 time=454 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=530 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=480 ms
--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 454.113/487.961/529.800/31.411 ms
Это далеко
... за 4000 км. ...
Но лучше сразу подобрать и прописвать в yggdrasil.conf внешние пиры...
Yggdrasil в RPM
Добавлено: 27 июн 2023, 17:00
Olej
Olej писал(а): ↑27 июн 2023, 16:37
можно пробоввать запускать
3. Но проба пробой, а нужно прописать внешние пиры...
Откуда берутся URL внешних пиров прописано здесь:
Yggdrasil. Это зависит от
собственного местоположения ... но у меня уже есть список для другого хоста LAN (то же местоположение) - можно его использовать - только
обязательно проверить "живые" ли IP и ранжировать их по времени доступа (по ping)...
У меня для этого получился такой список:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ grep -v "#" yggdrasil.conf | grep -v ^$ | grep " Peers" -A9
Peers: [
tcp://195.123.245.146:7743
tcp://yggdrasil.su:62486
tcp://y.zbin.eu:7743
tcp://45.95.202.21:12403
tcp://aaoth.xyz:7777
tcp://51.15.204.214:12345
tcp://212.154.86.134:8800
tcp://158.101.229.219:17002
]
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo ./yggdrasil -useconffile ./yggdrasil.conf
[sudo] пароль для olej:
2023/06/27 17:13:21 Build name: yggdrasil
2023/06/27 17:13:21 Build version: 0.4.7
2023/06/27 17:13:21 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 17:13:21 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Interface name: tun0
2023/06/27 17:13:21 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 17:13:21 Interface MTU: 53049
2023/06/27 17:13:21 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 17:13:21 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 17:13:21 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 17:13:21 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:42271
2023/06/27 17:13:21 Connected outbound TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146:7743, source 192.168.1.20:58136
2023/06/27 17:13:21 Connected outbound TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250:62486, source 192.168.1.20:53090
2023/06/27 17:13:21 Connected outbound TCP: 21b:8286:225b:2fa8:3d1f:2250:72f1:57a3@45.95.202.21:12403, source 192.168.1.20:56850
2023/06/27 17:13:21 Failed to dial TCP 212.154.86.134:8800: dial tcp 212.154.86.134:8800: connect: connection refused
2023/06/27 17:13:21 Failed to dial TCP aaoth.xyz:7777: dial tcp 5.255.103.81:7777: connect: connection refused
2023/06/27 17:13:21 Connected outbound TCP: 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb@51.15.204.214:12345, source 192.168.1.20:53286
2023/06/27 17:13:21 Connected outbound TCP: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:40020
2023/06/27 17:13:21 Connected outbound TCP: 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c@158.101.229.219:17002, source 192.168.1.20:47348
...
Код: Выделить всё
[olej@xenix 2023]$ ip a s dev tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 53049 qdisc fq_codel state UNKNOWN group default qlen 500
link/none
inet6 201:1171:48a7:6391:3920:2499:1ebd:757f/7 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5eb6:93:a26c:d08/64 scope link stable-privacy
valid_lft forever preferred_lft forever
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ping -c3 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771
PING 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771(221:58c9:9a6:99be:f3d:c1ac:2b5b:9771) 56 data bytes
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=1 ttl=64 time=588 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=2 ttl=64 time=117 ms
64 bytes from 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771: icmp_seq=3 ttl=64 time=116 ms
--- 221:58c9:9a6:99be:f3d:c1ac:2b5b:9771 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 116.420/273.972/588.331/222.285 ms
Теперь и с ping всё становится лучше...
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo ./yggdrasilctl getself
Build name: yggdrasil
Build version: 0.4.7
IPv6 address: 201:1171:48a7:6391:3920:2499:1ebd:757f
IPv6 subnet: 301:1171:48a7:6391::/64
Coordinates: [1 17 8 10]
Public key: 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
Yggdrasil в RPM
Добавлено: 27 июн 2023, 17:36
Olej
Olej писал(а): ↑27 июн 2023, 15:56
Сборка:
4. Собранные бинарники не используют каких-то своих библиотек:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ldd yggdrasil
linux-vdso.so.1 (0x00007ffdeaf25000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007ff814280000)
libc.so.6 => /lib64/libc.so.6 (0x00007ff8140a2000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff8142b2000)
Код: Выделить всё
[olej@xenix yggdrasil-go]$ ldd yggdrasilctl
linux-vdso.so.1 (0x00007ffdc25f5000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f23c99d2000)
libc.so.6 => /lib64/libc.so.6 (0x00007f23c97f4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f23c9a04000)
Поэтому отправляю их в места доступности ("места постоянной дислокации"
):
Код: Выделить всё
[olej@xenix yggdrasil-go]$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/olej/.local/bin:/home/olej/bin
[olej@xenix yggdrasil-go]$ ls /usr/local/sbin
miredo miredo-checkconf miredo-server
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo cp yggdrasil /usr/local/sbin
[olej@xenix yggdrasil-go]$ sudo cp yggdrasilctl /usr/local/sbin
Olej писал(а): ↑27 июн 2023, 16:27
Генерируем черновой конфиг-файл:
Конфиг-файл готов:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo cp yggdrasil.conf /etc
Проверка:
Код: Выделить всё
[olej@xenix yggdrasil-go]$ sudo yggdrasil -useconffile /etc/yggdrasil.conf
[sudo] пароль для olej:
2023/06/27 17:34:30 Build name: yggdrasil
2023/06/27 17:34:30 Build version: 0.4.7
2023/06/27 17:34:30 UNIX admin socket listening on /var/run/yggdrasil.sock
2023/06/27 17:34:30 TLS listener started on [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Interface name: tun0
2023/06/27 17:34:30 Interface IPv6: 201:1171:48a7:6391:3920:2499:1ebd:757f/7
2023/06/27 17:34:30 Interface MTU: 53049
2023/06/27 17:34:30 Your public key is 7ba3add6271bb1b7f6d9b850a2a00b57db7179a82d162afc0e15889f62aa0773
2023/06/27 17:34:30 Your IPv6 address is 201:1171:48a7:6391:3920:2499:1ebd:757f
2023/06/27 17:34:30 Your IPv6 subnet is 301:1171:48a7:6391::/64
2023/06/27 17:34:30 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::9bac:3791:1b79:7237, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 21d:8a7c:aafa:f346:8115:14aa:9ca4:cd7f@fe80::13f5:9fe2:6393:bf4a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 21c:4cbf:9e0b:2904:301c:1c7a:9715:62c0@fe80::522d:d0bd:b221:a526, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected inbound TLS: 201:617b:8699:5a7f:356b:1da6:a5d6:c960@fe80::921b:eff:fe2b:fe3a, source [fe80::bdc9:d183:f9c0:ff56%enp2s0]:39451
2023/06/27 17:34:30 Connected outbound TCP: 202:db60::9ce0:a73d:7498:d7ae@195.123.245.146:7743, source 192.168.1.20:52454
2023/06/27 17:34:30 Connected outbound TCP: 21b:8286:225b:2fa8:3d1f:2250:72f1:57a3@45.95.202.21:12403, source 192.168.1.20:39102
2023/06/27 17:34:30 Connected outbound TCP: 218:71e5:78e4:8989:b71:db7f:7bf1:f1e1@94.130.176.250:62486, source 192.168.1.20:42434
2023/06/27 17:34:30 Connected outbound TCP: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:34420
2023/06/27 17:34:30 Connected outbound TCP: 21e:e795:8e82:a9e2:ff48:952d:55f2:f0bb@51.15.204.214:12345, source 192.168.1.20:36722
2023/06/27 17:34:31 Connected outbound TCP: 201:ca29:d4c5:50c8:b6f3:aa9a:e5d7:616c@158.101.229.219:17002, source 192.168.1.20:53736
...
Всё ОК