Internet via USB-Schnittstelle (Tethering)
Verfasst: 24 Apr 2025, 19:56
Verwende meinen Raspberry Pi Zero W als USB-Stick. Sobald ich diesen im Server einstecke wird eine LAN-Verbindung via USB-Schnittstelle aufgebaut und der Stick geht über die Internertverbindung vom Server (bei mir Sparky-Linux) ins Internet.
#Einstellungen auf Client (z.B.RPiZ welcher IP vom Server via USB-Kabel bezieht)
: dtoverlay=dwc2 #am Schluss einfügen nach [all], Einträge unter [cm4] und [cm5] löschen
: nach rootwait -> "modules-load=dwc2,g_ether" eintragen, PS. darauf achten dass nur eine Zeile!
: manueller Dienst damit sich der Client automatisch verbindet nach einem Neustart
: und den Dienst aktivieren
#nun sollte der Client bereit sein, dass er sich beim Verbinden zu einem server als usb-Verbindung zeigt
# Auch auf dem Sever verwenden wir den NetworkManager (bei mir läuft der Server unter Sparky-Linux)
: zeigt die Netzwerkverbindungen des NetworkManager an
: usb0 Verbindungen löschen wenn es solche hat
: jetzt tragen wir eine neue Verbindung usb0 ein mit dem Namen "usb-shared"
: ip4 verwenden
: und so setzen dass diese automatisch verbindet, sobald die USB-Verbindung mit dem Client sichtbar ist
: backup
: und die Verbindung aktivieren
: nochmals prüfen, nun sollte eine Verbindung mit usb0 angezeigt werden
#nochmals auf den Client wechseln und prüfen
-> default via 10.42.0.1 dev usb0 proto dhcp src 10.42.0.158 metric 100
-> default via 192.168.31.1 dev wlan0 proto static metric 600
-> 10.42.0.0/24 dev usb0 proto dhcp scope link src 10.42.0.158 metric 100
-> 192.168.31.0/24 dev wlan0 proto kernel scope link src 192.168.31.34 metric 600
#der Client hat nun zwei IP-Adressen, in meinem Beispiel 10.42.0.158 vom Server via usb und 192.168.31.34 via wlan vom Router
Falls es Probleme gibt, einfach fragen
#Einstellungen auf Client (z.B.RPiZ welcher IP vom Server via USB-Kabel bezieht)
Code: Alles auswählen
sudo nano /boot/firmware/config.txt
Code: Alles auswählen
sudo nano /boot/firmware/cmdline.txt
Code: Alles auswählen
sudo nano /etc/systemd/system/dhclient-usb0.service
Code: Alles auswählen
[Unit]
Description=DHCP Client for USB0
After=network.target
[Service]
Type=simple
ExecStart=/sbin/dhclient usb0 -v
Restart=always
[Install]
WantedBy=multi-user.target
Code: Alles auswählen
sudo systemctl enable --now dhclient-usb0.service
#nun sollte der Client bereit sein, dass er sich beim Verbinden zu einem server als usb-Verbindung zeigt
# Auch auf dem Sever verwenden wir den NetworkManager (bei mir läuft der Server unter Sparky-Linux)
Code: Alles auswählen
nmcli connection show
Code: Alles auswählen
sudo nmcli connection delete 'Kabelgebundene Verbindung 1'
Code: Alles auswählen
sudo nmcli connection add type ethernet ifname usb0 con-name usb-shared ipv4.method shared
Code: Alles auswählen
sudo nmcli connection modify usb-shared ipv4.method shared
Code: Alles auswählen
sudo nmcli connection modify usb-shared connection.autoconnect yes
Code: Alles auswählen
sudo nmcli connection modify usb-shared connection.interface-name usb0
Code: Alles auswählen
nmcli connection up usb-shared
Code: Alles auswählen
nmcli connection show
#nochmals auf den Client wechseln und prüfen
Code: Alles auswählen
ip route show
-> default via 192.168.31.1 dev wlan0 proto static metric 600
-> 10.42.0.0/24 dev usb0 proto dhcp scope link src 10.42.0.158 metric 100
-> 192.168.31.0/24 dev wlan0 proto kernel scope link src 192.168.31.34 metric 600
#der Client hat nun zwei IP-Adressen, in meinem Beispiel 10.42.0.158 vom Server via usb und 192.168.31.34 via wlan vom Router
Falls es Probleme gibt, einfach fragen