Konsole

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen


Arbeiten auf der Kommandozeile von Routern

Die Kommandozeile ist ein Eingabebereich für die Steuerung des Routers das im Textmodus abläuft. Damit eröffnen sich für den WRT Möglichkeiten jenseits der Grenzen der Weboberfläche.


Zugriff auf die Kommandozeile des Routers mit SSH

Tip.png Tipp: SSH ist eine verschlüsselte Telnetverbindung zu einen anderen Rechner. Damit habt ihr die Möglichkeit auf einem anderen Rechner Befehle auf der Kommandozeile ausführen zu koennen. Das ist insbesondere unter Linux sehr Vorteilhaft, da dort eigentlich alle Anwendungen durch die Kommandozeile gestartet werden können.

Starten einer SSH-Verbindung unter dem Betriebssystem Linux

Einfach in der Bash Eures Rechners

ssh <Ziel-IP>

eintippen.

Starten einer SSH-Verbindung unter Windows

Zuerst laden wir uns das Programm [[1]] runter. Wenn der Download beendet ist, einfach die Putty.exe ausführen und dann sollte man folgendes Fenster sehen:

Software putty.jpg

Hier bei Host Name die IP von Eurem WRT eintippen, und auf Open klicken. Dann sollte sich ein schwarzes Fenster öffnen:


Software putty2.jpg

Das ist Euer WRT! (hoffentlich ;) ) Dort loggt ihr Euch als root ein und tippt das Passwort passend zu Euren WRT ein. Dann sollte sich die Busy-Box melden.

Starten einer SSH-Verbindung unter dem Betriebssystem Mac OS X

Zum Verbinden brauchen wir das "Terminal". Es befindet sich im Ordner Programme->Dienstprogramme. Alternativ kann man das auch mit dem Spotlight (cmd+space) duch Eingabe von "Terminal" suchen lassen und muss dann nur noch Enter auf dem gefundenen Eintrag drücken, um das Terminal zu starten.

Sofern geöffnet kann eine Verbindung zum Router aufgebaut werden:

Router IPv6 finden (MacOS und Linux)

Zuerst müssen wir die IPv6 Adresse des Routers finden. Dazu einfach im Terminal eingeben (sofern per WLAN mit Freifunknetz verbunden): (Vorweg: %en1 beschriebt das Interface, über das verbunden werden soll. Hier Ethernet 1....kann auch 0 oder 2 ... oder ein ganz anderes Interface sein. Im Zweifel "ifconfig' eingeben und die Interfaces checken.)

ping6 ff02::1%en1

Viele Adressen werden aufgelistet. Man kann den Prozess sofort nach Eingabe mit ctrl + c beenden. Die zweite Adresse in dieser Liste müsste die Adresse des Routers sein... Wenn wir die Adresse haben kann man mit folgendem Befehl sich zum Router verbinden:

ssh -6 root@fe80::6a72:51ff:fe04:f52e%en1

Alternativ kann man auch dieses ScriptLet verwenden, das nur die v6-Router (ff02::2 --> all-routers) an-pingt:

ping6 -c3 ff02::2%en0 | grep -v DUP | grep fe80

Hier ist kein ctrl-c notwendig, weil die Anzahl der Anfragen mit -c3 auf 3 begrenzt ist. Getestet wurde das auf einem Macbook mit Mavericks (10.9).

Nachträgliches Hinterlegen eines SSH–Schlüssels (MacOS und Linux)

Wenn man bei der Einrichtung des Routers einen SSH–Schlüssel hinterlegt hat, kann man sich damit einloggen, ohne jedes Mal das Passwort eingeben zu müssen. Der Schlüssel kann man aber auch nachträglich auf dem Router speichern (Die Beispiel IP–Adresse muss selbstverständlich angepasst werden):

cat ~/.ssh/id_rsa.pub | ssh root@fe80::6a72:51ff:fe04:f52e%en1 'cat >> /etc/dropbear/authorized_keys'

Damit der Befehl auch tatsächlich auf dem Router ausgeführt wird, muss noch ein Mal das Passwort eingegeben werden, aber anschließend sind Logins mit dem Schlüssel möglich und das Entfernen des Login-Passwortes meist sinnvoll.

Passwort entfernen

Login mit Passwort deaktivieren. Befehl nach Login, auf dem Router, ausführen:

passwd -l root

Passwort ändern

Das Passwort kann auch geändert werden:

passwd

ACHTUNG: leeres Passwort wird akzeptiert - Login ist dann ohne Passwort möglich. Auch, wenn SSH Keys hinterlegt sind. Unbedingt ein starkes, sonst nirgends verwendetes Passwort hinterlegen oder es entfernen mit Option "-l".


Auf der Kommandozeile

Hat man sich schließlich per SSH eingeloggt, lassen sich zahlreiche Befehle nutzen.

Grundlegende Befehle

ls

ist ein Befehl, mit dem ihr eine Liste aller Dateien in einem Verzeichnis anzeigen lassen könnt (ähnlich `dir` unter MSDOS)

ls -l

Zeigt eine Liste mit den kompletten Informationen der Dateien an

cd

heiß soviel wie "change directory" oder auch "wechsel das Verzeichnis". Damit könnt ihr in einen Ordner eurer Wahl springen.

cd ..

Damit kommt ihr in den übergeordneten Ordner

cd /

in das Hauptverzeichnis

cat

gibt den Inhalt einer Datei in der Kommandozeile aus. Der Vorteil ist das man nicht extra einen Editor starten muss

vi

ist ein Kommandozeileneditor, mit dem ihr euch Dateien angucken und verändern könnt. Um damit umzugehen, sollte man bei einer Suchmaschine eures Vertrauens mal nach "vi kommandos" oder "vi einführung" suchen. Kurz erwähnt: ihr kommt mit `:q!` oder `<esc> :q!` immer aus diesen Programm wieder raus, weitere Infos entnehmt ihr bitte einer Anleitung des `vi`. Ein guter Einstieg ist der Wikipedia Artikel dazu

top

ein Tool, mit dem ihr euch die Aktuelle Auslastung eures Systems anzeigen lassen könnt

date

verändert die Systemzeit

rm

löscht eine Datei

rm -d

löscht ein Verzeichnis inklusive Inhalt

logread -f

Zeigt das Debugging-Log Protokoll eines OpenWrt Routers an

Anpassen der Einstellungen in OpenWrt

UCI ist das Kommandozeilentool, welches in OpenWRT genutzt wird, um Einstellungen auszulesen oder zu ändern. Über UCI lassen sich alle Einstellungen, die auch über die Konfigurationsoberfläche möglich sind, sowie einige weitere Einstellungen vornehmen.

Einstellungen anzeigen

Alle gesetzten Einstellungen auflisten:

uci show

Eine bestimmte Einstellung suchen:

uci show|grep Suchwort

Eine bestimmte Einstellung anzeigen:

uci show [Einstellung]

Beispiel:

uci show autoupdater.settings.enabled

Oder für eine Einstellungsgruppe:

uci show autoupdater.settings

Einstellungen setzen

uci set [Einstellung]=[Wert]

Beispiel:

uci set autoupdater.settings.enabled=1

Wichtig: Wenn du Einstellungen via UCI gesetzt hast, müssen diese via uci commit am Ende aktiviert werden!

Einstellungen sichern

Bevor man an Einstellungen herum fummelt kann es sinnvoll sein, diese zunächst zu sichern um sie problemlos wieder herzustellen. Dies lässt sich für alle Einstellungen via uci export oder auch nur für einen Abschnitt machen, wie im folgenden Beispiel:

uci export network > network.uci

Und der Import geht dann so:

cat network.uci | uci import

Einstellungen von Gluon ändern

Gluon ist eine OpenWrt-basierte Freifunk-Firmware, die von vielen, aber nicht allen Communities im Freifunk-Umfeld benutzt wird.

Bitte beachte, dass diese deutschen Anleitungen veraltet sein können, die aktuelle Dokumentation (auf Englisch) findet sich im GitHub Wiki des Gluon-Projektes.


Autoupdater Branch festlegen

Wenn der Router nach dem Reboot wieder oben ist könnt ihr den Branch für den Autoupdater noch festlegen:

uci set autoupdater.settings.enabled='1'
uci set autoupdater.settings.branch='stable'
uci commit autoupdater

Das Update kann man dann manuell anstoßen.

autoupdater -f 

Das stable Release ist immer die jüngste stabile Version der Firmware für Produktivsysteme. Seit der Version 0.5 ist der Autoupdater mit dem stable Branch automatisch bei Installation aktiviert, so dass die Router sich automatisch aktuell halten. Sollte dies nicht gewünscht sein, so muss dies explizit deaktiviert werden.

Einen anderen Branch als den eingestellten benutzen:

autoupdater -b [NAMEOFBRANCH] -f

Ein Update anstoßen, obwohl nicht genug Signaturen im Manifest stehen

uci set autoupdater.stable.good_signatures='1'
autoupdater -f

Ein Downgrade auf eine niedrigere Version als die Installierte

Wenn man ein Downgrade durchführen will, ist es notwendig alle Daten zu vergessen, dazu muss man die Upgrade-bin in den /tmp Ordner herunterladen und dann mit dem Befehl sysupgrade updaten:

sysupgrade -n /tmp/[sysupgradefile].bin

danach startet der Knoten im Configmode und hat alle Daten vergessen

Neustart im Configmode

Manchmal ist es Notwendig in den Configmode zu starten. Dies beinhaltet die Weboberfläche des Systems zum ersten Einrichten eines Freifunk-Routers. Für gewöhnlich hält man ein paar Sekunden lang die Reset Taste gedrückt. Folgende Ausführung erzielt den gleichen Effekt:

bis 2021 ab 2022
uci set gluon-setup-mode.@setup_mode[0].enabled=1
uci commit gluon-setup-mode
reboot

( Kann mit Semikolon in eine Zeile geschrieben werden – besser zum Kopieren und Einfügen )

gluon-enter-setup-mode 

( Ist nichts anderes wie ein Shell-Script
in /usr/bin mit dem nebenstehenden Inhalt )

Routernamen ändern

Wenn ihr bspw. den *Namen* des Router ändern möchtet geht dies wie folgt in der SSH Shell:

(Dabei handelt es sich um den formschönen Namen vom Hostnamen, der siehe weiter unten.)

uci set system.@system[0].pretty_hostname='Freifunk Oberhausen Beispiel 1'  << Name anpassen
uci commit system

Wenn Ihr den Befehl 'pretty-hostname' benutzt

pretty-hostname 'Freifunk Oberhausen Beispiel 1'

wird aus dem Routernamen automatisch ein Hostname geformt, wenn der also ins ASCII-Schema passt wird er übernommen, wenn Leerzeichen oder Umlaute ect. verwendet werden, wird der Hostname entsprechend gekürzt.

...generierter Hostname: ("FreifunkOberhausenBeispiel1")

Der *Name*/pretty_hostname wird ohne reboot übernommen und beim nächsten Kartenupdate zum Beispiel sofort angezeigt.

Hostnamen ändern

Wenn ihr bspw. den *Hostnamen* des Router ändern möchtet geht dies wie folgt in der SSH Shell:

uci set system.@system[0].hostname='FF-OB-Beispiel-01'  << Name anpassen
uci commit system

Danach ist ein Reboot erforderlich.

Kontaktdaten ändern

uci set gluon-node-info.@owner[0]='owner'
uci set gluon-node-info.@owner[0].contact='Mustermann muster@freifunk-ruhrgebiet.de 02453434434'  << Daten anpassen
uci commit gluon-node-info

Geodaten ändern

uci set gluon-node-info.@location[0]='location'
uci set gluon-node-info.@location[0].share_location='1'
uci set gluon-node-info.@location[0].latitude='51.484943'   << anpassen
uci set gluon-node-info.@location[0].longitude='6.880250'  << anpassen 
uci commit gluon-node-info

Bandbreitenbegrenzung ändern

Alt:

uci set gluon-simple-tc.mesh_vpn='interface'
uci set gluon-simple-tc.mesh_vpn.ifname='mesh-vpn'
uci set gluon-simple-tc.mesh_vpn.enabled='1'
uci set gluon-simple-tc.mesh_vpn.limit_ingress='50000'  << download anpassen
uci set gluon-simple-tc.mesh_vpn.limit_egress='10000'   << upload anpassen
uci commit gluon-simple-tc

Neu:

uci set simple-tc.mesh_vpn=interface
uci set simple-tc.mesh_vpn.ifname='mesh-vpn'
uci set simple-tc.mesh_vpn.enabled='1'
uci set simple-tc.mesh_vpn.limit_ingress='16000' << download anpassen
uci set simple-tc.mesh_vpn.limit_egress='1000' << upload anpassen
uci commit simple-tc

Bandbreitenbegrenzung zeitgesteuert ändern

Folgende Cronjobs anlegen:

vi /usr/lib/micron.d/speedlimit

Für tägliche Limits von 07 bis 1700 Uhr:

0 7 * * * uci set simple-tc.mesh_vpn.enabled='1' && uci set simple-tc.mesh_vpn.limit_ingress='2000' && uci set simple-tc.mesh_vpn.limit_egress='500' && /etc/init.d/fastd restart
0 17 * * * uci set simple-tc.mesh_vpn.enabled='0' && /etc/init.d/fastd restart

Für werktägliche Limits von 07 bis 1700 Uhr (ungetestet):

0 7 * * 1-5 uci set gluon-simple-tc.mesh_vpn.enabled='1' && uci set gluon-simple-tc.mesh_vpn.limit_ingress='2000' && uci set gluon-simple-tc.mesh_vpn.limit_egress='500' && uci commit gluon-simple-tc && reboot
0 17 * * 1-5 uci set gluon-simple-tc.mesh_vpn.enabled='0' && uci commit gluon-simple-tc && reboot

Hier wird jeweils ein Limit von 2Mbits down und 0.5 MBits up gesetzt.

Achtung! Jeder Scriptaufruf führt ein commit und damit einen Schreibvorgang auf dem Rom aus. Dies kann sich negativ auf die Lebensdauer des Gerätes auswirken. Ein Reboot ist nötig, damit die Beschränkung aktiv oder inaktiv wird.

Mesh VPN aktivieren

Mesh VPN bezieht sich auf das Meshen mit anderen Routern über das Internet. Es ist auch Voraussetzung für die Internetfreigabe der Clients am eigenen Knoten.

uci set fastd.mesh_vpn.enabled=1
uci commit fastd
/etc/init.d/fastd start

Sofern noch kein Schlüssel generiert wurde, muss das ebenfalls geschehen:

/etc/init.d/fastd generate_key mesh_vpn
~>18fa75d1808692f04770bedf30c42dac24585d331560c545d70dd27f22a05648

Dieser Schlüssel muss dann in der jeweiligen Domäne angemeldet werden.

Öffentlichen fastd Schlüssel anzeigen

/etc/init.d/fastd show_key mesh_vpn
~>18fa75d1808692f04770bedf30c42dac24585d331560c545d70dd27f22a05648 

Privaten fastd Schlüssel anzeigen

Diesen backuppt man sinnvollerweise, wenn man einen Router komplett neu flashen will und hinterher den selben fastd Schlüssel weiter benutzen will:

uci get fastd.mesh_vpn.secret
~>1234567890123456789012345678901234567890123456789012345678901234

Existierenden privaten fastd Schlüssel wieder einspielen

uci set fastd.mesh_vpn.enabled=1
uci set fastd.mesh_vpn.secret=1234567890123456789012345678901234567890123456789012345678901234
uci commit fastd
/etc/init.d/fastd stop; /etc/init.d/fastd start

Meshing über WAN-Schnittstelle (Mesh on WAN)

Wenn du die WAN-Schnittstelle nicht nur für einen Internetzugang verwenden möchtest, sondern über diese auch das Meshing-Protokoll aktivieren willst, um z.B. andere, evtl. langsamere Freifunk-Router mit dem Freifunk-Netz zu versorgen, gehst du wie folgt vor:

aktivieren
ab gluon v2016.1 ab gluon v2018.1 ab gluon v2022.1
uci set network.mesh_wan.auto=1
uci commit network
/etc/init.d/network restart
uci set network.mesh_wan.disabled=0
uci commit network 
/etc/init.d/network restart
uci add_list gluon.iface_wan.role='mesh'
uci commit gluon
/etc/init.d/network restart
deaktivieren
ab gluon v2016.1 ab gluon v2018.1 ab gluon v2022.1
uci set network.mesh_wan.auto=0
uci commit network
/etc/init.d/network restart
uci set network.mesh_wan.disabled=1
uci commit network 
/etc/init.d/network restart
uci del_list gluon.iface_wan.role='mesh'
uci commit gluon
/etc/init.d/network restart


Meshing über LAN-Schnittstelle (Mesh on LAN)

Eigentlich wird nur der WAN Anschluss zum Betreiben eines Freifunk Routers benötigt. Die anderen Ports jedoch bleiben ungenutzt. Das Meshing ist über diese (meist gelben) LAN Ports abgeschaltet. Diese sind für Clients, neben WLAN, eine zusätzliche Verbindungsmethode. Man kann diese Ports jedoch auch dafür benutzen um mit weiteren Routern zu "meshen":


ab 2022:
  • bei mehr als einem Interface (WAN+LAN) – Aktivieren
uci add_list gluon.iface_lan.role='mesh'
uci commit gluon
  • bei mehr als einem Interface (WAN+LAN) – Deaktivieren
uci del_list gluon.iface_lan.role='mesh'
uci commit gluon
  • bei einem einzigen Interface (WAN) – Aktivieren
uci add_list gluon.iface_single.role='mesh'
uci commit gluon
  • bei einem einzigen Interface (WAN) – Deaktivieren
uci del_list gluon.iface_single.role='mesh'
uci commit gluon


ab 2016:
uci set network.client.ifname='bat0'
uci set network.mesh_other=interface
uci set network.mesh_other.ifname="$(cat /lib/gluon/core/sysconfig/lan_ifname)"
uci set network.mesh_other.mesh=bat0
uci set network.mesh_other.proto=batadv
uci set network.mesh_other.auto=1
uci commit network
reboot


Um Mesh on LAN wieder auszuschalten ist folgendes notwendig:

uci del network.mesh_other
uci add_list network.client.ifname='eth0' uci commit reboot
uci commit network
reboot

Nur 2015.1.x
# activate
uci set network.client.ifname="bat0"
uci set network.mesh_lan.auto=1
uci commit network
/etc/init.d/network restart
# deactivate
uci set network.client.ifname="bat0 $(cat /lib/gluon/core/sysconfig/lan_ifname)"
uci set network.mesh_lan.auto=0
uci commit network
/etc/init.d/network restart


Testen (funktioniert nur, wenn auch ein Kabel eingesteckt ist):

batctl if

sollte nun u.A. eth1: active anzeigen

ubus call network.interface.mesh_lan status

Sollte "up": true anzeigen


Private WLAN

Es ist möglich ein privates WLAN anzulegen, das mit dem WAN-Port gebridged und separat zum Mesh Netzwerk ist. Bitte beachte, dass Mesh on Wan nicht zeitgleich aktiviert werden sollte. Effekt: Dieses private WLAN ist nun Teil des am WAN-Port anliegenden Heimnetzes. Gibt man ihm die gleichen Zugangsdaten (SSID & Passwort) wie dem bestehenden Heim-WLAN, so wird dieses effektiv erweitert. Zeitgleich fungiert der Router als Freifunk-Router. Freifunk und privates Netz bleiben dabei voneinander getrennt.

Das private WLAN kann im Config-Modus aktiviert werden, alternativ auch über die Konsole wie folgt:

SSID="Privates Netz"
KEY="sicheres passwort"
RADIO=0
uci set wireless.wan_radio$RADIO=wifi-iface
uci set wireless.wan_radio$RADIO.device=radio$RADIO
uci set wireless.wan_radio$RADIO.network=wan
uci set wireless.wan_radio$RADIO.mode=ap
uci set wireless.wan_radio$RADIO.encryption=psk2
uci set wireless.wan_radio$RADIO.ssid="$SSID"
uci set wireless.wan_radio$RADIO.key="$KEY"
uci set wireless.wan_radio$RADIO.disabled=0
uci commit wireless
wifi

Bitte ersetze $SSID mit dem Namen deines Heimnetzwerks und $KEY mit deinem bisher üblichen Key (der vom privaten Router). Bei einem Dualband-Gerät (das 2.4 und 5 Ghz für WLAN verwendet), gibt es neben radio0 auch radio1; letzteres sollte genauso konfiguriert werden. Bei aktuellen firmwareimages (ab v2020.2.1) kann encryption=sae gesetzt werden um WPA3 zu verwenden, encryption=sae-mixed um WPA2 und WPA3 gleichzeitig zu verwenden. [1] [2]

Privates WLAN deaktivieren
uci set wireless.wan_radio0.disabled=1
grep radio1 /etc/config/wireless
if [ $? ]; then # disable auch das 5GHz radio
   uci set wireless.wan_radio1.disabled=1
fi
uci commit wireless
wifi
Extra verschlüsseltes Freifunk-WLAN anbieten

Für manche Anwendungen, z.b. IoT Geräte, ist ein verschlüsseltes WiFi notwendig. Man kann mit diesen Befehlen ein Extra WLAN anlegen mit dem Namen "freifunk als Passwort" und dem Passwort "freifunk":

echo "config wifi-iface 'client_radiopsk'
       option ifname 'clientpsk'
       option network 'client'
       option disabled '0'
       option device 'radio0'
       option mode 'ap'
       option ssid 'freifunk als Passwort'
       option encryption 'psk2+ccmp'
       option key 'freifunk'
   " | ssh root@$ROUTER_IP 'cat >> /etc/config/wireless'
ssh root@$ROUTER_IP "wifi"

Abrufen an welchen Ports Kabel eingesteckt sind

swconfig dev switch0 show | grep 'link:'

Gateways im Router an-/abschalten

uci set fastd.mesh_vpn_backbone_peer_$COMMUNITY_NAME_$GW_PREFIX$GW_NR.enabled=0/1
uci commit
/etc/init.d/fastd restart
  • $COMMUNITY_NAME muss durch das Kürzel eurer Community ersetzt werden (z.B. "ffnord")
  • $GW_PREFIX durch den prefix, den alle gateways in der peers liste haben (z.b. "vpn")
  • $GW_NR muss durch die Zahl des Gateways ersetzt werden (z.B. "0" für vpn0)

man kann z.B. auch alle gateways deaktiviern bis auf eins, (z.b. "vpn4"):

COMMUNITY_NAME=ffki;
GATEWAYLIST="0 1 2 4 6"
GW_PREFIX=vpn
ENABLED=4
echo uci enable only Gateway $GW_PREFIX$ENABLED
for GATEWAY in $GATEWAYLIST; do
  STATUS=0
  if [ $ENABLED == $GATEWAY ]; then
    STATUS=1
  fi
  uci set fastd.mesh_${GW_PREFIX}_backbone_peer_${COMMUNITY_NAME}_${GW_PREFIX}${GATEWAY}.enabled=${STATUS}
done

Clientnetz zeitgesteuert an-/abschalten

Dazu wird "einfach" ein Eintrag in den Aufgabendienst cron, hier micron.d geschrieben, in dem die Datei mit dem Editor VI erstellt wird:

vi /usr/lib/micron.d/wifioff
i (um den Schreibmodus zu aktivieren)

Für tägliche Abschaltung von 21 bis 7 Uhr:

0 21 * * *  ifconfig client0 down; ifconfig client1 down
0  7 * * *  ifconfig client0 up; ifconfig client1 up
ESC dann :wq

Abschließend muss der Deamon die Konfiguration neu laden, damit der Cronjob aktiv geschaltet ist.

/etc/init.d/micrond reload
Alternative

Sämtliche ggf. noch benötigtes WLAN (wan, mesh) zeitgesteuert an-/abschalten:

0 21 * * *  uci set wireless.ibss_radio0.disabled='1'; uci set wireless.mesh_radio0.disabled='1'; uci set wireless.client_radio0.disabled='1'; uci set wireless.wan_radio0.disabled='1';uci set wireless.ibss_radio1.disabled='1'; uci set wireless.mesh_radio1.disabled='1'; uci set wireless.client_radio1.disabled='1'; uci set wireless.wan_radio1.disabled='1';wifi
0  7 * * *   uci set wireless.ibss_radio0.disabled='0'; uci set wireless.mesh_radio0.disabled='0'; uci set wireless.client_radio0.disabled='0'; uci set wireless.wan_radio0.disabled='0';uci set wireless.ibss_radio1.disabled='0'; uci set wireless.mesh_radio1.disabled='0'; uci set wireless.client_radio1.disabled='0'; uci set wireless.wan_radio1.disabled='0';wifi
Erläutertung:
wireless.ibss - wird nur benötigt, wenn Mesh via IBSS aktiv ist
wireless.mesh - wird nur benötigt, wenn Mesh via 802.11s aktiv ist
wireless.client - schaltet das Client Netz ab
wireless.wan - wir benötigt, wenn eine private WLAN SSID ausgestrahlt wird
radio0 - 2,4GHz WLAN Modul
radio1 - 5GHz WLAN Modul

Das funktioniert natürlich nur, wenn der Router zum entsprechenden zeitpunkt eingeschaltet ist. Sonst schaltet sich das WLan erst am nächsten Tag 7:00 wieder ein.

Fastd Uplink sofort für ein paar Stunden ausschalten

Manchmal braucht man die gesamte Bandbreite für eine Zeit für sich. In dem Fall braucht man nicht gleich den Stecker zu ziehen, sondern mit diesem Script kann man direkt von seinem Rechner aus auf der Konsole den Uplink für eine Zeit ausschalten:

SECONDS=3600 # one hour
ssh root@your:ipv6::addr:ess '(/etc/init.d/fastd stop && sleep '$SECONDS' && /etc/init.d/fastd start)&'

Statusseite partiell ausblenden - Privacy (2016.1.x)

Nachbarknoten (alles)

chmod -x /lib/gluon/status-page/www/cgi-bin/interfaces

Nachbarknoten (dBm)

chmod -x /lib/gluon/status-page/www/cgi-bin/dyn/stations

Statistik (alles)

chmod -x /lib/gluon/status-page/www/cgi-bin/dyn/statistics

WAN auf allen Netzwerkports

 uci set network.client.ifname=bat0
 uci set network.wan.ifname='eth0 eth1'
 uci commit network

Achtung! Je nach Router sind auch andere Befehle notwendig. Zuerst sollte man mit

 uci show network.client.ifname
 uci show network.wan.ifname

sich den Altzustand anzeigen lassen und notieren. Der WDR4300 hat z.B. statt eth0 und eth1 die Interface eth0.1 und eth0.2. Zur Änderung werden folglich folgende Befehle benötigt.

 uci del_list network.client.ifname=eth0.1
 uci add_list network.wan.ifname=eth0.1

Danach die Änderung erneut prüfen. Und mit

 uci commit 

bestätigen.

ReBroadcast Mesh-on-WAN/LAN abschalten (Default on 2016.2.x)

With this option set incoming multicast payload frames on <iface> are not being rebroadcasted on <iface> again.
This option should be set on links which are known to be transitive and symmetric only, for instance point-to-point wifi longshots or wired links.
-- Linus Lüssing

uci set network.mesh_wan.mesh_no_rebroadcast='1'
uci set network.mesh_lan.mesh_no_rebroadcast='1'
uci commit network
reboot && exit

Weiterleitungs-Kosten des Mesh-Hop (Knoten) festlegen (2011.0.0 <= batman-adv < 2014.1.0)

A higher hop penalty will make it more unlikely that other nodes will choose this node as intermediate hop towards any given destination.
EX: Mobile nodes could choose a value of 255 (maximum value) to avoid being chosen as a router by other nodes.

1. Anzeigen (Default: 15)

cat /sys/class/net/bat0/mesh/hop_penalty 

2. Temporär ändern, z.B. 100

echo 100 > /sys/class/net/bat0/mesh/hop_penalty

3. Persistent abspeichern, z.B. 100 (nur gültig für Gluon bis v2019.1.2, danach ist ein persistentes Abspeichern per UCI nicht mehr möglich)

uci set batman-adv.bat0.hop_penalty='100'
uci commit batman-adv
# reboot oder Schritt 2. zum Anwenden

Sendeleistung reduzieren

Mögliche Werte:

iwinfo phy0 txpower

Sendeleistung z.B. auf 12dBm reduzieren:

uci set wireless.radio0.txpower=12
uci commit
wifi

Hinweis: seit 2016.2.3 ist dort ein ungelöster Bug, weshalb das z.Z keine Wirkung hat. Workaround:

iw phy0 set txpower fixed 1200 # $wert mal 1000

POE Passthrough auf TP-Link CPE

Ab Gluon 2016.2:

uci set system.poe_passthrough=gpio_switch
uci set system.poe_passthrough.name='PoE Passthrough'
uci set system.poe_passthrough.gpio_pin='20'
uci set system.poe_passthrough.value='1'
uci commit system


WAN Interface auf LAN/Client Interface umkonfigurieren

Bei Routern mit nur einem WAN-Port (z.B. TP-Link 801), die über WLAN meshen, kann es sinnvoll sein, das einzige (unbenutzte) WAN Interface in ein Client Interface für lokale LAN Clients umzudengeln:

fastd abschalten:

$ uci set fastd.mesh_vpn.enabled=0

WAN auf Client umdengeln:

$ uci set network.wan.ifname=
$ uci set network.client.ifname='eth0' 'bat0'

Ab dafür:

$ uci commit

GLUON vollständig zurücksetzen (Factory Reset)

Folgende Schritte setzen einen auf GLUON basierenden Freifunkknoten auf den Zustand zurück, als dieser erstmals von der Stock-Firmware geflasht worden ist. [3] [4]

  1. Auf die Kommandozeile der Routers mittels SSH verbinden (s.o.).
  2. Den Befehl firstboot eingeben und mit Enter bestätigen (damit wird die Overlay-Partition formatiert).
  3. Anschließende die Sicherheitsabfrage mit y bestätigen. ACHTUNG: Wirklich ALLE Einstellungen werden gelöscht!
  4. Abschließend den Router mit dem Befehl reboot neustarten, woraufhin der Router in den Config-Modus neu startet.

HINWEIS: Nach dem Zurücksetzen generiert der Router einen neuen VPN-Key!

Quellen