DSIW

Alles was interessant ist... (Linux, Programmierung, Datenschutz, Medien, uvm.)

Verbindung zum Internet herstellen unter Arch Linux

| Comments

Da ich nun Arch Linux benutze und man für die Installation von Paketen eine Internetverbindung braucht, möchte ich hiermit Möglichkeiten vorstellen, wie man eine Internetverbindung herstellen kann.

Möglichkeit 1:

Bei der ersten Möglichkeit, wird eine Internetverbindung allein über die Konsole eingerichtet. Das ist hilfreich, wenn man noch keine Desktopumgebung installiert hat. Wir unterscheiden zuerst mal zwischen der Art der Verbindung. Also, ob drahtlos oder mit einem Kabel eine Verbindung hergestellt werden soll. Bei einer kabelgebundenen Verbindung ist das relativ einfach. Zuerst wird herausgefunden, welche Interfaces man hat. Dazu nutzt man entweder sudo ifconfig oder man nutzt sudo ip addr. ifconfig ist bei einer nackten Installation nicht dabei, da es veraltet sei - jedenfalls war das bei mir der Fall. Ausgabe von sudo ifconfig:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
         [...]

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:630 errors:0 dropped:0 overruns:0 frame:0
          TX packets:630 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:47988 (46.8 Kb)  TX bytes:47988 (46.8 Kb)

wlan0     Link encap:Ethernet  HWaddr 00:22:33:44:55:66
          inet addr:192.168.178.29  Bcast:192.168.178.255  Mask:255.255.255.0
         [...]

Ausgabe von sudo ip addr:

1
2
3
4
5
6
7
8
9
10
11
 1. lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
 2. eth0:  mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
 3. wlan0:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:22:33:44:55:66 brd ff:ff:ff:ff:ff:ff
    inet 192.168.178.29/24 brd 192.168.178.255 scope global wlan0
    [...]

Das Interface lo ist das loopback-interface, also die lokale Schnittstelle. Damit kann man keine Verbindung zum WWW aufbauen. Das Inteface wlan0 ist ein drahtloses Interface (W-LAN). Für unseren ersten Fall ist aber das Interface "eth0" genau das richtige.

In meinem Fall ist das Inteface noch nicht aktiviert. Das geschieht über sudo ifconfig eth0 up oder sudo ip link set eth0 up. Nun ist es aktiviert.

Wenn man einen DHCP-Server in seinem Router eingebaut hat, ist das ganze nach einem sudo dhcpcd eth0 fertig eingerichtet. Der DHCP-Server ist dafür zuständig, dass alle internetfähigen Geräte eine einzigartige IP-Adresse zugewiesen bekommen und alle weiteren Adressen richtig eingestellt werden. Sollte man keinen DHCP-Server einsetzen, so muss man alle Adressen von Hand eingeben. Dazu wird die Datei /etc/rc.conf bearbeitet. Unter dem Abschnitt "Networking" halten wir uns an das "Static IP example"-Beispiel:

1
2
3
4
5
6
# Static IP example
interface=eth0
address=192.168.0.2
netmask=255.255.255.0
broadcast=192.168.0.255
gateway=192.168.0.1

Das Interface ist schon richtig ausgewählt. Die Adresse ist die einzigartige IP-Adresse in deinem Netz. Falls du in einem normalen privaten Heimnetz bist, ist die (Sub-)Netzmaske richtig. Die Broadcast-Adresse setzt sich aus den ersten 3 Oktetten der IP-Adresse des Routers zusammen. Das letzte (4.) Oktett ist eine "255". Die Gateway-Adresse ist die IP-Adresse des Routers. Wenn man nun alle Einstellungen richtig eingegeben hat, sollte eine Internetverbindung aufgebaut worden sein. Wie man dies testet, ist weiter unten beschrieben.

W-LAN-Verbindung

Kommen wir nun zu dem etwas aufwändigeren Teil. Hierbei werden wir eine WPA-verschlüsselte Verbindung aufbauen.

Zuerst müssen wir eine Struktur aufbauen, die von dem Internet-Dienst gelesen werden kann. Dazu nutzen wir das Programm wpa_passphrase mit zwei Parametern. Der erste Parameter steht für den Namen des Netzwerks (SSID), der zweite Parameter ist das Passwort im Klartext.

1
2
3
4
5
6
$ wpa_passphrase ssid klartext-passwort
network={
  ssid="ssid"
  #psk="klartext-passwort"
  psk=e6ad8f6c73f10677f3a5b6988e72c50d198004c52d029b554854ad22ef62e9e9
}

Das ganze lassen wir dann in die Datei /etc/wpa_supplicant.conf schreiben: $ wpa_passphrase ssid klartext-passwort > /etc/wpa_supplicant.conf. Allerdings müssen noch weitere Informationen angefügt werden. In meinem Fall sieht die Datei folgendermaßen aus:

1
2
3
4
5
6
7
8
9
network={
  ssid="Netzwerkname"
  proto=RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP
  #psk="klartext-passwort"
  psk=e6ad8f6c73f10677f3a5b6988e72c50d198004c52d029b554854ad22ef62e9e9
}

[Update 2011-11-14] Welche Konfiguration zum Router passt, kann hier nachgelesen werden. Danke Joakim, für den Link. [/Update]

Das drahtlose Interface wlan0 sollte natürlich aktiviert werden: sudo ifconfig wlan0 up oder sudo ip link set wlan0 up. Nachdem dies gemacht wurde kann diese Information an das Inteface übergeben werden, indem man sudo wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf nutzt. Dabei wird das Programm als Dämon (Parameter -B) im Hintergrund gestartet und ausgeführt. Als Treiber wird wext genutzt und das drahtlose Interface ist wlan0. Nutzt man einen DHCP-Server, kann man wieder sudo dhcp wlan0 ausführen. Das dauert einen Moment, aber danach ist die Verbindung hergestellt. Nutzt man keinen DHCP-Server, dann sind es die gleichen Schritte, wie oben schon einmal erklärt. Allerdings ändert sich logischerweise das Interface.

Möglichkeit 2:

Hierzu verwenden wir einen NetworkManager, dazu muss eine grafische Desktopumgebung und ein X-Server installiert sein. Zuerst wird dieser über das Kommando sudo pacman -S networkmanager installiert. Nachfolgend müssen wir die alten Einstellungen deaktivieren, sodass der NetworkManager richtig funktioniert. Der Dienst network muss durch sudo /etc/rc.d/network stop gestoppt werden. Der Dämon network muss durch networkmanager in der /etc/rc.conf ersetzt werden. Desweiteren ist es wichtig, dass der Dämon dbus zuerst gestartet wurde. Die Dämon-Zeile sollte dann so aussehen:

1
DAEMONS=(.. dbus networkmanager ..)

Danach müssen wir noch die Interfaces, die in der rc.conf aktiv sind, auskommentieren und die Zeile

1
INTERFACES=(!eth0 !wlan0)

einfügen. Den genauen Grund dafür, weiß ich leider nicht. Ich denke mal, dass die Interfaces dann nicht automatisch aktiviert werden. Das "!" bewirkt ein "blacklisten", des dahinterstehenden Eintrags. Jetzt reicht es, wenn wir den Dienst networkmanager durch sudo /etc/rc.d/networkmanager start starten. Nun kann man die Verbindungen über eine grafische Oberfläche einrichten und aufbauen.

Prüfen einer Internetverbindung:

Zuerst würde ich eine Verbindung zum Router überprüfen. Dazu wird ein PING-Request an den Router gesendet: ping -c 4 <ip-adresse des routers>.

Erfolgreiche Anfrage:

1
2
3
4
5
6
7
8
9
PING 192.168.178.1 (192.168.178.1) 56(84) bytes of data.
 6. bytes from 192.168.178.1: icmp_req=1 ttl=64 time=4.36 ms
 6. bytes from 192.168.178.1: icmp_req=2 ttl=64 time=5.68 ms
 6. bytes from 192.168.178.1: icmp_req=3 ttl=64 time=9.53 ms
 6. bytes from 192.168.178.1: icmp_req=4 ttl=64 time=5.39 ms

--- 192.168.178.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.363/6.244/9.538/1.965 ms

War es erfolgreich, hat man schon mal eine Verbindung zum Router. Nun kann man einen Server außerhalb des privaten Netzes "anpingen". Dazu nutzt man zum Beispiel ping -c 4 www.archlinux.org. Natürlich kann man anstatt "www.archlinux.org" auch einen anderen Server nutzen.

1
2
3
4
5
6
7
8
9
PING www.heise.de (193.99.144.85) 56(84) bytes of data.
 6. bytes from www.heise.de (193.99.144.85): icmp_req=1 ttl=248 time=229 ms
 6. bytes from www.heise.de (193.99.144.85): icmp_req=2 ttl=248 time=357 ms
 6. bytes from www.heise.de (193.99.144.85): icmp_req=3 ttl=248 time=187 ms
 6. bytes from www.heise.de (193.99.144.85): icmp_req=4 ttl=248 time=354 ms

--- www.heise.de ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 187.095/282.242/357.520/75.392 ms

Nun ist der eigene Rechner mit dem Internet verbunden. Sollte diese Einrichtung zu kompliziert oder zu aufwändig sein, dann empfehle ich eine andere Distribution. Die Distribution "Ubuntu", die eigentlich jeder kennt, installiert automatisch eine Desktop-Umgebung mit einem Netzwerk-Manager, sodass die Einrichtung dort ein Kinderspiel ist. Ich verstehe aber gerne mein System, deswegen bin ich jetzt auch unter "Arch Linux" unterwegs.

Weitere Informationen

Comments