Yggdrasil в RPM

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 04 ноя 2023, 21:45

Olej писал(а):
04 ноя 2023, 21:43
И продолжается это:
В итоге:

Код: Выделить всё

[olej@xenix bin]$  ~/goroot/bin/go version
go version go1.21.3 linux/amd64

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 04 ноя 2023, 21:51

Закачал исходники Yggdrasil 0.5.1:

Код: Выделить всё

[olej@xenix Yggdrasil]$ pwd
/home/olej/2023/Yggdrasil

Код: Выделить всё

[olej@xenix Yggdrasil]$ git clone https://github.com/yggdrasil-network/yggdrasil-go.git
Клонирование в «yggdrasil-go»...
remote: Enumerating objects: 12692, done.
remote: Counting objects: 100% (829/829), done.
remote: Compressing objects: 100% (339/339), done.
remote: Total 12692 (delta 524), reused 728 (delta 460), pack-reused 11863
Получение объектов: 100% (12692/12692), 3.53 МиБ | 967.00 КиБ/с, готово.
Определение изменений: 100% (8531/8531), готово.
И сборка:

Код: Выделить всё

[olej@xenix Yggdrasil]$ cd yggdrasil-go/

[olej@xenix yggdrasil-go]$ pwd
/home/olej/2023/Yggdrasil/yggdrasil-go

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ./build 
Building: yggdrasil
go: downloading github.com/gologme/log v1.3.0
go: downloading github.com/hjson/hjson-go/v4 v4.3.0
go: downloading github.com/Arceliar/ironwood v0.0.0-20231104025256-ec84c695fc44
go: downloading golang.org/x/text v0.13.0
go: downloading golang.org/x/net v0.17.0
go: downloading github.com/Arceliar/phony v0.0.0-20220903101357-530938a4b13d
go: downloading golang.zx2c4.com/wireguard v0.0.0-20230223181233-21636207a675
go: downloading golang.org/x/crypto v0.14.0
go: downloading golang.org/x/sys v0.13.0
go: downloading github.com/quic-go/quic-go v0.39.3
go: downloading github.com/bits-and-blooms/bloom/v3 v3.3.1
go: downloading github.com/bits-and-blooms/bitset v1.5.0
go: downloading golang.org/x/exp v0.0.0-20221205204356-47842c84f3db
golang.org/x/crypto/internal/alias
golang.org/x/exp/constraints
github.com/quic-go/quic-go/internal/utils/ringbuffer
golang.org/x/net/internal/iana
golang.org/x/crypto/salsa20/salsa
github.com/kardianos/minwinsvc
github.com/gologme/log
github.com/yggdrasil-network/yggdrasil-go/src/version
github.com/hjson/hjson-go/v4
github.com/yggdrasil-network/yggdrasil-go/src/address
github.com/Arceliar/phony
github.com/bits-and-blooms/bitset
golang.org/x/crypto/curve25519
golang.org/x/crypto/internal/poly1305
golang.org/x/sys/cpu
github.com/hashicorp/go-syslog
github.com/Arceliar/ironwood/types
github.com/Arceliar/ironwood/encrypted/internal/e2c
github.com/quic-go/quic-go/internal/utils/linkedlist
github.com/quic-go/quic-go/internal/protocol
golang.org/x/crypto/blake2b
github.com/bits-and-blooms/bloom/v3
golang.org/x/crypto/nacl/secretbox
golang.org/x/crypto/chacha20
golang.org/x/crypto/hkdf
golang.org/x/exp/rand
golang.org/x/net/bpf
github.com/quic-go/quic-go/internal/utils
github.com/quic-go/quic-go/internal/qtls
github.com/quic-go/quic-go/internal/qerr
github.com/Arceliar/ironwood/network
github.com/quic-go/quic-go/quicvarint
golang.org/x/crypto/chacha20poly1305
golang.org/x/net/internal/socks
golang.org/x/crypto/nacl/box
github.com/quic-go/quic-go/internal/flowcontrol
golang.org/x/sys/unix
github.com/quic-go/quic-go/internal/wire
golang.org/x/text/encoding/internal/identifier
golang.org/x/net/proxy
golang.org/x/text/transform
golang.org/x/text/internal/utf8internal
github.com/Arceliar/ironwood/encrypted
golang.org/x/text/encoding
golang.org/x/text/runes
golang.org/x/text/encoding/internal
github.com/quic-go/quic-go/logging
golang.org/x/text/encoding/unicode
github.com/quic-go/quic-go/internal/logutils
github.com/quic-go/quic-go/internal/handshake
github.com/quic-go/quic-go/internal/congestion
github.com/yggdrasil-network/yggdrasil-go/src/config
github.com/quic-go/quic-go/internal/ackhandler
golang.zx2c4.com/wireguard/rwcancel
github.com/vishvananda/netns
golang.org/x/net/internal/socket
github.com/vishvananda/netlink/nl
golang.org/x/net/ipv6
golang.org/x/net/ipv4
github.com/vishvananda/netlink
golang.zx2c4.com/wireguard/tun
golang.org/x/net/icmp
github.com/quic-go/quic-go
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/multicast
github.com/yggdrasil-network/yggdrasil-go/src/tun
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasil
Building: yggdrasilctl
go: downloading github.com/mattn/go-runewidth v0.0.14
github.com/rivo/uniseg
github.com/mattn/go-runewidth
github.com/olekukonko/tablewriter
github.com/yggdrasil-network/yggdrasil-go/cmd/yggdrasilctl

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 04 ноя 2023, 22:49

Olej писал(а):
04 ноя 2023, 21:51
И сборка:
Вот оно:

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ls -l yggdrasil*
-rwxr-xr-x 1 olej olej 8347648 ноя  4 18:00 yggdrasil
-rwxr-xr-x 1 olej olej 5988352 ноя  4 18:00 yggdrasilctl

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ./yggdrasil --version
Build name: yggdrasil-develop
Build version: 0.5.1-5-g6a9c90d

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 04 ноя 2023, 23:12

Olej писал(а):
04 ноя 2023, 22:49
Вот оно:

Код: Выделить всё

[root@xenix Yggdrasil]# yggdrasil-go/yggdrasil -useconffile /etc/yggdrasil.conf
2023/11/04 18:09:34 Build name: yggdrasil-develop
2023/11/04 18:09:34 Build version: 0.5.1-5-g6a9c90d
2023/11/04 18:09:34 Your public key is 0000000262c2ad7ddb908877e0217a28dbf18e27c71f06cbdc449abc192a2e28
2023/11/04 18:09:34 Your IPv6 address is 21e:ce9e:a941:1237:bbc4:fef:42eb:9207
2023/11/04 18:09:34 Your IPv6 subnet is 31e:ce9e:a941:1237::/64
2023/11/04 18:09:34 UNIX admin socket listening on /var/run/yggdrasil/yggdrasil.sock
2023/11/04 18:09:34 Interface name: tun0
2023/11/04 18:09:34 Interface IPv6: 21e:ce9e:a941:1237:bbc4:fef:42eb:9207/7
2023/11/04 18:09:34 Interface MTU: 65535
2023/11/04 18:09:34 Connected outbound: 222:95b0:8197:1043:ad85:6aea:9e6b:1e9@193.93.119.42:14244, source 192.168.1.20:43874
2023/11/04 18:09:34 Connected outbound: 222:10d:b0b4:f237:5db9:e47c:a2e6:9ab9@178.132.161.124:65533, source 192.168.1.20:50168
2023/11/04 18:09:34 Connected outbound: 225:124e:2a74:9966:d18d:2f19:adbf:a950@88.210.3.30:65533, source 192.168.1.20:32788
2023/11/04 18:09:34 Connected outbound: 224:79c3:da07:db06:60ef:282d:f908:d97@87.251.77.39:65533, source 192.168.1.20:42202
2023/11/04 18:09:34 Connected outbound: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:34806
2023/11/04 18:09:34 Connected outbound: 200:b858:3f39:af76:83ae:bb1:ebb2:604e@149.28.135.180:6642, source 192.168.1.20:42906
2023/11/04 18:09:39 Failed to connect to [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: dial tcp [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: i/o timeout
2023/11/04 18:09:40 Connected outbound: 200:b1ff:9827:dc87:f067:c43b:d546:1dd7@38.54.87.34:1996, source 192.168.1.20:35408
...

Код: Выделить всё

[olej@xenix yggdrasil-go]$ sudo yggdrasilctl getself
[sudo] пароль для olej:
Build name:    yggdrasil-develop
Build version: 0.5.1-5-g6a9c90d
IPv6 address:  21e:ce9e:a941:1237:bbc4:fef:42eb:9207
IPv6 subnet:   31e:ce9e:a941:1237::/64
Coordinates:   []
Public key:    0000000262c2ad7ddb908877e0217a28dbf18e27c71f06cbdc449abc192a2e28

Код: Выделить всё

[olej@xenix yggdrasil-go]$ sudo yggdrasilctl getpeers
Port                            Public Key                                          IP Address                Uptime     RX   TX  Pr                URI
1    000000002d49efcd1df78a4f52a2ac329fc2cac6517b68c076d4801bdb7cf101 222:95b0:8197:1043:ad85:6aea:9e6b:1e9   1m28s     11kb  1kb 0    tcp://193.93.119.42:14244
2    000000003fde49e961b91448c3706ba32ca8c8a3c66c087e871b7cb2e3088572 222:10d:b0b4:f237:5db9:e47c:a2e6:9ab9   1m28s      2kb  2kb 0    tcp://178.132.161.124:65533
3    0000000007b6c7562d9a64b9cb439949015abeb9b4384c58825313c71a742808 225:124e:2a74:9966:d18d:2f19:adbf:a950  1m28s      2kb  1kb 0    tcp://88.210.3.30:65533
4    000000000c31e12fc127ccf886be9037bf9343b3ae24f8b3a050eb1078403e08 224:79c3:da07:db06:60ef:282d:f908:d97   1m28s      3kb  1kb 0    tcp://87.251.77.39:65533
5    91deffffffffe01abab3514ca4cfc27ec04dc261c801d285f0ce06e3314f8b6e 200:dc42::3fca:8a99:5d66:b660           1m28s      1kb  1kb 0    tcp://y.zbin.eu:7743
6    a3d3e0632844be28fa270a26cfd8a3c57d3559dbe6a5fd08ca3bf22666565112 200:b858:3f39:af76:83ae:bb1:ebb2:604e   1m28s      2kb  2kb 0    tcp://sin.yuetau.net:6642
7    a70033ec11bc07cc1de2155cf1144e4fa6ef6cc7a32cd1cbe0ce7bda27212360 200:b1ff:9827:dc87:f067:c43b:d546:1dd7  1m23s      2kb  1kb 0    tcp://mima.localghost.org:1996

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ip -6 a s tun0
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 65535 qdisc fq_codel state UNKNOWN group default qlen 500
    inet6 21e:ce9e:a941:1237:bbc4:fef:42eb:9207/7 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::c399:ebdf:a342:782b/64 scope link stable-privacy proto kernel_ll
       valid_lft forever preferred_lft forever
И ping на ранее развёрнутые хосты Yggdrasil 0.5.1:

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ping -c3 227:7aa8:be12:eec3:4c51:357c:1d6f:f889
PING 227:7aa8:be12:eec3:4c51:357c:1d6f:f889(227:7aa8:be12:eec3:4c51:357c:1d6f:f889) 56 data bytes
64 bytes from 227:7aa8:be12:eec3:4c51:357c:1d6f:f889: icmp_seq=1 ttl=64 time=126 ms
64 bytes from 227:7aa8:be12:eec3:4c51:357c:1d6f:f889: icmp_seq=2 ttl=64 time=31.5 ms
64 bytes from 227:7aa8:be12:eec3:4c51:357c:1d6f:f889: icmp_seq=3 ttl=64 time=31.7 ms

--- 227:7aa8:be12:eec3:4c51:357c:1d6f:f889 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 31.546/63.015/125.849/44.430 ms

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ping -c3 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81
PING 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81(222:5ef:a2ae:372b:9d7e:4d11:909a:dd81) 56 data bytes
64 bytes from 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81: icmp_seq=1 ttl=64 time=139 ms
64 bytes from 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81: icmp_seq=2 ttl=64 time=32.2 ms
64 bytes from 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81: icmp_seq=3 ttl=64 time=32.0 ms

--- 222:5ef:a2ae:372b:9d7e:4d11:909a:dd81 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 31.977/67.683/138.894/50.353 ms
(Характерные для Yggdrasil длинный 1-й ping - установление трассы через внешние пиры, и короткие последующие - по этой уже установленной трассе.)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 11:51

Olej писал(а):
27 июн 2023, 17:36
Поэтому отправляю их в места доступности ("места постоянной дислокации" :-D ):
Olej писал(а):
27 июн 2023, 17:36
[olej@xenix yggdrasil-go]$ sudo cp yggdrasil /usr/local/sbin
[olej@xenix yggdrasil-go]$ sudo cp yggdrasilctl /usr/local/sbin
Чтобы окончательно распрощаться с версией 0.4.7 - не забыть:

Код: Выделить всё

[olej@xenix yggdrasil-go]$ pwd
/home/olej/2023/Yggdrasil/yggdrasil-go

[olej@xenix yggdrasil-go]$ sudo cp yggdrasil /usr/local/sbin

[olej@xenix yggdrasil-go]$ sudo cp yggdrasilctl /usr/local/sbin

Код: Выделить всё

[olej@xenix yggdrasil-go]$ yggdrasil --version
Build name: yggdrasil-develop
Build version: 0.5.1-5-g6a9c90d
И тогда:

Код: Выделить всё

[olej@xenix ~]$ sudo systemctl start yggdrasil

Код: Выделить всё

[olej@xenix ~]$ systemctl --no-pager --full status yggdrasil
● yggdrasil.service - yggdrasil
     Loaded: loaded (/etc/systemd/system/yggdrasil.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Sun 2023-11-05 10:41:10 EET; 2min 12s ago
    Process: 8900 ExecStartPre=/sbin/modprobe tun (code=exited, status=0/SUCCESS)
   Main PID: 8901 (yggdrasil)
      Tasks: 14 (limit: 9337)
     Memory: 5.8M
     CGroup: /system.slice/yggdrasil.service
             └─8901 /usr/local/sbin/yggdrasil -useconffile /etc/yggdrasil.conf

ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Interface IPv6: 21e:ce9e:a941:1237:bbc4:fef:42eb:9207/7
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Interface MTU: 65535
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 222:95b0:8197:1043:ad85:6aea:9e6b:1e9@193.93.119.42:14244, source 192.168.1.20:58574
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 222:10d:b0b4:f237:5db9:e47c:a2e6:9ab9@178.132.161.124:65533, source 192.168.1.20:50952
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 225:124e:2a74:9966:d18d:2f19:adbf:a950@88.210.3.30:65533, source 192.168.1.20:38048
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:46492
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 224:79c3:da07:db06:60ef:282d:f908:d97@87.251.77.39:65533, source 192.168.1.20:38504
ноя 05 10:41:10 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:10 Connected outbound: 200:b858:3f39:af76:83ae:bb1:ebb2:604e@149.28.135.180:6642, source 192.168.1.20:37282
ноя 05 10:41:15 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:15 Failed to connect to [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: dial tcp [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: i/o timeout
ноя 05 10:41:15 xenix.localdomain yggdrasil[8901]: 2023/11/05 10:41:15 Connected outbound: 200:b1ff:9827:dc87:f067:c43b:d546:1dd7@38.54.87.34:1996, source 192.168.1.20:48302

Код: Выделить всё

[olej@xenix ~]$ sudo yggdrasilctl getself
Build name:        	yggdrasil-develop                                               	
Build version:     	0.5.1-5-g6a9c90d                                                	
IPv6 address:      	21e:ce9e:a941:1237:bbc4:fef:42eb:9207                           	
IPv6 subnet:       	31e:ce9e:a941:1237::/64                                         	
Routing table size:	24                                                              	
Public key:        	0000000262c2ad7ddb908877e0217a28dbf18e27c71f06cbdc449abc192a2e28	
Обращаем внимание, что вывод getself поменялся: вместо Coordinates: теперь Routing table size: ... хотя толковать хоть то, хоть другое - я не умею. :lol:

Код: Выделить всё

[olej@xenix ~]$ sudo yggdrasilctl getpeers
             URI              	State	Dir	              IP Address              	Uptime	 RX 	 TX 	Pr	Last Error 
tcp://193.93.119.42:14244     	Up   	Out	222:95b0:8197:1043:ad85:6aea:9e6b:1e9 	2m43s 	 5kb	 1kb	0 	-         	
tcp://178.132.161.124:65533   	Up   	Out	222:10d:b0b4:f237:5db9:e47c:a2e6:9ab9 	2m43s 	 2kb	 2kb	0 	-         	
tcp://88.210.3.30:65533       	Up   	Out	225:124e:2a74:9966:d18d:2f19:adbf:a950	2m43s 	 3kb	 3kb	0 	-         	
tcp://y.zbin.eu:7743          	Up   	Out	200:dc42::3fca:8a99:5d66:b660         	2m43s 	 2kb	 2kb	0 	-         	
tcp://87.251.77.39:65533      	Up   	Out	224:79c3:da07:db06:60ef:282d:f908:d97 	2m43s 	 3kb	 2kb	0 	-         	
tcp://sin.yuetau.net:6642     	Up   	Out	200:b858:3f39:af76:83ae:bb1:ebb2:604e 	2m43s 	 2kb	 3kb	0 	-         	
tcp://mima.localghost.org:1996	Up   	Out	200:b1ff:9827:dc87:f067:c43b:d546:1dd7	2m37s 	 2kb	 3kb	0 	-         	

Код: Выделить всё

[olej@xenix yggdrasil-go]$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::bdc9:d183:f9c0:ff56/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
16: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 65535 state UNKNOWN qlen 500
    inet6 21e:ce9e:a941:1237:bbc4:fef:42eb:9207/7 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::4110:5187:eb1b:8063/64 scope link stable-privacy proto kernel_ll 
       valid_lft forever preferred_lft forever

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 11:58

Olej писал(а):
05 ноя 2023, 11:51
И тогда:
Но это всё - только при условии (для версии 5.0.1) что каталог /var/run/yggdrasil (или он же /run/yggdrasil - там ссылка) существует :!:

Код: Выделить всё

[root@xenix log]# grep yggdrasil.sock messages | tail -n2
Nov  5 10:25:00 xenix yggdrasil[7880]: 2023/11/05 10:25:00 UNIX admin socket listening on /var/run/yggdrasil/yggdrasil.sock
Nov  5 10:41:10 xenix yggdrasil[8901]: 2023/11/05 10:41:10 UNIX admin socket listening on /var/run/yggdrasil/yggdrasil.sock

Код: Выделить всё

[root@xenix log]# ls -l /var/run/yggdrasil/
итого 0
srw-rw---- 1 root yggdrasil 0 ноя  5 10:41 yggdrasil.sock
А он после перезагрузки, естественно, не создаётся :cry: :!:
И, пока ( :!: ) мне приходится создавать его вручную. :-o

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 12:26

Olej писал(а):
05 ноя 2023, 11:58
А он после перезагрузки, естественно, не создаётся :cry: :!:
И, пока ( :!: ) мне приходится создавать его вручную.
В обсуждениях (багах) репозитория проекта Yggdrasil авторы пишут: admin unix-socket binds correctly only to a specific path - что помогает в этом случае добавление в сервис-скрипт:

Код: Выделить всё

ReadWritePaths=/var/run/yggdrasil/ /run/yggdrasil/
Но :!: :!: :!:

1. У меня в Fedora 38 (и ручные сервис-скрипты) это ни фига не помогает :!: :-(

Код: Выделить всё

[olej@xenix ~]$ cat /etc/systemd/system/yggdrasil.service
[Unit]
Description=yggdrasil
Wants=network-online.target
Wants=yggdrasil-default-config.service
After=network-online.target
After=yggdrasil-default-config.service

[Service]
Group=yggdrasil
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=yggdrasil
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStartPre=+-/sbin/modprobe tun
ExecStart=/usr/local/sbin/yggdrasil -useconffile /etc/yggdrasil.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
TimeoutStopSec=5
ReadWritePaths=/var/run/yggdrasil /run/yggdrasil

[Install]
WantedBy=multi-user.target
2. Если это кому-то и помогло (как я понимаю, политики ReadWritePaths= ... относятся к разрешению записи, но не созданию по требованию каталога промежуточного уровня /run/yggdrasil) - то и это панацея только для запуска сервиса systemd. Но она нисколько не поможет при ручном запуске Yggdrasil по типу:

Код: Выделить всё

[olej@xenix yggdrasil-go]$ sudo yggdrasil -useconffile /etc/yggdrasil.conf
...
Пока это для меня не решённый вопрос :!:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 16:09

Olej писал(а):
05 ноя 2023, 12:26
У меня в Fedora 38 (и ручные сервис-скрипты) это ни фига не помогает
Пока я нашёл только такое грубое решение "в лоб" для запуска сервиса:

Код: Выделить всё

[root@xenix system]# cat /etc/systemd/system/yggdrasil.service
[Unit]
Description=yggdrasil
Wants=network-online.target
Wants=yggdrasil-default-config.service
After=network-online.target
After=yggdrasil-default-config.service

[Service]
Group=yggdrasil
ProtectHome=true
ProtectSystem=true
SyslogIdentifier=yggdrasil
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStartPre=+-/sbin/modprobe tun
ExecStartPre=-/usr/bin/mkdir /run/yggdrasil
ExecStart=/usr/local/sbin/yggdrasil -useconffile /etc/yggdrasil.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target
Команда ExecStartPre=-/usr/bin/mkdir /run/yggdrasil создаст каталог, а "-" показывает что действие нужно продолжать независимо от результата комманды...

Код: Выделить всё

root@xenix run]# systemctl stop yggdrasil

[root@xenix run]# ls -ld /run/yggdrasil
drwxr-xr-x 2 root root 40 ноя  5 14:53 /run/yggdrasil

[root@xenix run]# rmdir  /run/yggdrasil

[root@xenix run]# ls -ld /run/yggdrasil
ls: невозможно получить доступ к '/run/yggdrasil': Нет такого файла или каталога

Код: Выделить всё

[root@xenix run]# systemctl start yggdrasil

Код: Выделить всё

[root@xenix run]# ls -l /run/yggdrasil
итого 0
srw-rw---- 1 root yggdrasil 0 ноя  5 14:55 yggdrasil.sock

[root@xenix run]# ls -ld /run/yggdrasil
drwxr-xr-x 2 root yggdrasil 60 ноя  5 14:55 /run/yggdrasil

[root@xenix run]# date
Вс 05 ноя 2023 14:56:23 EET
Свеже созданный каталог.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 16:14

Olej писал(а):
05 ноя 2023, 16:09
Свеже созданный каталог.
И ещё один рестарт:

Код: Выделить всё

[root@xenix run]# date
Вс 05 ноя 2023 15:02:13 EET

Код: Выделить всё

[root@xenix run]# ls -l /run/yggdrasil
итого 0
srw-rw---- 1 root yggdrasil 0 ноя  5 14:55 yggdrasil.sock

Код: Выделить всё

[root@xenix run]# systemctl restart yggdrasil

Код: Выделить всё

[olej@xenix yggdrasil-go]$ systemctl --no-pager --full status yggdrasil
● yggdrasil.service - yggdrasil
     Loaded: loaded (/etc/systemd/system/yggdrasil.service; enabled; preset: disabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf
     Active: active (running) since Sun 2023-11-05 15:02:59 EET; 25s ago
    Process: 18790 ExecStartPre=/sbin/modprobe tun (code=exited, status=0/SUCCESS)
    Process: 18794 ExecStartPre=/usr/bin/mkdir /run/yggdrasil (code=exited, status=1/FAILURE)
   Main PID: 18795 (yggdrasil)
      Tasks: 13 (limit: 9337)
     Memory: 4.3M
     CGroup: /system.slice/yggdrasil.service
             └─18795 /usr/local/sbin/yggdrasil -useconffile /etc/yggdrasil.conf
     
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Interface IPv6: 21e:ce9e:a941:1237:bbc4:fef:42eb:9207/7
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Interface MTU: 65535
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 222:95b0:8197:1043:ad85:6aea:9e6b:1e9@193.93.119.42:14244, source 192.168.1.20:47520
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 222:10d:b0b4:f237:5db9:e47c:a2e6:9ab9@178.132.161.124:65533, source 192.168.1.20:58840
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 200:dc42::3fca:8a99:5d66:b660@77.247.225.234:7743, source 192.168.1.20:57924
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 225:124e:2a74:9966:d18d:2f19:adbf:a950@88.210.3.30:65533, source 192.168.1.20:35520
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 224:79c3:da07:db06:60ef:282d:f908:d97@87.251.77.39:65533, source 192.168.1.20:53200
ноя 05 15:02:59 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:02:59 Connected outbound: 200:b858:3f39:af76:83ae:bb1:ebb2:604e@149.28.135.180:6642, source 192.168.1.20:51616
ноя 05 15:03:04 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:03:04 Failed to connect to [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: dial tcp [200:b1ff:9827:dc87:f067:c43b:d546:1dd7]:1996: i/o timeout
ноя 05 15:03:04 xenix.localdomain yggdrasil[18795]: 2023/11/05 15:03:04 Connected outbound: 200:b1ff:9827:dc87:f067:c43b:d546:1dd7@38.54.87.34:1996, source 192.168.1.20:41330
(см. время старта сервиса)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Yggdrasil в RPM

Непрочитанное сообщение Olej » 05 ноя 2023, 17:38

Olej писал(а):
05 ноя 2023, 12:26
У меня в Fedora 38 (и ручные сервис-скрипты) это ни фига не помогает
Olej писал(а):
05 ноя 2023, 16:09
нашёл только такое грубое решение "в лоб" для запуска сервиса
Разобрался за счёт чего авторы проекта сделали при автоматическом обновлении DEB пакета 5.0.1 ...
Вот, даже на таком малыге (это ChromeBook):

Код: Выделить всё

olej@galliumos:~/2023$ inxi -MCxxx
Machine:   Device: laptop System: GOOGLE product: Glimmer v: 1.0 serial: N/A  Chassis: type: 9 serial: N/A
           Mobo: GOOGLE model: Glimmer v: 1.0 serial: N/A UEFI: coreboot v: MrChromebox-4.12 date: 06/04/2020
CPU:       Quad core Intel Celeron N2930 (-MCP-) arch: Silvermont rev.8 cache: 1024 KB
           flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 14660
           clock speeds: min/max: 499/2165 MHz 1: 2165 MHz 2: 2165 MHz 3: 2165 MHz 4: 2165 MHz
Вот из сервис-файл:

Код: Выделить всё

root@galliumos:/etc# cat /lib/systemd/system/yggdrasil.service
[Unit]
Description=Yggdrasil Network
Wants=network-online.target
Wants=yggdrasil-default-config.service
After=network-online.target
After=yggdrasil-default-config.service

[Service]
Group=yggdrasil
ProtectHome=true
ProtectSystem=strict
NoNewPrivileges=true
RuntimeDirectory=yggdrasil
ReadWritePaths=/var/run/yggdrasil/ /run/yggdrasil/
SyslogIdentifier=yggdrasil
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStartPre=+-/sbin/modprobe tun
ExecStart=/usr/bin/yggdrasil -useconffile /etc/yggdrasil/yggdrasil.conf
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target
Вот те 2 строки (собственно 1-я, 2-я это только разрешения):
RuntimeDirectory=yggdrasil
ReadWritePaths=/var/run/yggdrasil/ /run/yggdrasil/
И то как это работает:

Код: Выделить всё

root@galliumos:/etc# ls /run/yggdrasil
yggdrasil.sock

Код: Выделить всё

root@galliumos:/etc# systemctl stop yggdrasil

Код: Выделить всё

root@galliumos:/etc# ls /run/yggdrasil
ls: невозможно получить доступ к '/run/yggdrasil': Нет такого файла или каталога

Код: Выделить всё

root@galliumos:/etc# systemctl start yggdrasil

Код: Выделить всё

root@galliumos:/etc# ls /run/yggdrasil
yggdrasil.sock

Код: Выделить всё

root@galliumos:/etc# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
12: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 5c:c5:d4:b4:0b:72 brd ff:ff:ff:ff:ff:ff
14: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 65535 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 15 гостей