Tests bei Problemen mit der Internetverbindung: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Normal lesbar)
K (Ist die IPTables/Netfilter Firewall aktiviert ?: interne Verlinkung)
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
Autoren Martin Breidenbach, [[Benutzer:framp|framp]]
 
Autoren Martin Breidenbach, [[Benutzer:framp|framp]]
 +
 +
{{Überarbeiten|sprachlich verbessern}}
  
 
{{Box Achtung||
 
{{Box Achtung||
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''
+
'''Alle im Folgenden detailiert beschriebenen Befehle zur Problemfindung sind in [http://www.linux-tips-and-tricks.de/collectNWData diesem Script] zusammengefasst und es werden dazu weitere Analysen auf häufige Konfigurationsfehler durchgeführt. Es sollte deshalb, da es eine selbstständige Problemlösung ermöglicht und einfacher ist, als alle folgend beschriebenden Befehle auszuführen, ausgeführt werden. Sollte kein Erfolg bei der eigenen Problemlösung gegeben sein erleichtert und beschleunigt sich erfahrungsgemäß die Lösung des Problems, wenn die Ergebnisse des Scripts im Forum gepostet werden.
 +
 
 +
Der Lerneffekt dabei ist allerdings gleich Null. Wer also verstehen und lernen will wie man Informationen zu Netzwerkproblemen sammelt und interpretiert sollte die im Folgenden beschriebenen Befehle manuell ausführen und per man oder Google die Ausgabeergebnisse versuchen zu interpretieren.'''
 
}}
 
}}
  
Zeile 11: Zeile 15:
 
== Öffnen eines Konsolenfensters ==
 
== Öffnen eines Konsolenfensters ==
  
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und 'konsole' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).
+
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '<code>konsole</code>' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).
  
 
== Inhalt einer Datei ansehen ==
 
== Inhalt einer Datei ansehen ==
Zeile 17: Zeile 21:
 
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):
 
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):
  
Den Inhalt einer Textdatei (wie z.B. /etc/resolv.conf) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:
+
Den Inhalt einer Textdatei (wie z.B. <code>/etc/resolv.conf</code>) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:
 
 
  
 
  cat /etc/resolv.conf
 
  cat /etc/resolv.conf
more /etc/resolv.conf
 
 
  less /etc/resolv.conf
 
  less /etc/resolv.conf
  
 
+
`<code>cat</code>` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `<code>less</code>` kann man darin umherblättern.
'cat' gibt einfach nur den Inhalt auf der Konsole aus. 'more' tut das seitenweise. Und mit 'less' kann man darin herumblätter.
 
 
 
  
 
== root-Rechte ==
 
== root-Rechte ==
  
Für manche Befehle oder Änderungen an Dateien benötigt man root-Rechte. Die erlangt man indem man sich entweder als root anmeldet oder in einem Konsolenfenster den Befehl 'su' und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.
+
Für manche Befehle oder Änderungen an Dateien benötigt man root-Rechte. Die erlangt man indem man sich entweder als root anmeldet oder in einem Konsolenfenster den Befehl `<code>su</code>` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.
 
 
Die Befehle ifconfig und route liegen beide im /sbin Verzeichnis und dieses liegt für normale User nicht im Suchpfad. Man kann sie aber via /sbin/ifconfig bzw /sbin/route aufrufen.
 
  
 +
Der Befehl `<code>ip</code>` liegt im Verzeichnis <code>/sbin</code> und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via <code>/sbin/ip</code> aufrufen.
  
 
== Ausgabe eines Befehls in Datei umleiten ==
 
== Ausgabe eines Befehls in Datei umleiten ==
Zeile 40: Zeile 39:
  
 
  befehl >ausgabe.txt
 
  befehl >ausgabe.txt
 
  
 
Dann braucht Ihr es nicht abschreiben.
 
Dann braucht Ihr es nicht abschreiben.
Zeile 47: Zeile 45:
  
 
  mcopy datei a:
 
  mcopy datei a:
 
  
 
== Es funktioniert unter Windows aber nicht unter Linux ==
 
== Es funktioniert unter Windows aber nicht unter Linux ==
 
  
 
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:
 
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:
  
 
  ipconfig /all
 
  ipconfig /all
 
  
 
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:
 
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:
  
 
  ipconfig /all >ipconfig.txt
 
  ipconfig /all >ipconfig.txt
 
  
 
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:
 
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:
 
  
 
  winipcfg
 
  winipcfg
 
  
 
Die Routingtabelle wird ausgegeben mit:
 
Die Routingtabelle wird ausgegeben mit:
Zeile 72: Zeile 64:
 
  route print
 
  route print
  
 
+
bzw.
bzw
 
  
 
  route print >route.txt
 
  route print >route.txt
  
 +
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.
  
Wenn Ihr das postet dann haben wir schonmal Werte von denen wir wissen dass sie funktionieren.
+
Am Ende des Threads befindet sich ein Posting in dem auf ein Script verwiesen wird welches alle im folgenden beschriebenen manuellen Informationsabfragen in einem Script ausführt und in einem File sammelt. Trotzdem sollten erst einmal die folgenden Seiten gelesen werden, um zu verstehen und zu lernen, welche Informationen weshalb von dem Script gesammelt werden! Bei zukünftigen Netzwerkproblemen ist dieses sicherlich hilfreich zu wissen.
 
 
Am Ende des Threads befindet sich ein Posting in dem auf ein Script verwiesen wird welches alle im folgenden beschriebenen manuellen Informationsabfragen in einem Script ausführt und in einem File sammelt. Nichtsdestotrotz sollten trotzdem erst einmal die folgenden Seiten gelesen werden um zu verstehen und zu lernen welche Informationen weshalb von dem Script gesammelt werden! Bei zukünftigen Netzwerkproblemen ist dieses sicherlich hilfreich zu wissen .
 
  
 
== Verbindungstests mit PING ==
 
== Verbindungstests mit PING ==
 
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)
 
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)
  
Wenn die Internetverbindung nicht klappt kann das mehrere Ursachen haben. Es kann ein Kabel, ein switch oder eine Netzwerkkarte defekt sein, der Treiber ist
+
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist
 
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.
 
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.
  
 
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:
 
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:
  
1) ping localhost oder ping 127.0.0.1
+
1) <code>ping localhost</code> oder <code>ping 127.0.0.1</code>
 
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung
 
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung
  
Zeile 119: Zeile 109:
  
 
testet die Internetverbindung
 
testet die Internetverbindung
Hinweis: 195.135.220.3 ist die IP-Adresse von www.suse.de und antwortet auf pings (nicht alle Rechner im Internet tun das).
+
Hinweis: <code>195.135.220.3</code> ist die IP-Adresse von <code>www.suse.de</code> und antwortet auf pings (nicht alle Rechner im Internet tun das).
  
 
6) ping Hostname im Internet
 
6) ping Hostname im Internet
Zeile 126: Zeile 116:
  
 
  ping www.suse.de
 
  ping www.suse.de
 
  
 
Die PING-Befehle können mit ctrl-c abgebrochen werden.
 
Die PING-Befehle können mit ctrl-c abgebrochen werden.
Zeile 133: Zeile 122:
  
 
  ping -c4 ip.adresse.des.routers
 
  ping -c4 ip.adresse.des.routers
 
  
 
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).
 
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).
Zeile 144: Zeile 132:
  
 
  lspci
 
  lspci
ansehen welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.
+
 
 +
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.
  
 
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:
 
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:
 
  
 
  00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
 
  00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
Zeile 162: Zeile 150:
  
 
{{Box Hinweis||
 
{{Box Hinweis||
Hier wird angezeigt wie sich die Karte auf dem PCI Bus identifiziert und nicht was auf der Pappschachtel steht. Das muß keinesfalls übereinstimmen.
+
Hier wird angezeigt wie sich die Karte auf dem PCI Bus identifiziert und nicht was auf der Pappschachtel steht. Das muß keinesfalls übereinstimmen. ''lspci'' zeigt darüber hinaus nur die Hardwareidentifikation an -- das heißt nicht sofort, dass ein Treiber vorhanden ist.
 
}}
 
}}
  
 
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit
 
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit
lsusb
 
  
 +
lsusb -t
  
 
Bei WLAN Karten erhält man nützliche Infos mit
 
Bei WLAN Karten erhält man nützliche Infos mit
 +
 
  iwconfig
 
  iwconfig
  
Zeile 176: Zeile 165:
 
Als root ausführen:
 
Als root ausführen:
  
Code:
+
  ip addr
  ifconfig
 
  
 
{{Box Hinweis||
 
{{Box Hinweis||
ifconfig liegt in /sbin und /sbin liegt nur für root im Suchpfad. Also ifconfig entweder als root ausführen oder via /sbin/ifconfig ausführen.
+
''ip'' liegt in <code>/sbin</code> und <code>/sbin</code> liegt nur für root im Suchpfad. Also <code>ip </code> entweder als root ausführen oder via <code>/sbin/ip</code> ausführen.
 
}}
 
}}
  
 
Das Ergebnis sollte etwa so aussehen:
 
Das Ergebnis sollte etwa so aussehen:
  
  eth0    Link encap:Ethernet  HWaddr 00:50:04:46:4C:11
+
  # ip addr
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
+
  1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
          inet6 addr: fe80::250:4ff:fe46:4c11/64 Scope:Link
+
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
          UP BROADCAST RUNNING MULTICAST  MTU:1492 Metric:1
+
    inet 127.0.0.1/8 scope host lo
          RX packets:44837 errors:0 dropped:0 overruns:0 frame:0
+
    inet6 ::1/128 scope host
          TX packets:56189 errors:0 dropped:0 overruns:0 carrier:0
+
        valid_lft forever preferred_lft forever
          collisions:0 txqueuelen:100
+
  2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
          RX bytes:9424913 (8.9 Mb)  TX bytes:36920342 (35.2 Mb)
+
    link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff
          Interrupt:10 Base address:0x1080
+
    inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
+
    inet6 fe80::250:4ff:fe46:4c11/64 scope link
lo      Link encap:Local Loopback
+
        valid_lft forever preferred_lft forever
          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:48681 errors:0 dropped:0 overruns:0 frame:0
 
          TX packets:48681 errors:0 dropped:0 overruns:0 carrier:0
 
          collisions:0 txqueuelen:0
 
          RX bytes:13026354 (12.4 Mb)  TX bytes:13026354 (12.4 Mb)
 
 
  
 +
# ip -s link show eth0
 +
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
 +
    link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff
 +
    RX: bytes  packets  errors  dropped overrun mcast 
 +
    9424913    44837    510097  0      0      0
 +
    TX: bytes  packets  errors  dropped carrier collsns
 +
    36920342  334243  0      0      0      0     
  
Wichtig ist daß die Netzwerkkarten über eine IP-Adresse verfügen (inet addr:192.168.0.2), dass Pakete gesendet (TX packets:56189) und empfangen (RX packets:44837) werden.
+
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (<code>inet 192.168.0.2/24</code>), dass Pakete gesendet (<code>TX packets:56189</code>) und empfangen (<code>RX packets:44837</code>) werden.
  
Es dürfen Fehler vorkommen - allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.
+
Es dürfen Fehler (<code>errors:''X''</code>) vorkommen&nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.
  
Wenn die Zeile 'inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0' fehlt dann hat die Karte keine TCP/IP Adresse !
+
Wenn die Zeile '<code>inet 192.168.0.2/24</code>' fehlt, hat das Interface keine IP-Adresse!
  
 
== Routing-Tabelle anzeigen ==
 
== Routing-Tabelle anzeigen ==
  
 +
ip route
  
route -n
+
Das Ergebnis sollte etwa so aussehen:
  
{{Box Hinweis||
+
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2
route liegt in /sbin und /sbin liegt nur für root im Suchpfad. Also route entweder als root ausführen oder via /sbin/route -n ausführen.
+
default via 192.168.0.1 dev eth0
}}
 
  
Das Ergebnis sollte etwa so aussehen (ohne Option '-n'):
+
Mittels `<code>routel main</code>` kann man eine tabellarische Übersicht erhalten:
  
Kernel IP routing table
+
        target            gateway          source    proto    scope    dev tbl
Destination     Gateway        Genmask        Flags Metric Ref    Use Iface
+
     192.168.0.0/24                    192.168.0.2   kernel     link  eth0  
192.168.0.0     *              255.255.255.0   U     0      0        0 eth0
+
        default        192.168.0.1                                   eth0  
default        192.168.0.1 0.0.0.0        UG    0      0        0 eth0
 
 
 
 
 
Bei Option '-n' werden Werte numerisch angezeigt; also z.B. 0.0.0.0 statt default und ggf werden Hostnamen durch IP-Adressen ersetzt.
 
  
 
== Standardgateway überprüfen ==
 
== Standardgateway überprüfen ==
 
  
 
Wenn man sich mit
 
Wenn man sich mit
  
  route -n
+
  ip r
  
 +
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '<code>default</code>' geben. (`<code>ip r</code>` ist eine akzeptierte Abkürzung für `<code>ip route</code>`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.
  
die Routingtabelle anzeigen lässt dann sollte es dort einen Eintrag 'default' bzw. '0.0.0.0' geben. Das ist der Eintrag für das Standardgateway. Wenn der fehlt gibt es kein Internet.
+
ip route replace default via 192.168.0.1
  
route add default gw 192.168.0.1
+
(wobei natürlich <code>192.168.0.1</code> durch den 'korrekten' Wert zu ersetzen ist).
 
 
(wobei natürlich 192.168.0.1 durch den 'korrekten' Wert zu ersetzen ist).
 
  
 
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.
 
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.
Zeile 249: Zeile 230:
 
== DNS-Servereinträge anzeigen ==
 
== DNS-Servereinträge anzeigen ==
  
Die DNS-Servereinträge stehen in der Datei /etc/resolv.conf. Diese kann man anzeigen mit:
+
Die DNS-Servereinträge stehen in der Datei <code>/etc/resolv.conf</code>. Diese kann man anzeigen mit:
 +
 
 
  cat /etc/resolv.conf
 
  cat /etc/resolv.conf
 
  
 
Das Ergebnis sollte etwa so aussehen:
 
Das Ergebnis sollte etwa so aussehen:
Zeile 258: Zeile 239:
 
  search mydomain.home
 
  search mydomain.home
  
 +
Hinter '<code>nameserver</code>' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.
  
Hinter 'nameserver' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.
+
Wenn dort kein solcher '<code>nameserver</code>' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.
  
Wenn dort kein solcher 'nameserver' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.
+
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `<code>dig</code>` und `<code>host</code>` nützlich sein.
  
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle 'nslookup', 'dig' und 'host' nützlich sein.
+
Ein Fehler in der Datei <code>/etc/nsswitch.conf</code> kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '<code>hosts:</code>' überprüfen. Eine im Allgemeinen funktionierende Variante ist  
 
 
Ein Fehler in der Datei /etc/nsswitch.conf kann dazu führen daß DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile 'hosts:' überprüfen. Eine i.A. funktionierende Variante ist  
 
  
 
  hosts: files dns
 
  hosts: files dns
 
  
 
Eine Liste globaler DNS-Servern findet man hier: <br>
 
Eine Liste globaler DNS-Servern findet man hier: <br>
Zeile 275: Zeile 254:
 
== Ist die IPTables/Netfilter Firewall aktiviert ? ==
 
== Ist die IPTables/Netfilter Firewall aktiviert ? ==
  
 +
Bei Problemen mit Firewall sollte man testen ob die Probleme auch ohne Firewall auftreten. Wir hatten hier im Forum auch schon mehrfach Fälle wo eine Firewall irrtümlich aktiviert war.
  
Bei Problemen mit Firewall sollte man testen ob die Probleme auch ohne Firewall auftreten. Wir hatten hier im Forum auch schon mehrfach Faelle wo eine Firewall irrtuemlich aktiviert war.
+
Bei SuSE 9.2 ist übrigens die Firewall ([[iptables]]) standardmäßig aktiviert!
  
Bei SuSE 9.2 ist uebrigens die Firewall standardmaessig aktiviert !
+
Sind irgendwelche Filter definiert?
  
Sind irgendwelche Filter definiert ?
+
Konsolenfenster öffnen und eingeben:
  
Konsolenfenster oeffnen und eingeben:
 
 
  iptables -L
 
  iptables -L
 
  
 
Bei deaktivierter Firewall sieht das Ergebnis so aus:
 
Bei deaktivierter Firewall sieht das Ergebnis so aus:
Zeile 296: Zeile 274:
 
  Chain OUTPUT (policy ACCEPT)
 
  Chain OUTPUT (policy ACCEPT)
 
  target    prot opt source              destination
 
  target    prot opt source              destination
 
 
  
 
== Ist NAT oder Masquerading aktiv ? ==
 
== Ist NAT oder Masquerading aktiv ? ==
  
 +
Konsolenfenster öffnen und eingeben:
  
Konsolenfenster oeffnen und eingeben:
 
 
  iptables -t nat -L
 
  iptables -t nat -L
 
  
 
Bei deaktivierter Firewall sieht das Ergebnis so aus:
 
Bei deaktivierter Firewall sieht das Ergebnis so aus:
Zeile 316: Zeile 291:
 
  Chain OUTPUT (policy ACCEPT)
 
  Chain OUTPUT (policy ACCEPT)
 
  target    prot opt source              destination
 
  target    prot opt source              destination
 
  
 
== SuSEFirewall2 Einstellungen posten ==
 
== SuSEFirewall2 Einstellungen posten ==
  
 
+
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.
Manchmal kann es erforderlich sein zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.
 
  
 
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:
 
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:
Zeile 327: Zeile 300:
 
  /etc/sysconfig/SuSEFirewall2
 
  /etc/sysconfig/SuSEFirewall2
  
Wenn Ihr die Datei postet dann lasst *BITTE* die ganzen Kommentare weg (das wird sonst so ewig lang und die Kommentare habe ich ja selbst auf der Platte).
+
Wenn Ihr die Datei postet dann lasst '''BITTE''' die ganzen Kommentare weg (das wird sonst so ewig lang und die Kommentare habe ich ja selbst auf der Platte).
  
 
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.
 
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.
 
  
 
== Ist Routing aktiv ? ==
 
== Ist Routing aktiv ? ==
 
  
 
In einem Konsolenfenster eingeben :
 
In einem Konsolenfenster eingeben :
Zeile 339: Zeile 310:
 
  cat /proc/sys/net/ipv4/ip_forward
 
  cat /proc/sys/net/ipv4/ip_forward
  
 
+
Dort muss dann eine <code>1</code> stehen damit Routing aktiv ist.
Dort muß dann eine 1 stehen damit Routing aktiv ist.
 
  
 
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)
 
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)
Zeile 346: Zeile 316:
 
Hinweis: auch wenn Routing / IP-Forwarding aktiv ist kann es durch die Firewall geblockt werden wenn dort entsprechende Regeln aktiv sind. Die SuSEFirewall2 beinhaltet auf jeden Fall eine Einstellung die das überschreibt.  
 
Hinweis: auch wenn Routing / IP-Forwarding aktiv ist kann es durch die Firewall geblockt werden wenn dort entsprechende Regeln aktiv sind. Die SuSEFirewall2 beinhaltet auf jeden Fall eine Einstellung die das überschreibt.  
  
 +
== Die SuSEfirewall2 ist ein Skript, ==
  
== Die SuSEfirewall2 ist ein Skript, ==
 
 
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch "herumprobieren" mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.
 
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch "herumprobieren" mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.
  
Zeile 355: Zeile 325:
  
 
Folgendes half dann:
 
Folgendes half dann:
 +
 
  SuSEfirewall2 stop
 
  SuSEfirewall2 stop
 
  iptables -F
 
  iptables -F
 
  SuSEfirewall2 start
 
  SuSEfirewall2 start
  
Das war's dann. iptables -F löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in /etc/sysconfig/SuSEfirewall2)
+
Das war's dann. `<code>iptables -F</code>` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in <code>/etc/sysconfig/SuSEfirewall2</code>)
  
 
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==
 
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==
Angesichts der immer wiederkehrenden Netzwerkprobleme hat [[Benutzer:framp|framp]] ein Script erstellt welches die wesentlichen Netzwerkkonfigurationen und Netzwerkzustände sammelt und die Netzwerkproblemisolation und -lösung beschleunigt. Ursprünglich wurden die von Breidy empfohlenen Befehle sequentiell aufgerufen und die Ausgaben in einer Datei gesammelt. Im Laufe der Zeit wurden weitere Tests und Ausgaben hinzugefügt.
 
 
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc) automatisch untersucht und auf diese Konfigurationsfehler hingewiesen.
 
 
Benutzung:
 
 
# Download der aktuellen Version von [http://www.linux.framp.de/collectNWData"collectNWData.sh"] in z.B. /home/framp  <br />
 
# su -<br />
 
# cd /home/framp<br />
 
# chmod 700 collectNWData.sh<br />
 
# ./collectNWData.sh<br />
 
# Falls typische Konfigurationsfehler entdeckt wurden diese selbständig beheben.
 
# Falls keine typischen Konfigurationsfehler gefunden wurden copy und paste des Inhalts von collectNWData.out in das Forum<br />
 
 
Der Detailgrad der Ausgaben ist ab dieser Version mit Flags zu steuern. Es werden nicht mehr standardmäßig alle Informationen gesammelt!
 
 
Parameterflags:
 
 
; Keine: Dann greift der default, also -shwc
 
; -s: standard network info<br />
 
; -h: hardware info<br />
 
; -w: wireless info<br />
 
; -c: config info (/etc/sysconfig/network/ifcfg-*)<br />
 
; -f: firewall info<br />
 
 
Normalerweise reicht der Default und es muss nur
 
Code:
 
./collectNWData.sh
 
 
eingegeben werden.
 
 
Wer nur seine Firewallinformationen und Standardinformationen erhalten möchte muss
 
./collectNWData.sh -sf
 
 
angeben. -s darf in diesem Fall nicht vergessen werden!
 
<br />
 
WLAN keys aus iwconfig und den ifcfg-* Dateien werden der Sicherheit wegen automatisch maskiert.
 
  
 +
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.
  
 
----
 
----
  
 
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]
 
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]

Aktuelle Version vom 23. November 2013, 16:00 Uhr

Autoren Martin Breidenbach, framp

Höhe=24px
Dieses HOWTO zu Linux oder der Abschnitt davon braucht eine Überarbeitung. Weitere Informationen findest Du hier. Deine Hilfe ist gefragt, das HOWTO zu verbessern. Danach entsorge bitte diese Signierung.


Achtung:

Alle im Folgenden detailiert beschriebenen Befehle zur Problemfindung sind in diesem Script zusammengefasst und es werden dazu weitere Analysen auf häufige Konfigurationsfehler durchgeführt. Es sollte deshalb, da es eine selbstständige Problemlösung ermöglicht und einfacher ist, als alle folgend beschriebenden Befehle auszuführen, ausgeführt werden. Sollte kein Erfolg bei der eigenen Problemlösung gegeben sein erleichtert und beschleunigt sich erfahrungsgemäß die Lösung des Problems, wenn die Ergebnisse des Scripts im Forum gepostet werden.

Der Lerneffekt dabei ist allerdings gleich Null. Wer also verstehen und lernen will wie man Informationen zu Netzwerkproblemen sammelt und interpretiert sollte die im Folgenden beschriebenen Befehle manuell ausführen und per man oder Google die Ausgabeergebnisse versuchen zu interpretieren.


Wenn Ihr Probleme mit der Internetverbindung habt dann könnt Ihr uns die Arbeit erleichtern indem Ihr ein paar Tests macht und die Ergebnisse gleich mit postet. Das erspart oft mehrere Rückfragen.

Alle Befehle müssen in einem Konsolenfenster eingegeben werden.

Öffnen eines Konsolenfensters

Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und 'konsole' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).

Inhalt einer Datei ansehen

Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):

Den Inhalt einer Textdatei (wie z.B. /etc/resolv.conf) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:

cat /etc/resolv.conf
less /etc/resolv.conf

`cat` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `less` kann man darin umherblättern.

root-Rechte

Für manche Befehle oder Änderungen an Dateien benötigt man root-Rechte. Die erlangt man indem man sich entweder als root anmeldet oder in einem Konsolenfenster den Befehl `su` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.

Der Befehl `ip` liegt im Verzeichnis /sbin und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via /sbin/ip aufrufen.

Ausgabe eines Befehls in Datei umleiten

Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:

befehl >ausgabe.txt

Dann braucht Ihr es nicht abschreiben.

Falls Ihr das unter Linux macht, momentan unter Linux keine Internetverbindung habt und keine Dateien auf eine Windows-Partition kopieren könnt dann könnt Ihr (wenn das Paket 'mtools' installiert ist) Dateien auf DOS-formatierte Disketten mit folgendem Befehl kopieren:

mcopy datei a:

Es funktioniert unter Windows aber nicht unter Linux

Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:

ipconfig /all

Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:

ipconfig /all >ipconfig.txt

Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:

winipcfg

Die Routingtabelle wird ausgegeben mit:

route print

bzw.

route print >route.txt

Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.

Am Ende des Threads befindet sich ein Posting in dem auf ein Script verwiesen wird welches alle im folgenden beschriebenen manuellen Informationsabfragen in einem Script ausführt und in einem File sammelt. Trotzdem sollten erst einmal die folgenden Seiten gelesen werden, um zu verstehen und zu lernen, welche Informationen weshalb von dem Script gesammelt werden! Bei zukünftigen Netzwerkproblemen ist dieses sicherlich hilfreich zu wissen.

Verbindungstests mit PING

(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)

Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.

Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:

1) ping localhost oder ping 127.0.0.1 testet TCP/IP Unterstützung

2) ping eigene IP-Adresse zum Beispiel:

ping 192.168.10.5

testet den Netzwerktreiber

3) ping IP-Adresse im gleichen LAN zum Beispiel:

ping 192.168.10.7

testet ob LAN-Verbindungen laufen Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.

4) ping Hostname im LAN zum Beispiel:

ping server.mydomain

testet die Namensauflösung im lokalen Netz

5) ping IP-Adresse im Internet zum Beispiel:

ping 195.135.220.3

testet die Internetverbindung Hinweis: 195.135.220.3 ist die IP-Adresse von www.suse.de und antwortet auf pings (nicht alle Rechner im Internet tun das).

6) ping Hostname im Internet testet die Namensauflösung im Internet zum Beispiel:

ping www.suse.de

Die PING-Befehle können mit ctrl-c abgebrochen werden.

Alternativ kann man auch diese Variante benutzen:

ping -c4 ip.adresse.des.routers

Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).

Was für eine Netzwerkkarte habe ich überhaupt ?

Es erstaunt mich ja immer wieder... da fragt man die Leute was für eine Netzwerkkarte sie haben und als Antwort kommt 'onboard' oder was ähnlich hilfreiches.

Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl

lspci

ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.

Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:

00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)
00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)
00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)
00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)
00:12.0 Network controller: AVM Audiovisuelles MKTG & Computer System GmbH A1 ISDN [Fritz] (rev 02)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)
Hinweis:

Hier wird angezeigt wie sich die Karte auf dem PCI Bus identifiziert und nicht was auf der Pappschachtel steht. Das muß keinesfalls übereinstimmen. lspci zeigt darüber hinaus nur die Hardwareidentifikation an -- das heißt nicht sofort, dass ein Treiber vorhanden ist.


Wo wir gerade dabei sind: USB Geräte anzeigen geht mit

lsusb -t

Bei WLAN Karten erhält man nützliche Infos mit

iwconfig

Netzwerkkartenkonfiguration anzeigen

Als root ausführen:

ip addr
Hinweis:

ip liegt in /sbin und /sbin liegt nur für root im Suchpfad. Also ip entweder als root ausführen oder via /sbin/ip ausführen.


Das Ergebnis sollte etwa so aussehen:

# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue 
    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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0
    inet6 fe80::250:4ff:fe46:4c11/64 scope link 
       valid_lft forever preferred_lft forever
# ip -s link show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    9424913    44837    510097  0       0       0
    TX: bytes  packets  errors  dropped carrier collsns 
    36920342   334243   0       0       0       0      

Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (inet 192.168.0.2/24), dass Pakete gesendet (TX packets:56189) und empfangen (RX packets:44837) werden.

Es dürfen Fehler (errors:X) vorkommen - allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.

Wenn die Zeile 'inet 192.168.0.2/24' fehlt, hat das Interface keine IP-Adresse!

Routing-Tabelle anzeigen

ip route

Das Ergebnis sollte etwa so aussehen:

192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2
default via 192.168.0.1 dev eth0

Mittels `routel main` kann man eine tabellarische Übersicht erhalten:

        target            gateway          source    proto    scope    dev tbl
   192.168.0.0/24                     192.168.0.2   kernel     link   eth0 
       default         192.168.0.1                                    eth0 

Standardgateway überprüfen

Wenn man sich mit

ip r

die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag 'default' geben. (`ip r` ist eine akzeptierte Abkürzung für `ip route`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.

ip route replace default via 192.168.0.1

(wobei natürlich 192.168.0.1 durch den 'korrekten' Wert zu ersetzen ist).

Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.

DNS-Servereinträge anzeigen

Die DNS-Servereinträge stehen in der Datei /etc/resolv.conf. Diese kann man anzeigen mit:

cat /etc/resolv.conf

Das Ergebnis sollte etwa so aussehen:

nameserver 192.168.0.1
search mydomain.home

Hinter 'nameserver' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.

Wenn dort kein solcher 'nameserver' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.

Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `dig` und `host` nützlich sein.

Ein Fehler in der Datei /etc/nsswitch.conf kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile 'hosts:' überprüfen. Eine im Allgemeinen funktionierende Variante ist

hosts: files dns

Eine Liste globaler DNS-Servern findet man hier:
DNS-Server

Ist die IPTables/Netfilter Firewall aktiviert ?

Bei Problemen mit Firewall sollte man testen ob die Probleme auch ohne Firewall auftreten. Wir hatten hier im Forum auch schon mehrfach Fälle wo eine Firewall irrtümlich aktiviert war.

Bei SuSE 9.2 ist übrigens die Firewall (iptables) standardmäßig aktiviert!

Sind irgendwelche Filter definiert?

Konsolenfenster öffnen und eingeben:

iptables -L

Bei deaktivierter Firewall sieht das Ergebnis so aus:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Ist NAT oder Masquerading aktiv ?

Konsolenfenster öffnen und eingeben:

iptables -t nat -L

Bei deaktivierter Firewall sieht das Ergebnis so aus:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination          

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

SuSEFirewall2 Einstellungen posten

Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.

Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:

/etc/sysconfig/SuSEFirewall2

Wenn Ihr die Datei postet dann lasst BITTE die ganzen Kommentare weg (das wird sonst so ewig lang und die Kommentare habe ich ja selbst auf der Platte).

BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.

Ist Routing aktiv ?

In einem Konsolenfenster eingeben :

cat /proc/sys/net/ipv4/ip_forward

Dort muss dann eine 1 stehen damit Routing aktiv ist.

(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)

Hinweis: auch wenn Routing / IP-Forwarding aktiv ist kann es durch die Firewall geblockt werden wenn dort entsprechende Regeln aktiv sind. Die SuSEFirewall2 beinhaltet auf jeden Fall eine Einstellung die das überschreibt.

Die SuSEfirewall2 ist ein Skript,

das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch "herumprobieren" mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.

iptables -L

zeigte diverse übrig gebliebene Einstellungen. DNS Anfragen von den Clients (Linux als Gateway ins Internet) wurden bearbeitet, aber keine weiteren Daten mehr an die Clients weitergereicht.

Folgendes half dann:

SuSEfirewall2 stop
iptables -F
SuSEfirewall2 start

Das war's dann. `iptables -F` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in /etc/sysconfig/SuSEfirewall2)

Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln

Dazu auf dieser Seite gehen und die Anleitung lesen.


zurück zum Netzwerk