# Raspberry Pi OS - WiFi konfigurieren mit dem NetworkManager (nmcli)

<p class="callout info">Hier wird beschrieben wie man eine WiFi Netzwerkverbindung mit dem NetworkManager konfiguriert.</p>

#### Konfigurieren der WLAN Verbindung

<p class="callout info">RaspiOS benötigt die Einstellung der **WiFi localisation** in **raspi-config** vor hinzufügen der Verbindung!</p>



##### Netzwerkverbindung hinzufügen:

Als erstes den Namen des WLAN-Interfaces anzeigen lassen:

```
nmcli
```

Der **con-name** kann frei vergeben werden, dieser wird später bei allen Konfigurationen verwendet.

Die SSID anzeigen lassen:

```
nmcli dev wifi
```

<p class="callout info">Versteckte (hidden) SSIDs werden nicht angezeig!</p>

Die Verbindung hinzufügen (im Beispiel: con-name: home-wifi, SSID: myhomewifi):

```bash
nmcli connection add type wifi con-name "CONNECTIONNAME" ifname wlan0 ssid "SSID" \
wifi-sec.key-mgmt wpa-psk wifi-sec.psk "PASSWORD"
```

<p class="callout info">Um eine versteckte Netzwerkverbindung hinzuzufügen wird **wifi.hidden yes** angefügt.</p>

```bash
nmcli connection add type wifi con-name "CONNECTIONNAME" ifname wlan0 ssid "SSID" \
wifi-sec.key-mgmt wpa-psk wifi-sec.psk "PASSWORD" wifi.hidden yes
```


##### Ändern auf WPA3

Ändern auf WPA3-PSK:

```bash
nmcli connection modify "CONNECTIONNAME" wifi-sec.key-mgmt sae
```

##### Ändern von Anmeldedaten

**<span style="font-family: Liberation Sans, sans-serif;"><span style="font-weight: normal;">Ändern des Passworts</span></span>**<span style="font-family: Liberation Sans, sans-serif;"><span style="font-weight: normal;">:</span></span>

```bash
nmcli connection modify "CONNECTIONNAME" wifi-sec.psk "PASSWORD"
```


##### Verbinden mit dem WLAN-Netzwerk

**<span style="font-family: Liberation Sans, sans-serif;"><span style="font-weight: normal;">Verbindung aktivieren</span></span><span style="font-family: Liberation Sans, sans-serif;"><span style="font-weight: normal;">:</span></span>**

```bash
nmcli connection up "CONNECTIONNAME"
```

<span style="font-family: Liberation Sans, sans-serif;">Verbindung testen</span><span style="font-family: Liberation Sans, sans-serif;">:</span>

```bash
nmcli connection show "CONNECTIONNAME"
```

<p class="callout info">Der Wert **connection.autoconnect-retries** gibt an wieviele Verbindungsversuche durchgeführt werden. Ist der Wert -1 werden vier Versuche durchgeführt. Bei 0 werden unendliche Versuche durchgeführt.</p>

Ändern der Anzahl Verbindungsversuche:

```bash
nmcli connection modify "CONNECTIONNAME" connection.autoconnect-retries 0
```


##### Netzwerkverbindung entfernen

<span style="font-family: Liberation Sans, sans-serif;">Entfernen der Verbindung mit delete:</span>

```bash
nmcli connection delete "CONNECTIONNAME"
```