Tests bei Problemen mit der Internetverbindung: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(Was für eine Netzwerkkarte habe ich überhaupt ?: Hinweisbox)
(Öffnen eines Konsolenfensters: Umlaute)
Zeile 8: Zeile 8:
 
Alle Befehle muessen in einem Konsolenfenster eingegeben werden.
 
Alle Befehle muessen in einem Konsolenfenster eingegeben werden.
  
== Oeffnen eines Konsolenfensters ==
+
== Öffnen eines Konsolenfensters ==
  
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 druecken und 'konsole' eingeben. Oder ALT-CTRL-F1 druecken und an Textkonsole anmelden (und mit ALT-CTRL-F7 gehts zurueck).
+
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 ==
 
== Inhalt einer Datei ansehen ==

Version vom 20. März 2007, 00:52 Uhr

Autoren Martin Breidenbach, framp

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.


Wenn Ihr Probleme mit der Internetverbindung habt dann koennt Ihr uns die Arbeit erleichtern indem Ihr ein paar Tests macht und die Ergebnisse gleich mit postet. Das erspart oft mehrere Rueckfragen.

Alle Befehle muessen 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
more /etc/resolv.conf
less /etc/resolv.conf


'cat' gibt einfach nur den Inhalt auf der Konsole aus. 'more' tut das seitenweise. Und mit 'less' kann man darin herumblätter.


root-Rechte

Fuer manche Befehle oder Aenderungen an Dateien benoetigt 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.

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.


Ausgabe eines Befehles in Datei umleiten

Ihr koennt unter Linux und Windows die Ausgabe eines Befehles 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 koennt dann koennt 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 ausfuehrt 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 zukuenftigen Netzwerkproblemen ist dieses sicherlich hilfreich zu wissen .

Verbindungstests mit PING

(aus einer Forumsnachricht von gaw leicht modifiziert uebernommen)

Wenn die Internetverbindung nicht klappt kann das mehrere Ursachen haben. Es kann ein Kabel, ein switch oder eine Netztwerkkarte defekt sein, der Treiber ist nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benoetigte Netzwerkunterstuetzung im Kernel fehlt.

Um diverse Ursachen auszuschliessen setzt man zunaechst folgende sechs PING Befehle in einem Konsolenfenster ab:

1) ping localhost oder ping 127.0.0.1 testet TCP/IP Unterstuetzung

2) ping eigene IP-Adresse zum Beispiel:

ping 192.168.10.5

testet den Netztwerktreiber

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 Namesaufloesung 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.


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

lsusb


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

iwconfig

Netzwerkkartenkonfiguration anzeigen

Als root ausführen:

Code:

ifconfig
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.


Das Ergebnis sollte etwa so aussehen:

eth0     Link encap:Ethernet  HWaddr 00:50:04:46:4C:11 
         inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
         inet6 addr: fe80::250:4ff:fe46:4c11/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1
         RX packets:44837 errors:0 dropped:0 overruns:0 frame:0
         TX packets:56189 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100
         RX bytes:9424913 (8.9 Mb)  TX bytes:36920342 (35.2 Mb)
         Interrupt:10 Base address:0x1080

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: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)


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.

Es dürfen Fehler vorkommen - 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 !

Routing-Tabelle anzeigen

route -n
Hinweis:

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.


Das Ergebnis sollte etwa so aussehen (ohne Option '-n'):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 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

Wenn man sich mit

route -n


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.

route add default gw 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-Servereintraege 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 fuer 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 'nslookup', 'dig' und 'host' nützlich sein.

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

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 Faelle wo eine Firewall irrtuemlich aktiviert war.

Bei SuSE 9.2 ist uebrigens die Firewall standardmaessig aktiviert !

Sind irgendwelche Filter definiert ?

Konsolenfenster oeffnen 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 oeffnen 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 selber 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 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.)

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)

NetzwerkInformationsSammelScript

Angesichts der immer wiederkehrenden Netzwerkprobleme hat framp ein Script erstellt welches die wesentlichen Netzwerkkonfigurationen und Netzwerkzustaende sammelt und die Netzwerkproblemisolation und -loesung beschleunigt. Letztendlich werden die von Breidy empfohlenen Befehle sequentiell aufgerufen und dier Ausgaben in einer Datei gesammelt.

Benutzung:

  1. Download der aktuellen Version von "collectNWData.sh" in z.B. /home/framp
  2. su -
  3. cd /home/framp
  4. chmod 700 collectNWData.sh
  5. ./collectNWData.sh
  6. copy und paste des Inhalts von collectNWData.out in das Forum

Der Detailgrad der Ausgaben ist ab dieser Version mit Flags zu steuern. Es werden nicht mehr standardmaessig alle Informationen gesammelt!

Parameterflags:

Keine
Dann greift der default, also -shwc
-s
standard network info
-h
hardware info
-w
wireless info
-c
config info (/etc/sysconfig/network/ifcfg-*)
-f
firewall info

Normalerweise reicht der Default und es muss nur Code:

./collectNWData.sh 

eingegeben werden.

Wer nur seine Firewallinformationen und Standardinformatioen erhalten moechte muss

./collectNWData.sh -sf

angeben. -s darf in diesem Fall nicht vergessen werden!
WLAN keys aus iwconfig und den ifcfg-* Dateien werden der Sicherheit wegen automatisch maskiert.


eingefügt von --Yehudi 07:05, 11. Sep 2006 (CEST) TCP/IP-Netzwerke und Internetzugang
Updated 11/16/2006 by framp