Einzelnen Download durch anderes Netzwerkgerät herunterladen

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Richard
Beiträge: 660
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von Richard » 13.01.2025 14:59:24

Hallo,

da sich der Breitbandausbau bei uns weiter verzögert, habe ich aktuell Zugriff auf 2 Leitungen: meine eigene und die meiner Eltern per WLAN-Repeater. Meine Eltern nutzen das nur wenig, ich habe mit denen vereinbart, dass ich DLs auf maximal 80% der Bandbreite begrenze. Bisher habe ich da einfach meinen Laptop gestartet und das WLAN gewechselt. Normal mache ich größere DLs über meinen Raspberry Pi. Der ist per LAN-Kabel an meiner Fritzbox verbunden, hat aber auch internes WLAN und ich kann 2 Verbindungen gleichzeitig herstellen.

Dazu 2 Fragen:

[*]Auf dem Pi läuft aktuell Bullseye, da ich dort sehr viele Sachen eingerichtet habe und Bullseye noch Updates bekommt (und ich keine Zeit für eine umständliche Neueinrichtung habe) bleibt das auch. Wie kann ich hier sicherstellen, dass normal alle Downloads über die LAN-Verbindung gemacht werden? Kann man die beiden priorisieren? Die NetworkManager-GUI unter Ubunut kann das.
[*]Wie kann ich gezielt einen einzelnen DL (z. B. youtube-dl oder wget) über die WLAN-Verbindung routen?

Grüße
Richard

uname
Beiträge: 12581
Registriert: 03.06.2008 09:33:02

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von uname » 13.01.2025 15:31:56

Leider habe ich kein Gerät mit zwei Netzwerken. Aber ich gehe mal davon aus, dass dein Raspberry Pi damit in zwei Subnetzen z. B. 192.168.0/24 und 192.168.1/24 ist.

Erste Idee zu deinen eigentlichen Fragen:
Große Downloads nutzen ja heutzutage meistens HTTP/HTTPS. Vielleicht kannst du auf deinem Raspberry Pi ein Proxy wie Squid oder besser Tinyproxy installieren, der dann den Weg über WLAN geht. Alles was nun über WLAN gehen soll, ist nur über den Proxy möglich. Mindestens bei wget solltest du einen Proxy angeben können. Vielleicht vom PC etwas unpraktisch über den Pi. Auch musst du wohl ein paar Routing-Regeln bzw. Masquerading für den Weg über LAN konfigurieren.

Bessere Lösung 1:
Vereinbare doch einfach mit deinen Eltern einen Zeitraum. Wenn sie ihr Internet nicht wirklich brauchen (nachts, morgens, ...), könntest du es einfach direkt verwenden und größere Downloads durchführen. Ok dann bleibt es aber weiterhin manuell.

Bessere Lösung 2 falls das WLAN deiner Eltern schneller ist:
In DSL-Routern kann man manchmal Bandbereitenbeschränkungen einrichten. Vielleicht kannst du das bei deinen Eltern verwenden und du dein Internet abschaffen.

Bessere Lösung 3 falls das WLAN deiner Eltern schneller ist:
Besorg dir den Nano-Router TL-WR802N für 20 Euro, verwende ihn im WISP-Modus und beschränke die Bandbreite des WLAN-Netzes deiner Eltern über den Nano-Router entsprechend deren Bandbreite. Vielleicht sicherheitshalber auf 50%. Verzichte auf dein einiges Internet. Ich habe es gerade im WISP-Modus ausprobiert und die Bandbreitenbeschränkung funktioniert getestet mit https://fast.com problemlos. Der Ethernet-Port im WISP-Modus ist ein LAN-Port im ge-NAT-tetem Netzwerk. Somit kannst du auch problemlos Geräte mit LAN-Kabel anschließen. Der Nano-Router benötigt 0,85 Watt also weit weniger als ein Raspberry Pi.

How to configure Bandwidth Control on TL-WR802N

Nachtrag: Bei Änderung der Bandbreite im Nano-Router musst du nur den Wert im Webinterface ändern und speichern. Booten musst du den Nano-Router nicht.

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von mat6937 » 13.01.2025 23:10:41

Richard hat geschrieben: ↑ zum Beitrag ↑
13.01.2025 14:59:24
Wie kann ich hier sicherstellen, dass normal alle Downloads über die LAN-Verbindung gemacht werden? Kann man die beiden priorisieren?
Mit hilfe einer besseren metric, für die Route über die LAN-Verbindung.
Richard hat geschrieben: ↑ zum Beitrag ↑
13.01.2025 14:59:24
[*]Wie kann ich gezielt einen einzelnen DL (z. B. youtube-dl oder wget) über die WLAN-Verbindung routen?
Mit einer _definierten_ Route die das WLAN-Interface als gateway benutzt, zum DL-Server (öffentliche IP-Adresse).
Testen/zeigen der definierten Route mit:

Code: Alles auswählen

ip r g <öffentliche IP-Adresse-DL-Server>
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Richard
Beiträge: 660
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von Richard » 17.01.2025 22:32:30

Diese routen ändern doch den gesamten Netzwerkverkehr. Es spielt also keine Rolle mit welchem tool ich etwas lade. Ich will in der Lage sein einfach einen download über wlan0 zu machen während etwa anderes über den eth geladen wird. Gibt es keine möglich durch ein prefix einen Aufruf über wlan0 zu routen ohne am Rest etwas zu ändern?

Ich habe gelesen, dass curl so eine Funktion hat. Bisher aber ungetestet.

uname
Beiträge: 12581
Registriert: 03.06.2008 09:33:02

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von uname » 18.01.2025 08:42:50

Such "interface" auf dieser Seite

https://curl.se/docs/tutorial.html

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von mat6937 » 18.01.2025 08:51:08

Richard hat geschrieben: ↑ zum Beitrag ↑
17.01.2025 22:32:30
Diese routen ändern doch den gesamten Netzwerkverkehr.
Warum sollte eine einzelne _definierte_ Route, den gesamten Netzwerkverkehr ändern?
Richard hat geschrieben: ↑ zum Beitrag ↑
17.01.2025 22:32:30
... download über wlan0 zu machen während etwa anderes über den eth geladen wird. Gibt es keine möglich durch ein prefix einen Aufruf über wlan0 zu routen ohne am Rest etwas zu ändern?

Ich habe gelesen, dass curl so eine Funktion hat. Bisher aber ungetestet.
Du meinst diese Option:
--interface <name>
Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example could look like:
curl --interface eth0:1 https://www.example.com/
If --interface is provided several times, the last set value will be used.
curl --interface eth0 https://example.com
von curl? Du kannst ja mal probieren und dann bzw. während des Downloads, mit tcpdump (oder mindestens gleichwertig) schauen/testen/sniffen, ob wlan0 als (finales/letztes Ausgangs-gateway/-device) output-Interface auf deinem System benutzt wird.
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Richard
Beiträge: 660
Registriert: 11.10.2012 14:18:37
Lizenz eigener Beiträge: GNU General Public License

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von Richard » 18.01.2025 14:11:35

Sorry, so richtig verstehe ich das nicht. Ich dachte ich lege mit einer Route fest, dass zukünftig (bis zum Neustart) der gesamte Datenverkehr über diese Route läuft. Man findet zwar viel im Netz, ich finde die dortigen Beispiele aber unbrauchbar. Kann mir jemand ein konkretes Beispiel geben wie das bei mir aussehen würde, ich denke dann wird das klarer.

Ich habe jetzt Ethernet und eine WLAN-Verbindung zu 2 verschiedenen Routern:

Code: Alles auswählen

2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether b0:6e:bf:c4:68:89 brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.21/24 brd 192.168.10.255 scope global noprefixroute enp5s0
       valid_lft forever preferred_lft forever
3: wlx001f1fac5284: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:1f:1f:ac:52:84 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.36/24 brd 192.168.178.255 scope global dynamic noprefixroute wlx001f1fac5284
       valid_lft 863501sec preferred_lft 863501sec
    inet6 fe80::9296:14ef:9246:a480/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
Angenommen ich möchte nun mit wget oder Firefox etwas über WLAN statt Thernet herunterladen. Wie müsste das aussehen?

uname
Beiträge: 12581
Registriert: 03.06.2008 09:33:02

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von uname » 18.01.2025 14:21:03

Für den Weg sind weniger die Netzwerkkarten als das zugehörige Routing zuständig. Für das Internet ist die Default-Route, das Default-Gateway bzw. 0.0.0.0 interessant.

Wie sieht denn dein aktuelles Routing aus? Hier ein paar Möglichkeiten es auszugeben:

Code: Alles auswählen

ip route show
ip r
route -n
netstat -rn
Sehr wahrscheinlich findet dein Default-Routing über enp5s0 / 192.168.10.21 bzw. den Router in dem Netzwerk statt. Das müsstest du dann ändern auf wlx001f1fac5284 / 192.168.178.36 bzw. den zugehörigen Router.

Ich hatte oben weiter von der Idee eines Proxy wie Tinyproxy oder Squid geschrieben. Aber auch der muss natürlich per Routing das ganze Internet (dann über WLAN) erreichen.

mat6937
Beiträge: 3489
Registriert: 09.12.2014 10:44:00

Re: Einzelnen Download durch anderes Netzwerkgerät herunterladen

Beitrag von mat6937 » 18.01.2025 21:37:19

Richard hat geschrieben: ↑ zum Beitrag ↑
18.01.2025 14:11:35
Ich dachte ich lege mit einer Route fest, dass zukünftig (bis zum Neustart) der gesamte Datenverkehr über diese Route läuft.
Naja, i. d. R. hast Du 2 Routen für den "gesamten" Datenverkehr. Eine Route (nicht definierte, d. h. die default Route) für die (noch) unbekannten Ziele im Internet und eine definierte Route für die schon bekannten Ziele (und das ist dein W/LAN bzw. das Subnetz deines Routers). Siehe z. B. Ziel-IP-Adresse und gateway-IP-Adresse (in einer default-Route und zwei definierten Routen):

Code: Alles auswählen

:~$ ip r g 1.1.1.1
1.1.1.1 via 192.168.178.1 dev eth0 src 192.168.178.4 uid 1000 
    cache initcwnd 30 initrwnd 30

Code: Alles auswählen

:~$ ip r g 192.168.178.13
192.168.178.13 dev eth0 src 192.168.178.4 uid 1000 
    cache

Code: Alles auswählen

:~$ ip r g 192.168.55.16
192.168.55.16 dev wg3 src 192.168.55.14 uid 1000 
    cache
Debian 12.10 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.2 mit Xfce

Antworten