Ubuntu: WLan mit statischer IP betreiben

2 September 2013 22:23:11 | Tags: Linux  Wlan  Netzwerk 

Normalerweise wird unter Ubuntu das Wlan mit dem NetworkManager betrieben. Dieser läuft unter X - und ist somit erst dann aktiv, wenn ein User angemeldet ist, der entsprechend das Netzwerk konfiguriert hat (und das auch darf).
Nun will ich aber, dass das Netz sofort nach dem Starten des Kernels verfügbar ist und mit einer statischen IP versehen. Früher war das Gelegenheit, einen Abend am Rechner zu verbringen, Logs zu analysieren, mehrfach an den Rand des Wahnsinns zu gelangen - heute ist das ganz einfach:
Quasi die ganze Konfiguration, die geändert werden muss, liegt in /etc/network/interfaces. Dort möchte die IP 192.168.1.244 in einem Klasse C Netz fest vergeben. Dann muss (als root) eingetragen werden:
auto wlan0
iface wlan0 inet static
   address 192.168.1.244
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1
   dns-nameservers 192.168.1.1
   wpa-ssid ssid
   wpa-psk 73237e345618611c50e051c8cd7ee37dca07d829c16023f55ac0ce00c159c241

Den preshared key (aka 'Passwort' oder 'passphrase') für meine WPA(2) Konfiguration ermittel ich mit dem wpa Tool 'wpa_passphrase'.
Ich habe das Passwort in einer Datei (alternativ wäre, es als zweiten Parameter mitzugeben).
cat /tmp/my-wlan-file.txt | wpa_passphrase meine-ssid
Da kommt dann eine Konfiguration heraus, von der aber nur die in HEX umgewandelte Passphrase benötigt wird:
# reading passphrase from stdin
network={
   ssid="ssid"
   #psk="plaintextpassphrase"
   psk=73237e345618611c50e051c8cd7ee37dca07d829c16023f55ac0ce00c159c241
}


Jetzt kann es noch sein, dass das Interface nicht 'wlan0' heißt.
ifconfig -a zeigt alle, auch die nicht konfigurierten Interfaces an und gibt Auskunft, was vom Kernel gefunden wurde. Bei mir stand dort z.B., dass das Wlan Interface 'eth1' bekommen hat. Das finde ich aber unschön und habe das in /etc/udev/rules.d/70-persistent-net.rules geändert.
# PCI device 0x8086:0x4224 (ipw2200)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:13:ce:fd:44:89", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wlan0"


Das ist natürlich für jeden Rechner anders ;-) - Die Stelle zum Ändern ist der NAME.
Comments [0]