Mist, jetzt habe ich auch noch Streamlit gefunden. Jetzt geht mir langsam die Zeit aus...
Wireguard - Client installieren
-
Da wir ja jetzt an dem Punkt ankommen, wo Wireguard im Mainstream ankommt hier mal eine Vorgehensweise, wie man Wireguard als Client auf einem ROCKPro64 installiert.
Hardware
- ROCKPro64v2.1 2GB RAM
- PCIe NVMe SSD und Adapterkarte
Software
- Release 0.10.9 vom Kamil
- Linux rockpro64 5.6.0-1132-ayufan-g81043e6e109a #ayufan SMP Tue Apr 7 10:07:35 UTC 2020 aarch64 GNU/Linux
- u-boot im SPI
Hintergrund Wireguard
Seit der Veröffentlichung vom Kernel 5.6 sind die benötigten Kernelmodule im Kernel enthalten. Das heißt, wir müssen uns nicht mehr darum kümmern. Hier die Liste der Module, wenn Wireguard läuft.
root@rockpro64:/etc/wireguard# lsmod | grep wireguard wireguard 90112 0 libchacha20poly1305 16384 1 wireguard ip6_udp_tunnel 16384 1 wireguard udp_tunnel 16384 1 wireguard libcurve25519_generic 36864 1 wireguard libblake2s 16384 1 wireguard
Voraussetzung
Ich gehe von einer funktionierenden Installation auf dem ROCKPro64 aus. Dazu setze ich schon immer Debian in folgender Version ein.
Ergibt dann
root@rockpro64:/etc/wireguard# cat /etc/debian_version 10.3
Installation
Backports
In Debian Buster 10.3 fehlt das Wireguard Paket. Um das nun installieren zu können, benötigen wir die Backports.
Dazu öffnen wir die Datei /etc/apt/sources.list und fügen ans Ende folgende Zeile hinzu.deb http://deb.debian.org/debian buster-backports main
Danach abspeichern.
Wireguard installieren
Erstmal die Paketliste aktualisieren.
apt update
Danach ein
root@rockpro64:~# apt install wireguard Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: dkms wireguard-dkms wireguard-tools Suggested packages: python3-apport menu Recommended packages: fakeroot linux-headers-686-pae | linux-headers-amd64 | linux-headers-generic | linux-headers The following NEW packages will be installed: dkms wireguard wireguard-dkms wireguard-tools 0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded. Need to get 425 kB of archives. After this operation, 2374 kB of additional disk space will be used. Do you want to continue? [Y/n] Get:1 http://deb.debian.org/debian buster-backports/main arm64 wireguard-dkms all 0.0.20200318-1~bpo10+1 [253 kB] Get:2 http://deb.debian.org/debian buster-backports/main arm64 wireguard-tools arm64 1.0.20200319-1~bpo10+1 [89.7 kB] Get:3 http://deb.debian.org/debian buster-backports/main arm64 wireguard all 1.0.20200319-1~bpo10+1 [7464 B] Get:4 http://cdn-fastly.deb.debian.org/debian buster/main arm64 dkms all 2.6.1-4 [74.4 kB] Fetched 425 kB in 0s (1214 kB/s) Selecting previously unselected package dkms. (Reading database ... 41667 files and directories currently installed.) Preparing to unpack .../archives/dkms_2.6.1-4_all.deb ... Unpacking dkms (2.6.1-4) ... Selecting previously unselected package wireguard-dkms. Preparing to unpack .../wireguard-dkms_0.0.20200318-1~bpo10+1_all.deb ... Unpacking wireguard-dkms (0.0.20200318-1~bpo10+1) ... Selecting previously unselected package wireguard-tools. Preparing to unpack .../wireguard-tools_1.0.20200319-1~bpo10+1_arm64.deb ... Unpacking wireguard-tools (1.0.20200319-1~bpo10+1) ... Selecting previously unselected package wireguard. Preparing to unpack .../wireguard_1.0.20200319-1~bpo10+1_all.deb ... Unpacking wireguard (1.0.20200319-1~bpo10+1) ... Setting up dkms (2.6.1-4) ... Setting up wireguard-dkms (0.0.20200318-1~bpo10+1) ... Loading new wireguard-0.0.20200318 DKMS files... It is likely that 5.6.0-1132-ayufan-g81043e6e109a belongs to a chroot's host Building for 5.6.0-1132-ayufan-g81043e6e109a Building initial module for 5.6.0-1132-ayufan-g81043e6e109a Error! The dkms.conf for this module includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch. This indicates that it should not be built. Skipped. Setting up wireguard-tools (1.0.20200319-1~bpo10+1) ... Setting up wireguard (1.0.20200319-1~bpo10+1) ...
Danach ist Wireguard in folgender Version vorhanden.
root@rockpro64:~# wg version wireguard-tools v1.0.20200319 - https://git.zx2c4.com/wireguard-tools/
Wirguard Keys erzeugen
root@rockpro64:/etc/wireguard# wg genkey > private.key Warning: writing to world accessible file. Consider setting the umask to 077 and trying again. root@rockpro64:/etc/wireguard# wg pubkey > public.key < private.key root@rockpro64:/etc/wireguard# wg genpsk > psk.key Warning: writing to world accessible file. Consider setting the umask to 077 and trying again.
Nehmt den Warnhinweis ernst, auf einem Server sollte man das so nicht lassen!
Inhalt von /etc/wireguard
root@rockpro64:/etc/wireguard# ls private.key psk.key public.key
Wireguard wg0.conf
[Interface] Address = 10.10.1.2, <IPv6 Adresse> PrivateKey = <private Key> ListenPort = 51820 DNS = 10.10.1.1 [Peer] Endpoint = <Server IP>:51820 PublicKey = <public Key> vom Server!! PresharedKey = <preshared Key> Client und Server gleich! AllowedIPs = 0.0.0.0/0, ::/0
Zur <IPv6 Adresse>
Auf meinem Server sieht die Konfiguration so aus.
#ROCKPro64 [Peer] PublicKey = <Public-Key Client> PresharedKey = <psk.key> AllowedIPs = 10.10.1.12, 2a01:xxx:xxx:59e6:100::12
Mein Wireguard Server und mein Heimnetz sind voll IPv6 tauglich. Deshalb weise ich den Geräten auch IPv6 Adressen vom Server zu. Ohne diese IPv6 Adresse hat man keine Internetverbindung, sondern kann nur das interne Netz erreichen. Erst mit der IPv6 Adresse wird der gesamte Netzwerkverkehr ins Internet geroutet.
Wireguard starten
Dazu nimmt man den Befehl wg-quick
root@rockpro64:/etc/wireguard# wg-quick up wg0 [#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.10.1.12 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] resolvconf -a tun.wg0 -m 0 -x [#] wg set wg0 fwmark 51820 [#] ip -6 route add ::/0 dev wg0 table 51820 [#] ip -6 rule add not fwmark 51820 table 51820 [#] ip -6 rule add table main suppress_prefixlength 0 [#] ip6tables-restore -n [#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820 [#] ip -4 rule add not fwmark 51820 table 51820 [#] ip -4 rule add table main suppress_prefixlength 0 [#] sysctl -q net.ipv4.conf.all.src_valid_mark=1 [#] iptables-restore -n
Kontrolle
root@rockpro64:/etc/wireguard# wg interface: wg0 public key: 4gGlCmgVYs4jjPfm7qaq5hkls3n4tVM53e/BBSV+xyU= private key: (hidden) listening port: 51820 fwmark: 0xca6c peer: <Public Key vom Server> preshared key: (hidden) endpoint: <Server-IP>:51820 allowed ips: 0.0.0.0/0, ::/0 latest handshake: 4 seconds ago transfer: 92 B received, 324 B sent
So, läuft
Ausschalten
wg-quick down wg0
-
@FrankM
hallo FrankBei mir läuft Wireguard auf einem Raspberry 4 mit 2 GB RAM an einer fritzbox 4040 hinter einem Vodafone Kabelanschluss. (LAN Anschluss) Dort ist auch ein Pihole installiert.
Und nun zu meinem Problem. Da ich viel herumkomme wollte ich mein Smartphone per VPN in fremden Netzen verwenden. Ich habe ein xioami redmi note 4 mit Lineage 9 und Stormguard Kernel mit Wireguard Unterstützung. Seit Januar läuft das ganze. Anfangs hatte ich das Problem, wenn ich per LTE oder fremden WLAN Wireguard VPN nutzte, kam ich nicht über 60 KB/s Geschwindigkeit. Nach vielen Versuchen hatte ich ab Anfang Februar super Geschwindigkeiten. (Etwa 30 % weniger als ohne VPN) Während eines Israel Urlaub war ich der einzigste, der die Tagesschau streamen konnte. Seit Anfang März (vermutlich nach einem Lineage Update) kommt die Geschwindigkeit nicht mehr über die 60 KB/s.
Mit der neuen Android Wireguard APP kann man jetzt temporär die Kernelintegration abschalten, dann läuft normales VPN mit der gleichen niedrigen Geschwindigkeit.
Wer weiss eine Lösung für die "Bremse".Gruß
Osnh -
Ich kann dir nicht ganz folgen. Mein Wireguard Server ist eine VM im Netz. Mein Smartphone baut zu diesem eine Verbindung auf und ich habe mal eben nachgeschaut, was da so geht. Mein Smartphone ist aktuell im meinem WLan angemeldet.
iperf3 -s -B 10.10.1.1 ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44246 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44248 [ ID] Interval Transfer Bitrate [ 5] 0.00-1.00 sec 4.98 MBytes 41.7 Mbits/sec [ 5] 1.00-2.00 sec 5.52 MBytes 46.3 Mbits/sec [ 5] 2.00-3.00 sec 4.80 MBytes 40.3 Mbits/sec [ 5] 3.00-4.00 sec 4.17 MBytes 35.0 Mbits/sec [ 5] 4.00-5.00 sec 5.04 MBytes 42.3 Mbits/sec [ 5] 5.00-6.00 sec 5.43 MBytes 45.6 Mbits/sec [ 5] 6.00-7.00 sec 5.75 MBytes 48.3 Mbits/sec [ 5] 7.00-8.00 sec 5.70 MBytes 47.8 Mbits/sec [ 5] 8.00-9.00 sec 5.73 MBytes 48.1 Mbits/sec [ 5] 9.00-10.00 sec 5.65 MBytes 47.4 Mbits/sec [ 5] 10.00-10.04 sec 206 KBytes 46.5 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate [ 5] 0.00-10.04 sec 53.0 MBytes 44.3 Mbits/sec receiver ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.10.1.10, port 44250 [ 5] local 10.10.1.1 port 5201 connected to 10.10.1.10 port 44252 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 4.80 MBytes 40.2 Mbits/sec 0 253 KBytes [ 5] 1.00-2.00 sec 14.7 MBytes 123 Mbits/sec 181 379 KBytes [ 5] 2.00-3.00 sec 9.68 MBytes 81.2 Mbits/sec 58 294 KBytes [ 5] 3.00-4.00 sec 8.88 MBytes 74.5 Mbits/sec 1 227 KBytes [ 5] 4.00-5.00 sec 7.76 MBytes 65.1 Mbits/sec 0 245 KBytes [ 5] 5.00-6.00 sec 8.88 MBytes 74.5 Mbits/sec 0 266 KBytes [ 5] 6.00-7.00 sec 9.81 MBytes 82.3 Mbits/sec 0 289 KBytes [ 5] 7.00-8.00 sec 7.82 MBytes 65.6 Mbits/sec 35 235 KBytes [ 5] 8.00-9.00 sec 5.59 MBytes 46.9 Mbits/sec 4 186 KBytes [ 5] 9.00-10.00 sec 6.64 MBytes 55.7 Mbits/sec 0 207 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.04 sec 84.6 MBytes 70.6 Mbits/sec 279 sender ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- ^Ciperf3: interrupt - the server has terminated
Im zweiten Teil ist der Wireguard Server der Sender.
Bis jetzt hatte ich eigentlich nie Probleme, auch nicht unterwegs. Aber, ich gehe davon aus, das ich dich nicht 100% verstanden habe