<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Framp</id>
	<title>Linupedia.org - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://linupedia.org/wiki/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Framp"/>
	<link rel="alternate" type="text/html" href="https://linupedia.org/opensuse/Spezial:Beitr%C3%A4ge/Framp"/>
	<updated>2026-04-06T07:20:28Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=33112</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=33112"/>
		<updated>2022-03-28T21:55:30Z</updated>

		<summary type="html">&lt;p&gt;Framp: use HTTPS&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [https://www.linux-tips-and-tricks.de/de/webseiteninfos/20-historie/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tipps sowie meine Linux Config Files finden sich auf meiner kleinen Webseite [https://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=33088</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=33088"/>
		<updated>2022-02-07T09:13:21Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [https://www.linux-tips-and-tricks.de/de/webseiteninfos/20-historie/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28687</id>
		<title>Diskussion:Radiosender</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28687"/>
		<updated>2012-04-12T17:26:55Z</updated>

		<summary type="html">&lt;p&gt;Framp: Next und Bad button aufgenommen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bearbeitungshinweise ==&lt;br /&gt;
&lt;br /&gt;
Da diese Seite einen hohen Aufwand an ständiger Aktualisierung erfordert entstehen zur Zeit&lt;br /&gt;
Funktionen für das Importieren und Exportieren der Radiosenderdaten.&lt;br /&gt;
Diese Hilfsscripte sind auf eine stabile Struktur der Wikiseite angewiesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus diesem Grund sollten Änderungen an dieser Seite mit Vorsicht vorgenommen werden, vor allem&lt;br /&gt;
keine 2 Tabelle auf der Seite anlegen. Beachtet bei Änderungen unbedingt die weiter unten gegebenen Hinweise, nur so kann sicher gestellt werden, dass die hier vorgestellten Scripte bei allen Usern auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import und Exportfunktionen für die Tabelle ==&lt;br /&gt;
&lt;br /&gt;
=== Daten aus dem Wiki für Tabellenbearbeitung bereitstellen === &lt;br /&gt;
&lt;br /&gt;
Für den Export der Daten aus dem Wiki wurde folgendes Script entwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ist es möglich, die Daten der Tabelle für den Import in Tabellenkalkulationsprogramme direkt abzuholen.&lt;br /&gt;
Da es in der Zwischenzeit zwei Wikiseiten dafür gibt, kann mit einer Option eine einzelne Seite zum Download bestimmt werden. Ohne Option werden immer beide Seiten downgeloadet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Ausgabe der Daten im csv-Format zum Import in Tabellenverarbeitung&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; datei.csv&lt;br /&gt;
#&lt;br /&gt;
# Importeinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
 else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}'&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Exporthilfe aus Daten-Tabellen für Änderungen im Wiki === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgendes Script ist für den umgekehrten Weg gedacht, um mit Tabellenbearbeitung geänderte oder neu hinzugekommenen Daten hier in die Tabelle einzutragen.&lt;br /&gt;
Nach einiger Überlegung wurde darauf verzichtet, das Script so weit auszubauen, dass mit dem Script direkt von eurem Rechner aus die Datenänderungen im&lt;br /&gt;
Wiki vorgenommen werden. Das würde hier Tür und Tor für jeglichen Unfug viel zu weit aufreißen. ;-)&lt;br /&gt;
&lt;br /&gt;
Es bleibt euch also letztlich doch noch die Daten hier im Wiki auf die alt hergebrachte Weise zu editieren und zu erweitern.&lt;br /&gt;
Allerdings hilft euch das Script dabei. &amp;lt;br&amp;gt;&lt;br /&gt;
Es ist so konzipiert, das es das Datenformat, das das erste Script anlegt, und welches ihr mit Tabellenkalkulation oder Datenbank bearbeiten könnt und von dort aus auch genau so wieder abspeichern könnt,  in genau das Format umwandelt, das hier im Wiki im Bearbeitungsfenster eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
Es wird mit dem Script jeweils eine komplette Tabelle erzeugt. Ihr könnt daraus die jeweiligen Bereiche hier einfach hineinkopieren, bzw. ( '''aber bitte nur nach wirklich größeren Änderungen''' ) die gesamte Tabelle durch die neuen Daten austauschen, indem ihr im Editorfenster die alte Tabellendaten komplett löscht, und dafür die Ausgabe des Scriptes wieder hineinkopiert. Eine Aufteilung der Daten auf die beiden Wikiseiten ist derzeit noch nicht implemeniert, das muss vorläufig noch per Hand entschieden werden. Auf einer Seite sind maximal ca. 400 Tabelleneinträge mögliche, danach kommt eine Fehlermeldung bei Versuch die Wikiseite zu speichern. Einige Anmerkungen und Hinweise dazu folgen noch, hier erstmal das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script konvertiert eine CSV-Datei in das passende Wiki-Format&lt;br /&gt;
# als Hilfe zum Einfügen und Ändern der Daten auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender&lt;br /&gt;
# erzeugt wird die komplette Tabelle aus den übergebenen Daten&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script datei.csv &amp;gt; wiki-tabelle.dat&lt;br /&gt;
#&lt;br /&gt;
# Exporteinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if [ $# != 1 ]; then echo -e &amp;quot;\nAufruf: $0 datei.csv \n\n&amp;quot;;exit 1;fi&lt;br /&gt;
if [ -r &amp;quot;$1&amp;quot; -a -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
if [ &amp;quot;$(head -1 &amp;quot;$1&amp;quot; |cut -d';' -f5 |cut -d'&amp;quot;' -f2)&amp;quot; != &amp;quot;Hinweis&amp;quot; ]; then&lt;br /&gt;
  echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; scheint keine für dieses Script geeignete CSV-Datei zu sein\n\n&amp;quot;;exit 2;fi&lt;br /&gt;
else echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; ist keine lesbare Datei\n\n&amp;quot;; exit 3;fi&lt;br /&gt;
&lt;br /&gt;
awk -F';' '{ split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($2,STADT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($3,LAND,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($4,BIT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($5,BEMERK,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
     NR==1 { print &amp;quot;{| class=\&amp;quot;wikitable sortable\&amp;quot; border=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot; |- style=\&amp;quot;background-color:#009ACD;\&amp;quot;&amp;quot;&lt;br /&gt;
             printf &amp;quot; !&amp;quot; NAME[2] &amp;quot;!!&amp;quot; STADT[2] &amp;quot;!!&amp;quot; LAND[2] &amp;quot;!!&amp;quot; BIT[2] &amp;quot;!!&amp;quot;&lt;br /&gt;
             print &amp;quot; class=\&amp;quot;unsortable\&amp;quot;| &amp;quot; BEMERK[2] &amp;quot;!!class=\&amp;quot;unsortable\&amp;quot;|&amp;quot; ADDR[2] }&lt;br /&gt;
&lt;br /&gt;
     NR!=1 { FARBE= &amp;quot;#FFCC00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;lt; 63  )  FARBE= &amp;quot;#FFFF00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] == 0  )  FARBE= &amp;quot;#363636&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 93  )  FARBE= &amp;quot;#FF9900&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 128 )  FARBE= &amp;quot;#FF6600&amp;quot; ;&lt;br /&gt;
             print  &amp;quot;|- style=\&amp;quot;background-color:&amp;quot; FARBE &amp;quot;;\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot;|&amp;quot;,NAME[2],&amp;quot;||&amp;quot;,STADT[2],&amp;quot;||&amp;quot;,LAND[2],&amp;quot;||align=\&amp;quot;center\&amp;quot; |&amp;quot;,BIT[1],&amp;quot;||&amp;quot;,BEMERK[2],&amp;quot;||&amp;quot;,ADDR[2]  }&lt;br /&gt;
&lt;br /&gt;
       END { print &amp;quot;|}&amp;quot;      }' &amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erstellen einer Wiedergabeliste für kaffeine ===&lt;br /&gt;
&lt;br /&gt;
Folgendes Script erzeugt aus den Wikidaten eine Wiedergabeliste die direkt in kaffeine importiert werden kann.&lt;br /&gt;
Einfach das Script aufrufen und die Ausgabe in eine Datei zB &amp;quot;'''meine_liste.kaffeine'''&amp;quot; umleiten. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 2, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm kaffeine .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.kaffeine&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;&amp;lt;!DOCTYPE XMLPlaylist&amp;gt;\n&amp;lt;playlist client=\&amp;quot;kaffeine\&amp;quot; &amp;gt;&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               TYPE=&amp;quot;&amp;quot;;&lt;br /&gt;
               if (match($6,/.*\.mp3\&amp;quot;$/)) TYPE=&amp;quot;audio/x-mp3&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wma\&amp;quot;$/)) TYPE=&amp;quot;audio/x-ms-wma&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wmv\&amp;quot;$/)) TYPE=&amp;quot;video/x-ms-wmv&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.m3u\&amp;quot;$/)) TYPE=&amp;quot;audio/mpegurl&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ogg\&amp;quot;$/)) TYPE=&amp;quot;application/ogg&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ra\&amp;quot;$/))  TYPE=&amp;quot;audio/vnd.rn-realaudio&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\/\&amp;quot;$/))    TYPE=&amp;quot;inode/directory&amp;quot; ;&lt;br /&gt;
               if (TYPE==&amp;quot;&amp;quot;) TYPE=&amp;quot;application/octet-stream&amp;quot; ;&lt;br /&gt;
               print &amp;quot; &amp;lt;entry title=&amp;quot; $1, &amp;quot;mime=\&amp;quot;&amp;quot; TYPE &amp;quot;\&amp;quot; url=&amp;quot; $6, &amp;quot;/&amp;gt;&amp;quot;}&lt;br /&gt;
             END  {print &amp;quot;&amp;lt;/playlist&amp;gt;&amp;quot;} '&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise für das Ändern der Datentabelle ==&lt;br /&gt;
&lt;br /&gt;
* bei Verwendung der obrigen Scripte bitte darauf achten, dass ihr keine &amp;quot;falschen zusätzlichen Zeilenspünge mitkopiert. Das passiert z.B. wenn man die Standardausgabe des 2. Scriptes hier her kopieren würdet. Also die Ausgabe des Scriptes in eine Datei umleiten, diese Datei mit '''cat''' ausgeben und dann diese Konsolausgabe der Datei hier für die Änderungen im Wiki benutzen, dann sollte das Problem nicht auftreten.&lt;br /&gt;
&lt;br /&gt;
* Bitte nach Änderungen im Wiki die Vorschau benutzen und bitte genau überprüfen ob die Tabelle und eure neuen Daten auch wirklich ok sind, und wirklich nur dann abspeichern.&lt;br /&gt;
&lt;br /&gt;
* Eine Datenzeile der Wikitabelle umfasst immer genau 2 zusammengehörende Zeilen beim Editieren der Tabelle:&lt;br /&gt;
 |- style=&amp;quot;background-color:#FFFF00;&amp;quot;&lt;br /&gt;
 | Bayern 1 || München || Deutschland ||align=&amp;quot;center&amp;quot; | 48 || - || mms://gffstream-w1b.wm.llnwd.net/gffstream_w1b&lt;br /&gt;
: In der ersten Zeile wird die Hintergrundfarbe gesetzt, das macht das obrige Script automatisch, in der 2. Zeile stehen dann die Daten.&lt;br /&gt;
&lt;br /&gt;
* Sollte ein Sender einmal nicht mehr senden, und keine neue Streamadresse bekannt sein, ist vorgesehen bei der Datenrate eine '''0'''  (Null) einzutragen, und bei der Farbe dazu den Wert &amp;quot;'''#363636'''&amp;quot; . Damit wird die entsprechende Zeile dunkelgrau  und so als z.Z. nicht verfügbar markiert. Erfahrungsgemäß können Sender wegen technischen Problemen über Stunden oder vor allem am Wochenende auch etwas länger offline sein. Bitte die Markierung erst durchführen wenn die Sender über mehrere Tage nicht verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
* Vermeidet in der Tabelle Sonderzeichen. Es ist bekannt das  '''&amp;quot;;&amp;quot;''' in der URL und '''&amp;quot;&amp;amp;&amp;quot;''' und '''&amp;quot;%&amp;quot;''' im Sendernamen Probleme beim Ex- und Import der Daten mit obrigen Scripten bzw bei Import in kaffeine erzeugen. &lt;br /&gt;
&lt;br /&gt;
* Achtet darauf, dass bei einer Adresse wie zum Beispiel http://mp3.ht-stream.net/;04026677086949stream.nsv die temporäre Ergänzung der Stream-Adresse weggelassen wird. Das Beispiel ist also einzutragen als http://mp3.ht-stream.net/ &lt;br /&gt;
&lt;br /&gt;
* Bitte in die Felder der Tabelle (außer der Adresse natürlich) keine Links oder Webadressen eintragen, sondern nur Text.&lt;br /&gt;
&lt;br /&gt;
* Haltet euch an das Tabellenformat, sollten Änderungen am Format notwendig werden, dann können wird darüber gerne diskutieren, und dann können gegebenenfalls auch parallel dazu dann die Scripte an das neue Format angepasst werden.&lt;br /&gt;
&lt;br /&gt;
* Fällt euch auf, das einzelnen Sender nicht mehr senden und ihr euch nicht an die Tabelle traut, dann könnt ihr das auch gerne hier im Anschluss auf der Diskussionseite melden, damit der Nächste das prüfen und gegebenenfalls dann abändern kann. &lt;br /&gt;
&lt;br /&gt;
* Sollte es dennoch Editierunfälle, Probleme, Unklarheiten, Verständnissprobleme oder sonstige irgendwie gearteter Probleme mit dieser Wikiseite geben, bitte im Wikiforum melden, da wird man euch schnellstmöglich helfen.&lt;br /&gt;
&lt;br /&gt;
* Denkt daran: einige haben in diese Seite eine ganze Menge Zeit investiert, und davon sollen auch morgen noch möglichst viele Wikileser ihren Nutzen ziehen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann allseits guten Radioempfang [[Benutzer:Robi|Robi]] 22:01, 5. Dez. 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Neuer Sender ==&lt;br /&gt;
Ich trau' mich nach all diesen Hinweisen nicht ...&lt;br /&gt;
* Radio Okerwelle (Lokalsender Braunschweig) http://www.okerwelle.de/typo/ Stream von &amp;lt;http://radiostream.de/stream/35575.m3u&amp;gt; / &amp;lt;http://dus.radiostream.de:35575&amp;gt; -- [[Benutzer:RainerBi|RainerBi]] 10:13, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Danke für die Empfehlung, ich dachte schon weil bisher so wenig Fragen und Rückmeldungen gekommen sind, die Seite ist noch nirgens so richtig angekommen. ;-) &amp;lt;br&amp;gt;&lt;br /&gt;
:: [[Benutzer:Albschrat|Albschrat]] wird den Sender sicherlich bei seiner nächsten Aktualisierung mit einpflegen.  [[Benutzer:Robi|Robi]] 17:08, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Nur Sprache ==&lt;br /&gt;
&lt;br /&gt;
Anregung:  Eine Seite die nur streaming links to SPRACHE (Speech, talk) sendern hat.&lt;br /&gt;
Planet Chomsky:&lt;br /&gt;
 http://Hee-La.serverroom.us:4048/&lt;br /&gt;
BBC World Propaganda&lt;br /&gt;
 mms://livewmstream-ws.bbc.co.uk.edgestreams.net/reflector:43021&lt;br /&gt;
&lt;br /&gt;
Viele alte Leute koennen Nachts nicht schlafen, und wollen keine musik.&lt;br /&gt;
Waere schoen, wenn man speech-only Sender separat haette. English und Deutsch gemischt, kein problem, denn wer Radio &amp;quot;zum Denken&amp;quot; hoert kann beides.&lt;br /&gt;
&lt;br /&gt;
:: Besten Dank für die Anregung.&lt;br /&gt;
:: Solange wir nur 5 Sender mit reiner Sprache haben, sind diese als Soforthilfe in der Tabelle mit »Nur Sprache - keine Musik« markiert. [[Benutzer:Albschrat|Albschrat]] 20:38, 1. Juni 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geänderte Sender ==&lt;br /&gt;
&lt;br /&gt;
Ich möchte auch nichts falsch, aber doch auf eine Änderung aufmerksam machen,finde ich doch diesen Artikel besonders wertvoll:&lt;br /&gt;
&lt;br /&gt;
Neue '''NDR'''-Streams &amp;quot;ndrstream.ic.llnwd.net/ usw.&amp;quot;, die sich vor wenigen Tagen geändert haben, sollten von erfahreneren Benutzern hier &lt;br /&gt;
eingepflegt werden:&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1niedersachsen_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1wellenord_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1radiomv_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr903_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr2_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_spezial_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Strumpell|Strumpell]] 06:55, 17. Okt. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Besten Dank für den Hinweis und Deine Unterstützung! Die Sender sind in der aktuellen Tabelle enthalten. [[Benutzer:albschrat|albschrat]] 16:32, 5. Dez. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Farben?==&lt;br /&gt;
was bedeuten die und warum steht nichts darüber im Artikel? --[[Benutzer:Itu|Itu]] 21:12, 17. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Die Farben sind abhängig vom der Bitrate des Senders und somit ein Synonym für die Qualität dieses Radiosenders, vorausgesetzt man kann auch die entsprechende Datenmenge wirklich über das Internet störungsfrei ziehen. Die Gelben Felder sind somit niedrige Qualität die entsprechende dem Rotanteil der Farbe schrittweise zunimmt. Graue Felder sind für Sender gedacht die seit einiger Zeit oder vorübergehend offline sind.&lt;br /&gt;
&lt;br /&gt;
:: Wenn ich mich nicht ganz täusche hatte ich die Auswahl der Farbe damals in das Script fest eingebaut mit dem Albschrat hoffentlich noch regelmäßig diese beiden Wiki Seite wartet. Sie werden somit automatisch entsprechende der Bitrate gesetzt wenn Albschrat das nächste mal wieder seine Datenbank und das Wiki mit Hilfe der Scripte aktualsisiert.&lt;br /&gt;
[[Benutzer:Robi|Robi]] 12:31, 18. Sep. 2011 (UTC)&lt;br /&gt;
:::Müsste man dann noch in den Artikel schreiben. --[[Benutzer:Itu|Itu]] 15:20, 18. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== WDR Streamadressen ==&lt;br /&gt;
http://webradio.wdr.de : der WDR hat eine Seite mit den Adressen aller seiner Streams. --[[Benutzer:Wikinaut|Wikinaut]] 09:27, 20. Nov. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div style=&amp;quot;font-size:30px; color: #f00&amp;quot; &amp;gt;Betreuung der Senderliste gesucht &amp;lt;/div&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Wegen eines nebenberuflichen Studiums bin ich seit geraumer Zeit vollkommen »Land unter«. Der Zustand wird sich absehbar in den nächsten 3 Jahren nicht ändern. Deshalb muss ich die Betreuung der Seite abgeben. Für Tipps stehe ich natürlich jederzeit gerne zur Verfügung. [[Benutzer:albschrat|albschrat]] 10:31, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ich habs mal mit ins Forum übernommen, dort wird das eventuell eht gelesen [[Benutzer:Robi|Robi]] 13:38, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen ==&lt;br /&gt;
&lt;br /&gt;
Das Tool geht jede URL der List durch und konnected und spielt den Stream für 10 Sekunden ab. Damit kann man relative leicht prüfen, ob die Streams noch verfügbar sind. Bei den ca 500 URLs dauert das ca 90 Minuten.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: robis Script um die URLs und Beschreibungen aus der WikiSeite zu extrahieren&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: TEST-SCRIPT,  -ungetestet-&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm Amarok .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.m3u&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;#EXTM3U&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               print &amp;quot;#EXTINF:0,&amp;quot; NAME[2]&lt;br /&gt;
               print ADDR[2]}'&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das tool ist ein Pythonscript und hat folgenden Abhänigkeiten: wxpython und python-gstreamer. Diese müssen vor Ausführunge installiert sein. Sie sind auf den meisten Distros verfügbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import gst&lt;br /&gt;
import wx&lt;br /&gt;
import time&lt;br /&gt;
import re&lt;br /&gt;
import subprocess&lt;br /&gt;
&lt;br /&gt;
# Source from http://nitric.co.za/blog-posts/listen.py-little-script-to-stream-internet-radio-for-an-hour-and-then-stop&lt;br /&gt;
# and modified and adapted by framp@linux-tips-and-tricks.de to speed up checking of validity of radio frequencies&lt;br /&gt;
# posted on http://www.linupedia.org/opensuse/Radiosender  &lt;br /&gt;
&lt;br /&gt;
player = gst.element_factory_make(&amp;quot;playbin&amp;quot;, &amp;quot;player&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
class mainwin(wx.Frame):&lt;br /&gt;
    playfor=10&lt;br /&gt;
    s=playfor&lt;br /&gt;
    &lt;br /&gt;
    def __init__(self, fileName, parent=None):&lt;br /&gt;
        super(mainwin,self).__init__(parent, wx.ID_ANY, title='Listen to the LinuxClub RadioList')&lt;br /&gt;
&lt;br /&gt;
        self.streams=[]&lt;br /&gt;
        self.selectedStream=0&lt;br /&gt;
        self.fileName=fileName        &lt;br /&gt;
&lt;br /&gt;
        radioFile=open(fileName,'r')&lt;br /&gt;
        title=None&lt;br /&gt;
        for line in radioFile:&lt;br /&gt;
            if title:&lt;br /&gt;
                self.streams.append((title,line))&lt;br /&gt;
                title=None&lt;br /&gt;
            # #EXTINF:0,Women Rock Radio&lt;br /&gt;
            m=re.match(&amp;quot;^#EXTINF.*,(.*)&amp;quot;,line)&lt;br /&gt;
            if m:&lt;br /&gt;
                title=m.group(1)              &lt;br /&gt;
                &lt;br /&gt;
        panel = wx.Panel(self, wx.ID_ANY)&lt;br /&gt;
        sizer = wx.BoxSizer(wx.VERTICAL)&lt;br /&gt;
        self.button = wx.Button(panel, wx.ID_ANY, 'Start')&lt;br /&gt;
        self.button3 = wx.Button(panel, wx.ID_ANY, 'Next')&lt;br /&gt;
        self.button2 = wx.Button(panel, wx.ID_ANY, 'Bad')&lt;br /&gt;
        self.cb = wx.ComboBox(panel, choices=[s[0] for s in self.streams],style=wx.CB_DROPDOWN|wx.CB_READONLY,value=self.streams[0][0])&lt;br /&gt;
        &lt;br /&gt;
        self.timer = wx.Timer(self)&lt;br /&gt;
        self.Bind(wx.EVT_TIMER, self.update, self.timer)&lt;br /&gt;
        &lt;br /&gt;
        self.label = wx.StaticText(panel)&lt;br /&gt;
            &lt;br /&gt;
        panel.SetSizer(sizer)&lt;br /&gt;
        sizer.Add(self.cb)&lt;br /&gt;
        sizer.Add(self.button)&lt;br /&gt;
        sizer.Add(self.button3)&lt;br /&gt;
        sizer.Add(self.button2)&lt;br /&gt;
        sizer.Add(self.label)&lt;br /&gt;
        &lt;br /&gt;
        self.Bind(wx.EVT_BUTTON, self.toggle, self.button)&lt;br /&gt;
        self.Bind(wx.EVT_BUTTON, self.toggle2, self.button2)&lt;br /&gt;
        self.Bind(wx.EVT_BUTTON, self.toggle3, self.button3)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    def toggle(self, evt=None):      &lt;br /&gt;
        label = self.button.GetLabel()&lt;br /&gt;
        station = self.cb.GetValue()&lt;br /&gt;
        self.selectedStream=0&lt;br /&gt;
        if label=='Start':&lt;br /&gt;
            for s, uri in self.streams:&lt;br /&gt;
                if station==s:&lt;br /&gt;
                    player.set_property('uri', uri)&lt;br /&gt;
                    break&lt;br /&gt;
                self.selectedStream+=1&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        elif label=='Stop':&lt;br /&gt;
            self.s=1&lt;br /&gt;
            self.update()&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            self.button.SetLabel('Start')&lt;br /&gt;
            self.timer.Stop()&lt;br /&gt;
            self.s=self.playfor&lt;br /&gt;
            self.label.SetLabel('')&lt;br /&gt;
&lt;br /&gt;
    def toggle3(self, evt=None):      &lt;br /&gt;
        self.s=1&lt;br /&gt;
        self.update()&lt;br /&gt;
    &lt;br /&gt;
    def toggle2(self, evt=None):      &lt;br /&gt;
        label = self.button2.GetLabel()&lt;br /&gt;
&lt;br /&gt;
        if label=='Bad':&lt;br /&gt;
            badFile=open(self.fileName+'.bad','a+')&lt;br /&gt;
            (s, uri) = self.streams[self.selectedStream]&lt;br /&gt;
            badFile.write(&amp;quot;Stream %s: %s&amp;quot; %(s,uri))&lt;br /&gt;
            badFile.close()&lt;br /&gt;
    &lt;br /&gt;
    def update(self, evt=None):&lt;br /&gt;
        self.s -= 1&lt;br /&gt;
        if self.s &amp;lt;= 0:&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            &lt;br /&gt;
            self.s=self.playfor&lt;br /&gt;
            self.selectedStream +=1&lt;br /&gt;
            (s, uri) = self.streams[self.selectedStream]&lt;br /&gt;
            self.cb.SetValue(s)&lt;br /&gt;
            player.set_property('uri', uri)&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        else:&lt;br /&gt;
            mins = self.s / 60&lt;br /&gt;
            secs = self.s % 60&lt;br /&gt;
            self.label.SetLabel(&amp;quot;%02d:%02d&amp;quot; % (mins,secs))&lt;br /&gt;
            &lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    app = wx.PySimpleApp()&lt;br /&gt;
    win = mainwin('./lcRadio.lst')&lt;br /&gt;
    win.Show()&lt;br /&gt;
    app.MainLoop()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausführung: Download von robis Script und Aufruf und Redirection in lcRadio.lst. Danach Aufruf von RadioStreamer. Danach kann man den StartKanel wählen und alle Streams durchhören.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28679</id>
		<title>Diskussion:Radiosender</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28679"/>
		<updated>2012-04-12T07:31:54Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bearbeitungshinweise ==&lt;br /&gt;
&lt;br /&gt;
Da diese Seite einen hohen Aufwand an ständiger Aktualisierung erfordert entstehen zur Zeit&lt;br /&gt;
Funktionen für das Importieren und Exportieren der Radiosenderdaten.&lt;br /&gt;
Diese Hilfsscripte sind auf eine stabile Struktur der Wikiseite angewiesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus diesem Grund sollten Änderungen an dieser Seite mit Vorsicht vorgenommen werden, vor allem&lt;br /&gt;
keine 2 Tabelle auf der Seite anlegen. Beachtet bei Änderungen unbedingt die weiter unten gegebenen Hinweise, nur so kann sicher gestellt werden, dass die hier vorgestellten Scripte bei allen Usern auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import und Exportfunktionen für die Tabelle ==&lt;br /&gt;
&lt;br /&gt;
=== Daten aus dem Wiki für Tabellenbearbeitung bereitstellen === &lt;br /&gt;
&lt;br /&gt;
Für den Export der Daten aus dem Wiki wurde folgendes Script entwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ist es möglich, die Daten der Tabelle für den Import in Tabellenkalkulationsprogramme direkt abzuholen.&lt;br /&gt;
Da es in der Zwischenzeit zwei Wikiseiten dafür gibt, kann mit einer Option eine einzelne Seite zum Download bestimmt werden. Ohne Option werden immer beide Seiten downgeloadet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Ausgabe der Daten im csv-Format zum Import in Tabellenverarbeitung&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; datei.csv&lt;br /&gt;
#&lt;br /&gt;
# Importeinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
 else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}'&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Exporthilfe aus Daten-Tabellen für Änderungen im Wiki === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgendes Script ist für den umgekehrten Weg gedacht, um mit Tabellenbearbeitung geänderte oder neu hinzugekommenen Daten hier in die Tabelle einzutragen.&lt;br /&gt;
Nach einiger Überlegung wurde darauf verzichtet, das Script so weit auszubauen, dass mit dem Script direkt von eurem Rechner aus die Datenänderungen im&lt;br /&gt;
Wiki vorgenommen werden. Das würde hier Tür und Tor für jeglichen Unfug viel zu weit aufreißen. ;-)&lt;br /&gt;
&lt;br /&gt;
Es bleibt euch also letztlich doch noch die Daten hier im Wiki auf die alt hergebrachte Weise zu editieren und zu erweitern.&lt;br /&gt;
Allerdings hilft euch das Script dabei. &amp;lt;br&amp;gt;&lt;br /&gt;
Es ist so konzipiert, das es das Datenformat, das das erste Script anlegt, und welches ihr mit Tabellenkalkulation oder Datenbank bearbeiten könnt und von dort aus auch genau so wieder abspeichern könnt,  in genau das Format umwandelt, das hier im Wiki im Bearbeitungsfenster eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
Es wird mit dem Script jeweils eine komplette Tabelle erzeugt. Ihr könnt daraus die jeweiligen Bereiche hier einfach hineinkopieren, bzw. ( '''aber bitte nur nach wirklich größeren Änderungen''' ) die gesamte Tabelle durch die neuen Daten austauschen, indem ihr im Editorfenster die alte Tabellendaten komplett löscht, und dafür die Ausgabe des Scriptes wieder hineinkopiert. Eine Aufteilung der Daten auf die beiden Wikiseiten ist derzeit noch nicht implemeniert, das muss vorläufig noch per Hand entschieden werden. Auf einer Seite sind maximal ca. 400 Tabelleneinträge mögliche, danach kommt eine Fehlermeldung bei Versuch die Wikiseite zu speichern. Einige Anmerkungen und Hinweise dazu folgen noch, hier erstmal das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script konvertiert eine CSV-Datei in das passende Wiki-Format&lt;br /&gt;
# als Hilfe zum Einfügen und Ändern der Daten auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender&lt;br /&gt;
# erzeugt wird die komplette Tabelle aus den übergebenen Daten&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script datei.csv &amp;gt; wiki-tabelle.dat&lt;br /&gt;
#&lt;br /&gt;
# Exporteinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if [ $# != 1 ]; then echo -e &amp;quot;\nAufruf: $0 datei.csv \n\n&amp;quot;;exit 1;fi&lt;br /&gt;
if [ -r &amp;quot;$1&amp;quot; -a -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
if [ &amp;quot;$(head -1 &amp;quot;$1&amp;quot; |cut -d';' -f5 |cut -d'&amp;quot;' -f2)&amp;quot; != &amp;quot;Hinweis&amp;quot; ]; then&lt;br /&gt;
  echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; scheint keine für dieses Script geeignete CSV-Datei zu sein\n\n&amp;quot;;exit 2;fi&lt;br /&gt;
else echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; ist keine lesbare Datei\n\n&amp;quot;; exit 3;fi&lt;br /&gt;
&lt;br /&gt;
awk -F';' '{ split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($2,STADT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($3,LAND,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($4,BIT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($5,BEMERK,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
     NR==1 { print &amp;quot;{| class=\&amp;quot;wikitable sortable\&amp;quot; border=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot; |- style=\&amp;quot;background-color:#009ACD;\&amp;quot;&amp;quot;&lt;br /&gt;
             printf &amp;quot; !&amp;quot; NAME[2] &amp;quot;!!&amp;quot; STADT[2] &amp;quot;!!&amp;quot; LAND[2] &amp;quot;!!&amp;quot; BIT[2] &amp;quot;!!&amp;quot;&lt;br /&gt;
             print &amp;quot; class=\&amp;quot;unsortable\&amp;quot;| &amp;quot; BEMERK[2] &amp;quot;!!class=\&amp;quot;unsortable\&amp;quot;|&amp;quot; ADDR[2] }&lt;br /&gt;
&lt;br /&gt;
     NR!=1 { FARBE= &amp;quot;#FFCC00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;lt; 63  )  FARBE= &amp;quot;#FFFF00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] == 0  )  FARBE= &amp;quot;#363636&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 93  )  FARBE= &amp;quot;#FF9900&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 128 )  FARBE= &amp;quot;#FF6600&amp;quot; ;&lt;br /&gt;
             print  &amp;quot;|- style=\&amp;quot;background-color:&amp;quot; FARBE &amp;quot;;\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot;|&amp;quot;,NAME[2],&amp;quot;||&amp;quot;,STADT[2],&amp;quot;||&amp;quot;,LAND[2],&amp;quot;||align=\&amp;quot;center\&amp;quot; |&amp;quot;,BIT[1],&amp;quot;||&amp;quot;,BEMERK[2],&amp;quot;||&amp;quot;,ADDR[2]  }&lt;br /&gt;
&lt;br /&gt;
       END { print &amp;quot;|}&amp;quot;      }' &amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erstellen einer Wiedergabeliste für kaffeine ===&lt;br /&gt;
&lt;br /&gt;
Folgendes Script erzeugt aus den Wikidaten eine Wiedergabeliste die direkt in kaffeine importiert werden kann.&lt;br /&gt;
Einfach das Script aufrufen und die Ausgabe in eine Datei zB &amp;quot;'''meine_liste.kaffeine'''&amp;quot; umleiten. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 2, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm kaffeine .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.kaffeine&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;&amp;lt;!DOCTYPE XMLPlaylist&amp;gt;\n&amp;lt;playlist client=\&amp;quot;kaffeine\&amp;quot; &amp;gt;&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               TYPE=&amp;quot;&amp;quot;;&lt;br /&gt;
               if (match($6,/.*\.mp3\&amp;quot;$/)) TYPE=&amp;quot;audio/x-mp3&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wma\&amp;quot;$/)) TYPE=&amp;quot;audio/x-ms-wma&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wmv\&amp;quot;$/)) TYPE=&amp;quot;video/x-ms-wmv&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.m3u\&amp;quot;$/)) TYPE=&amp;quot;audio/mpegurl&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ogg\&amp;quot;$/)) TYPE=&amp;quot;application/ogg&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ra\&amp;quot;$/))  TYPE=&amp;quot;audio/vnd.rn-realaudio&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\/\&amp;quot;$/))    TYPE=&amp;quot;inode/directory&amp;quot; ;&lt;br /&gt;
               if (TYPE==&amp;quot;&amp;quot;) TYPE=&amp;quot;application/octet-stream&amp;quot; ;&lt;br /&gt;
               print &amp;quot; &amp;lt;entry title=&amp;quot; $1, &amp;quot;mime=\&amp;quot;&amp;quot; TYPE &amp;quot;\&amp;quot; url=&amp;quot; $6, &amp;quot;/&amp;gt;&amp;quot;}&lt;br /&gt;
             END  {print &amp;quot;&amp;lt;/playlist&amp;gt;&amp;quot;} '&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise für das Ändern der Datentabelle ==&lt;br /&gt;
&lt;br /&gt;
* bei Verwendung der obrigen Scripte bitte darauf achten, dass ihr keine &amp;quot;falschen zusätzlichen Zeilenspünge mitkopiert. Das passiert z.B. wenn man die Standardausgabe des 2. Scriptes hier her kopieren würdet. Also die Ausgabe des Scriptes in eine Datei umleiten, diese Datei mit '''cat''' ausgeben und dann diese Konsolausgabe der Datei hier für die Änderungen im Wiki benutzen, dann sollte das Problem nicht auftreten.&lt;br /&gt;
&lt;br /&gt;
* Bitte nach Änderungen im Wiki die Vorschau benutzen und bitte genau überprüfen ob die Tabelle und eure neuen Daten auch wirklich ok sind, und wirklich nur dann abspeichern.&lt;br /&gt;
&lt;br /&gt;
* Eine Datenzeile der Wikitabelle umfasst immer genau 2 zusammengehörende Zeilen beim Editieren der Tabelle:&lt;br /&gt;
 |- style=&amp;quot;background-color:#FFFF00;&amp;quot;&lt;br /&gt;
 | Bayern 1 || München || Deutschland ||align=&amp;quot;center&amp;quot; | 48 || - || mms://gffstream-w1b.wm.llnwd.net/gffstream_w1b&lt;br /&gt;
: In der ersten Zeile wird die Hintergrundfarbe gesetzt, das macht das obrige Script automatisch, in der 2. Zeile stehen dann die Daten.&lt;br /&gt;
&lt;br /&gt;
* Sollte ein Sender einmal nicht mehr senden, und keine neue Streamadresse bekannt sein, ist vorgesehen bei der Datenrate eine '''0'''  (Null) einzutragen, und bei der Farbe dazu den Wert &amp;quot;'''#363636'''&amp;quot; . Damit wird die entsprechende Zeile dunkelgrau  und so als z.Z. nicht verfügbar markiert. Erfahrungsgemäß können Sender wegen technischen Problemen über Stunden oder vor allem am Wochenende auch etwas länger offline sein. Bitte die Markierung erst durchführen wenn die Sender über mehrere Tage nicht verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
* Vermeidet in der Tabelle Sonderzeichen. Es ist bekannt das  '''&amp;quot;;&amp;quot;''' in der URL und '''&amp;quot;&amp;amp;&amp;quot;''' und '''&amp;quot;%&amp;quot;''' im Sendernamen Probleme beim Ex- und Import der Daten mit obrigen Scripten bzw bei Import in kaffeine erzeugen. &lt;br /&gt;
&lt;br /&gt;
* Achtet darauf, dass bei einer Adresse wie zum Beispiel http://mp3.ht-stream.net/;04026677086949stream.nsv die temporäre Ergänzung der Stream-Adresse weggelassen wird. Das Beispiel ist also einzutragen als http://mp3.ht-stream.net/ &lt;br /&gt;
&lt;br /&gt;
* Bitte in die Felder der Tabelle (außer der Adresse natürlich) keine Links oder Webadressen eintragen, sondern nur Text.&lt;br /&gt;
&lt;br /&gt;
* Haltet euch an das Tabellenformat, sollten Änderungen am Format notwendig werden, dann können wird darüber gerne diskutieren, und dann können gegebenenfalls auch parallel dazu dann die Scripte an das neue Format angepasst werden.&lt;br /&gt;
&lt;br /&gt;
* Fällt euch auf, das einzelnen Sender nicht mehr senden und ihr euch nicht an die Tabelle traut, dann könnt ihr das auch gerne hier im Anschluss auf der Diskussionseite melden, damit der Nächste das prüfen und gegebenenfalls dann abändern kann. &lt;br /&gt;
&lt;br /&gt;
* Sollte es dennoch Editierunfälle, Probleme, Unklarheiten, Verständnissprobleme oder sonstige irgendwie gearteter Probleme mit dieser Wikiseite geben, bitte im Wikiforum melden, da wird man euch schnellstmöglich helfen.&lt;br /&gt;
&lt;br /&gt;
* Denkt daran: einige haben in diese Seite eine ganze Menge Zeit investiert, und davon sollen auch morgen noch möglichst viele Wikileser ihren Nutzen ziehen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann allseits guten Radioempfang [[Benutzer:Robi|Robi]] 22:01, 5. Dez. 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Neuer Sender ==&lt;br /&gt;
Ich trau' mich nach all diesen Hinweisen nicht ...&lt;br /&gt;
* Radio Okerwelle (Lokalsender Braunschweig) http://www.okerwelle.de/typo/ Stream von &amp;lt;http://radiostream.de/stream/35575.m3u&amp;gt; / &amp;lt;http://dus.radiostream.de:35575&amp;gt; -- [[Benutzer:RainerBi|RainerBi]] 10:13, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Danke für die Empfehlung, ich dachte schon weil bisher so wenig Fragen und Rückmeldungen gekommen sind, die Seite ist noch nirgens so richtig angekommen. ;-) &amp;lt;br&amp;gt;&lt;br /&gt;
:: [[Benutzer:Albschrat|Albschrat]] wird den Sender sicherlich bei seiner nächsten Aktualisierung mit einpflegen.  [[Benutzer:Robi|Robi]] 17:08, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Nur Sprache ==&lt;br /&gt;
&lt;br /&gt;
Anregung:  Eine Seite die nur streaming links to SPRACHE (Speech, talk) sendern hat.&lt;br /&gt;
Planet Chomsky:&lt;br /&gt;
 http://Hee-La.serverroom.us:4048/&lt;br /&gt;
BBC World Propaganda&lt;br /&gt;
 mms://livewmstream-ws.bbc.co.uk.edgestreams.net/reflector:43021&lt;br /&gt;
&lt;br /&gt;
Viele alte Leute koennen Nachts nicht schlafen, und wollen keine musik.&lt;br /&gt;
Waere schoen, wenn man speech-only Sender separat haette. English und Deutsch gemischt, kein problem, denn wer Radio &amp;quot;zum Denken&amp;quot; hoert kann beides.&lt;br /&gt;
&lt;br /&gt;
:: Besten Dank für die Anregung.&lt;br /&gt;
:: Solange wir nur 5 Sender mit reiner Sprache haben, sind diese als Soforthilfe in der Tabelle mit »Nur Sprache - keine Musik« markiert. [[Benutzer:Albschrat|Albschrat]] 20:38, 1. Juni 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geänderte Sender ==&lt;br /&gt;
&lt;br /&gt;
Ich möchte auch nichts falsch, aber doch auf eine Änderung aufmerksam machen,finde ich doch diesen Artikel besonders wertvoll:&lt;br /&gt;
&lt;br /&gt;
Neue '''NDR'''-Streams &amp;quot;ndrstream.ic.llnwd.net/ usw.&amp;quot;, die sich vor wenigen Tagen geändert haben, sollten von erfahreneren Benutzern hier &lt;br /&gt;
eingepflegt werden:&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1niedersachsen_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1wellenord_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1radiomv_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr903_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr2_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_spezial_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Strumpell|Strumpell]] 06:55, 17. Okt. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Besten Dank für den Hinweis und Deine Unterstützung! Die Sender sind in der aktuellen Tabelle enthalten. [[Benutzer:albschrat|albschrat]] 16:32, 5. Dez. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Farben?==&lt;br /&gt;
was bedeuten die und warum steht nichts darüber im Artikel? --[[Benutzer:Itu|Itu]] 21:12, 17. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Die Farben sind abhängig vom der Bitrate des Senders und somit ein Synonym für die Qualität dieses Radiosenders, vorausgesetzt man kann auch die entsprechende Datenmenge wirklich über das Internet störungsfrei ziehen. Die Gelben Felder sind somit niedrige Qualität die entsprechende dem Rotanteil der Farbe schrittweise zunimmt. Graue Felder sind für Sender gedacht die seit einiger Zeit oder vorübergehend offline sind.&lt;br /&gt;
&lt;br /&gt;
:: Wenn ich mich nicht ganz täusche hatte ich die Auswahl der Farbe damals in das Script fest eingebaut mit dem Albschrat hoffentlich noch regelmäßig diese beiden Wiki Seite wartet. Sie werden somit automatisch entsprechende der Bitrate gesetzt wenn Albschrat das nächste mal wieder seine Datenbank und das Wiki mit Hilfe der Scripte aktualsisiert.&lt;br /&gt;
[[Benutzer:Robi|Robi]] 12:31, 18. Sep. 2011 (UTC)&lt;br /&gt;
:::Müsste man dann noch in den Artikel schreiben. --[[Benutzer:Itu|Itu]] 15:20, 18. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== WDR Streamadressen ==&lt;br /&gt;
http://webradio.wdr.de : der WDR hat eine Seite mit den Adressen aller seiner Streams. --[[Benutzer:Wikinaut|Wikinaut]] 09:27, 20. Nov. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div style=&amp;quot;font-size:30px; color: #f00&amp;quot; &amp;gt;Betreuung der Senderliste gesucht &amp;lt;/div&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Wegen eines nebenberuflichen Studiums bin ich seit geraumer Zeit vollkommen »Land unter«. Der Zustand wird sich absehbar in den nächsten 3 Jahren nicht ändern. Deshalb muss ich die Betreuung der Seite abgeben. Für Tipps stehe ich natürlich jederzeit gerne zur Verfügung. [[Benutzer:albschrat|albschrat]] 10:31, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ich habs mal mit ins Forum übernommen, dort wird das eventuell eht gelesen [[Benutzer:Robi|Robi]] 13:38, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen ==&lt;br /&gt;
&lt;br /&gt;
Das Tool geht jede URL der List durch und konnected und spielt den Stream für 10 Sekunden ab. Damit kann man relative leicht prüfen, ob die Streams noch verfügbar sind. Bei den ca 500 URLs dauert das ca 90 Minuten.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: robis Script um die URLs und Beschreibungen aus der WikiSeite zu extrahieren&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: TEST-SCRIPT,  -ungetestet-&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm Amarok .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.m3u&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;#EXTM3U&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               print &amp;quot;#EXTINF:0,&amp;quot; NAME[2]&lt;br /&gt;
               print ADDR[2]}'&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das tool ist ein Pythonscript und hat folgenden Abhänigkeiten: wxpython und python-gstreamer. Diese müssen vor Ausführunge installiert sein. Sie sind auf den meisten Distros verfügbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import gst&lt;br /&gt;
import wx&lt;br /&gt;
import time&lt;br /&gt;
import re&lt;br /&gt;
import subprocess&lt;br /&gt;
&lt;br /&gt;
# Source from http://nitric.co.za/blog-posts/listen.py-little-script-to-stream-internet-radio-for-an-hour-and-then-stop&lt;br /&gt;
# and modified and adapted by framp at linux-tips-and-tricks dot de to speed up check of validity of radio stream list&lt;br /&gt;
# available on http://www.linupedia.org/opensuse/Radiosender  &lt;br /&gt;
&lt;br /&gt;
player = gst.element_factory_make(&amp;quot;playbin&amp;quot;, &amp;quot;player&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
class mainwin(wx.Frame):&lt;br /&gt;
    playfor=10&lt;br /&gt;
    s=playfor&lt;br /&gt;
    &lt;br /&gt;
    def __init__(self, fileName, parent=None):&lt;br /&gt;
        super(mainwin,self).__init__(parent, wx.ID_ANY, title='Listen to the LinuxClub RadioList')&lt;br /&gt;
&lt;br /&gt;
        self.streams=[]        &lt;br /&gt;
&lt;br /&gt;
        radioFile=open(fileName,'r')&lt;br /&gt;
        title=None&lt;br /&gt;
        for line in radioFile:&lt;br /&gt;
            if title:&lt;br /&gt;
                self.streams.append((title,line))&lt;br /&gt;
                title=None&lt;br /&gt;
            # #EXTINF:0,Women Rock Radio&lt;br /&gt;
            m=re.match(&amp;quot;^#EXTINF.*,(.*)&amp;quot;,line)&lt;br /&gt;
            if m:&lt;br /&gt;
                title=m.group(1)              &lt;br /&gt;
                &lt;br /&gt;
        panel = wx.Panel(self, wx.ID_ANY)&lt;br /&gt;
        sizer = wx.BoxSizer(wx.VERTICAL)&lt;br /&gt;
        self.button = wx.Button(panel, wx.ID_ANY, 'Start')&lt;br /&gt;
        self.cb = wx.ComboBox(panel, choices=[s[0] for s in self.streams],style=wx.CB_DROPDOWN|wx.CB_READONLY,value=self.streams[0][0])&lt;br /&gt;
        &lt;br /&gt;
        self.timer = wx.Timer(self)&lt;br /&gt;
        self.Bind(wx.EVT_TIMER, self.update, self.timer)&lt;br /&gt;
        &lt;br /&gt;
        self.label = wx.StaticText(panel)&lt;br /&gt;
            &lt;br /&gt;
        panel.SetSizer(sizer)&lt;br /&gt;
        sizer.Add(self.cb)&lt;br /&gt;
        sizer.Add(self.button)&lt;br /&gt;
        sizer.Add(self.label)&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        self.Bind(wx.EVT_BUTTON, self.toggle, self.button)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    def toggle(self, evt=None):      &lt;br /&gt;
        label = self.button.GetLabel()&lt;br /&gt;
        station = self.cb.GetValue()&lt;br /&gt;
        self.selectedStream=0&lt;br /&gt;
        if label=='Start':&lt;br /&gt;
            for s, uri in self.streams:&lt;br /&gt;
                if station==s:&lt;br /&gt;
                    player.set_property('uri', uri)&lt;br /&gt;
                    break&lt;br /&gt;
                self.selectedStream+=1&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        elif label=='Stop':&lt;br /&gt;
            self.s=1&lt;br /&gt;
            self.update()&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            self.button.SetLabel('Start')&lt;br /&gt;
    &lt;br /&gt;
    def update(self, evt=None):&lt;br /&gt;
        self.s -= 1&lt;br /&gt;
        if self.s &amp;lt;= 0:&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            &lt;br /&gt;
            self.s=self.playfor&lt;br /&gt;
            self.selectedStream +=1&lt;br /&gt;
            (s, uri) = self.streams[self.selectedStream]&lt;br /&gt;
            self.cb.SetValue(s)&lt;br /&gt;
            player.set_property('uri', uri)&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        else:&lt;br /&gt;
            mins = self.s / 60&lt;br /&gt;
            secs = self.s % 60&lt;br /&gt;
            self.label.SetLabel(&amp;quot;%02d:%02d&amp;quot; % (mins,secs))&lt;br /&gt;
            &lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    app = wx.PySimpleApp()&lt;br /&gt;
    win = mainwin('./lcRadio.lst')&lt;br /&gt;
    win.Show()&lt;br /&gt;
    app.MainLoop()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausführung: Download von robis Script und Aufruf und Redirection in lcRadio.lst. Danach Aufruf von RadioStreamer. Danach kann man den StartKanel wählen und alle Streams durchhören.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28677</id>
		<title>Diskussion:Radiosender</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28677"/>
		<updated>2012-04-11T20:17:25Z</updated>

		<summary type="html">&lt;p&gt;Framp: Added Python script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bearbeitungshinweise ==&lt;br /&gt;
&lt;br /&gt;
Da diese Seite einen hohen Aufwand an ständiger Aktualisierung erfordert entstehen zur Zeit&lt;br /&gt;
Funktionen für das Importieren und Exportieren der Radiosenderdaten.&lt;br /&gt;
Diese Hilfsscripte sind auf eine stabile Struktur der Wikiseite angewiesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus diesem Grund sollten Änderungen an dieser Seite mit Vorsicht vorgenommen werden, vor allem&lt;br /&gt;
keine 2 Tabelle auf der Seite anlegen. Beachtet bei Änderungen unbedingt die weiter unten gegebenen Hinweise, nur so kann sicher gestellt werden, dass die hier vorgestellten Scripte bei allen Usern auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import und Exportfunktionen für die Tabelle ==&lt;br /&gt;
&lt;br /&gt;
=== Daten aus dem Wiki für Tabellenbearbeitung bereitstellen === &lt;br /&gt;
&lt;br /&gt;
Für den Export der Daten aus dem Wiki wurde folgendes Script entwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ist es möglich, die Daten der Tabelle für den Import in Tabellenkalkulationsprogramme direkt abzuholen.&lt;br /&gt;
Da es in der Zwischenzeit zwei Wikiseiten dafür gibt, kann mit einer Option eine einzelne Seite zum Download bestimmt werden. Ohne Option werden immer beide Seiten downgeloadet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Ausgabe der Daten im csv-Format zum Import in Tabellenverarbeitung&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; datei.csv&lt;br /&gt;
#&lt;br /&gt;
# Importeinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
 else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}'&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Exporthilfe aus Daten-Tabellen für Änderungen im Wiki === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgendes Script ist für den umgekehrten Weg gedacht, um mit Tabellenbearbeitung geänderte oder neu hinzugekommenen Daten hier in die Tabelle einzutragen.&lt;br /&gt;
Nach einiger Überlegung wurde darauf verzichtet, das Script so weit auszubauen, dass mit dem Script direkt von eurem Rechner aus die Datenänderungen im&lt;br /&gt;
Wiki vorgenommen werden. Das würde hier Tür und Tor für jeglichen Unfug viel zu weit aufreißen. ;-)&lt;br /&gt;
&lt;br /&gt;
Es bleibt euch also letztlich doch noch die Daten hier im Wiki auf die alt hergebrachte Weise zu editieren und zu erweitern.&lt;br /&gt;
Allerdings hilft euch das Script dabei. &amp;lt;br&amp;gt;&lt;br /&gt;
Es ist so konzipiert, das es das Datenformat, das das erste Script anlegt, und welches ihr mit Tabellenkalkulation oder Datenbank bearbeiten könnt und von dort aus auch genau so wieder abspeichern könnt,  in genau das Format umwandelt, das hier im Wiki im Bearbeitungsfenster eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
Es wird mit dem Script jeweils eine komplette Tabelle erzeugt. Ihr könnt daraus die jeweiligen Bereiche hier einfach hineinkopieren, bzw. ( '''aber bitte nur nach wirklich größeren Änderungen''' ) die gesamte Tabelle durch die neuen Daten austauschen, indem ihr im Editorfenster die alte Tabellendaten komplett löscht, und dafür die Ausgabe des Scriptes wieder hineinkopiert. Eine Aufteilung der Daten auf die beiden Wikiseiten ist derzeit noch nicht implemeniert, das muss vorläufig noch per Hand entschieden werden. Auf einer Seite sind maximal ca. 400 Tabelleneinträge mögliche, danach kommt eine Fehlermeldung bei Versuch die Wikiseite zu speichern. Einige Anmerkungen und Hinweise dazu folgen noch, hier erstmal das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script konvertiert eine CSV-Datei in das passende Wiki-Format&lt;br /&gt;
# als Hilfe zum Einfügen und Ändern der Daten auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender&lt;br /&gt;
# erzeugt wird die komplette Tabelle aus den übergebenen Daten&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script datei.csv &amp;gt; wiki-tabelle.dat&lt;br /&gt;
#&lt;br /&gt;
# Exporteinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if [ $# != 1 ]; then echo -e &amp;quot;\nAufruf: $0 datei.csv \n\n&amp;quot;;exit 1;fi&lt;br /&gt;
if [ -r &amp;quot;$1&amp;quot; -a -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
if [ &amp;quot;$(head -1 &amp;quot;$1&amp;quot; |cut -d';' -f5 |cut -d'&amp;quot;' -f2)&amp;quot; != &amp;quot;Hinweis&amp;quot; ]; then&lt;br /&gt;
  echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; scheint keine für dieses Script geeignete CSV-Datei zu sein\n\n&amp;quot;;exit 2;fi&lt;br /&gt;
else echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; ist keine lesbare Datei\n\n&amp;quot;; exit 3;fi&lt;br /&gt;
&lt;br /&gt;
awk -F';' '{ split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($2,STADT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($3,LAND,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($4,BIT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($5,BEMERK,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
     NR==1 { print &amp;quot;{| class=\&amp;quot;wikitable sortable\&amp;quot; border=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot; |- style=\&amp;quot;background-color:#009ACD;\&amp;quot;&amp;quot;&lt;br /&gt;
             printf &amp;quot; !&amp;quot; NAME[2] &amp;quot;!!&amp;quot; STADT[2] &amp;quot;!!&amp;quot; LAND[2] &amp;quot;!!&amp;quot; BIT[2] &amp;quot;!!&amp;quot;&lt;br /&gt;
             print &amp;quot; class=\&amp;quot;unsortable\&amp;quot;| &amp;quot; BEMERK[2] &amp;quot;!!class=\&amp;quot;unsortable\&amp;quot;|&amp;quot; ADDR[2] }&lt;br /&gt;
&lt;br /&gt;
     NR!=1 { FARBE= &amp;quot;#FFCC00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;lt; 63  )  FARBE= &amp;quot;#FFFF00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] == 0  )  FARBE= &amp;quot;#363636&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 93  )  FARBE= &amp;quot;#FF9900&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 128 )  FARBE= &amp;quot;#FF6600&amp;quot; ;&lt;br /&gt;
             print  &amp;quot;|- style=\&amp;quot;background-color:&amp;quot; FARBE &amp;quot;;\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot;|&amp;quot;,NAME[2],&amp;quot;||&amp;quot;,STADT[2],&amp;quot;||&amp;quot;,LAND[2],&amp;quot;||align=\&amp;quot;center\&amp;quot; |&amp;quot;,BIT[1],&amp;quot;||&amp;quot;,BEMERK[2],&amp;quot;||&amp;quot;,ADDR[2]  }&lt;br /&gt;
&lt;br /&gt;
       END { print &amp;quot;|}&amp;quot;      }' &amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erstellen einer Wiedergabeliste für kaffeine ===&lt;br /&gt;
&lt;br /&gt;
Folgendes Script erzeugt aus den Wikidaten eine Wiedergabeliste die direkt in kaffeine importiert werden kann.&lt;br /&gt;
Einfach das Script aufrufen und die Ausgabe in eine Datei zB &amp;quot;'''meine_liste.kaffeine'''&amp;quot; umleiten. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 2, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm kaffeine .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.kaffeine&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;&amp;lt;!DOCTYPE XMLPlaylist&amp;gt;\n&amp;lt;playlist client=\&amp;quot;kaffeine\&amp;quot; &amp;gt;&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               TYPE=&amp;quot;&amp;quot;;&lt;br /&gt;
               if (match($6,/.*\.mp3\&amp;quot;$/)) TYPE=&amp;quot;audio/x-mp3&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wma\&amp;quot;$/)) TYPE=&amp;quot;audio/x-ms-wma&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wmv\&amp;quot;$/)) TYPE=&amp;quot;video/x-ms-wmv&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.m3u\&amp;quot;$/)) TYPE=&amp;quot;audio/mpegurl&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ogg\&amp;quot;$/)) TYPE=&amp;quot;application/ogg&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ra\&amp;quot;$/))  TYPE=&amp;quot;audio/vnd.rn-realaudio&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\/\&amp;quot;$/))    TYPE=&amp;quot;inode/directory&amp;quot; ;&lt;br /&gt;
               if (TYPE==&amp;quot;&amp;quot;) TYPE=&amp;quot;application/octet-stream&amp;quot; ;&lt;br /&gt;
               print &amp;quot; &amp;lt;entry title=&amp;quot; $1, &amp;quot;mime=\&amp;quot;&amp;quot; TYPE &amp;quot;\&amp;quot; url=&amp;quot; $6, &amp;quot;/&amp;gt;&amp;quot;}&lt;br /&gt;
             END  {print &amp;quot;&amp;lt;/playlist&amp;gt;&amp;quot;} '&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise für das Ändern der Datentabelle ==&lt;br /&gt;
&lt;br /&gt;
* bei Verwendung der obrigen Scripte bitte darauf achten, dass ihr keine &amp;quot;falschen zusätzlichen Zeilenspünge mitkopiert. Das passiert z.B. wenn man die Standardausgabe des 2. Scriptes hier her kopieren würdet. Also die Ausgabe des Scriptes in eine Datei umleiten, diese Datei mit '''cat''' ausgeben und dann diese Konsolausgabe der Datei hier für die Änderungen im Wiki benutzen, dann sollte das Problem nicht auftreten.&lt;br /&gt;
&lt;br /&gt;
* Bitte nach Änderungen im Wiki die Vorschau benutzen und bitte genau überprüfen ob die Tabelle und eure neuen Daten auch wirklich ok sind, und wirklich nur dann abspeichern.&lt;br /&gt;
&lt;br /&gt;
* Eine Datenzeile der Wikitabelle umfasst immer genau 2 zusammengehörende Zeilen beim Editieren der Tabelle:&lt;br /&gt;
 |- style=&amp;quot;background-color:#FFFF00;&amp;quot;&lt;br /&gt;
 | Bayern 1 || München || Deutschland ||align=&amp;quot;center&amp;quot; | 48 || - || mms://gffstream-w1b.wm.llnwd.net/gffstream_w1b&lt;br /&gt;
: In der ersten Zeile wird die Hintergrundfarbe gesetzt, das macht das obrige Script automatisch, in der 2. Zeile stehen dann die Daten.&lt;br /&gt;
&lt;br /&gt;
* Sollte ein Sender einmal nicht mehr senden, und keine neue Streamadresse bekannt sein, ist vorgesehen bei der Datenrate eine '''0'''  (Null) einzutragen, und bei der Farbe dazu den Wert &amp;quot;'''#363636'''&amp;quot; . Damit wird die entsprechende Zeile dunkelgrau  und so als z.Z. nicht verfügbar markiert. Erfahrungsgemäß können Sender wegen technischen Problemen über Stunden oder vor allem am Wochenende auch etwas länger offline sein. Bitte die Markierung erst durchführen wenn die Sender über mehrere Tage nicht verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
* Vermeidet in der Tabelle Sonderzeichen. Es ist bekannt das  '''&amp;quot;;&amp;quot;''' in der URL und '''&amp;quot;&amp;amp;&amp;quot;''' und '''&amp;quot;%&amp;quot;''' im Sendernamen Probleme beim Ex- und Import der Daten mit obrigen Scripten bzw bei Import in kaffeine erzeugen. &lt;br /&gt;
&lt;br /&gt;
* Achtet darauf, dass bei einer Adresse wie zum Beispiel http://mp3.ht-stream.net/;04026677086949stream.nsv die temporäre Ergänzung der Stream-Adresse weggelassen wird. Das Beispiel ist also einzutragen als http://mp3.ht-stream.net/ &lt;br /&gt;
&lt;br /&gt;
* Bitte in die Felder der Tabelle (außer der Adresse natürlich) keine Links oder Webadressen eintragen, sondern nur Text.&lt;br /&gt;
&lt;br /&gt;
* Haltet euch an das Tabellenformat, sollten Änderungen am Format notwendig werden, dann können wird darüber gerne diskutieren, und dann können gegebenenfalls auch parallel dazu dann die Scripte an das neue Format angepasst werden.&lt;br /&gt;
&lt;br /&gt;
* Fällt euch auf, das einzelnen Sender nicht mehr senden und ihr euch nicht an die Tabelle traut, dann könnt ihr das auch gerne hier im Anschluss auf der Diskussionseite melden, damit der Nächste das prüfen und gegebenenfalls dann abändern kann. &lt;br /&gt;
&lt;br /&gt;
* Sollte es dennoch Editierunfälle, Probleme, Unklarheiten, Verständnissprobleme oder sonstige irgendwie gearteter Probleme mit dieser Wikiseite geben, bitte im Wikiforum melden, da wird man euch schnellstmöglich helfen.&lt;br /&gt;
&lt;br /&gt;
* Denkt daran: einige haben in diese Seite eine ganze Menge Zeit investiert, und davon sollen auch morgen noch möglichst viele Wikileser ihren Nutzen ziehen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann allseits guten Radioempfang [[Benutzer:Robi|Robi]] 22:01, 5. Dez. 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Neuer Sender ==&lt;br /&gt;
Ich trau' mich nach all diesen Hinweisen nicht ...&lt;br /&gt;
* Radio Okerwelle (Lokalsender Braunschweig) http://www.okerwelle.de/typo/ Stream von &amp;lt;http://radiostream.de/stream/35575.m3u&amp;gt; / &amp;lt;http://dus.radiostream.de:35575&amp;gt; -- [[Benutzer:RainerBi|RainerBi]] 10:13, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Danke für die Empfehlung, ich dachte schon weil bisher so wenig Fragen und Rückmeldungen gekommen sind, die Seite ist noch nirgens so richtig angekommen. ;-) &amp;lt;br&amp;gt;&lt;br /&gt;
:: [[Benutzer:Albschrat|Albschrat]] wird den Sender sicherlich bei seiner nächsten Aktualisierung mit einpflegen.  [[Benutzer:Robi|Robi]] 17:08, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Nur Sprache ==&lt;br /&gt;
&lt;br /&gt;
Anregung:  Eine Seite die nur streaming links to SPRACHE (Speech, talk) sendern hat.&lt;br /&gt;
Planet Chomsky:&lt;br /&gt;
 http://Hee-La.serverroom.us:4048/&lt;br /&gt;
BBC World Propaganda&lt;br /&gt;
 mms://livewmstream-ws.bbc.co.uk.edgestreams.net/reflector:43021&lt;br /&gt;
&lt;br /&gt;
Viele alte Leute koennen Nachts nicht schlafen, und wollen keine musik.&lt;br /&gt;
Waere schoen, wenn man speech-only Sender separat haette. English und Deutsch gemischt, kein problem, denn wer Radio &amp;quot;zum Denken&amp;quot; hoert kann beides.&lt;br /&gt;
&lt;br /&gt;
:: Besten Dank für die Anregung.&lt;br /&gt;
:: Solange wir nur 5 Sender mit reiner Sprache haben, sind diese als Soforthilfe in der Tabelle mit »Nur Sprache - keine Musik« markiert. [[Benutzer:Albschrat|Albschrat]] 20:38, 1. Juni 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geänderte Sender ==&lt;br /&gt;
&lt;br /&gt;
Ich möchte auch nichts falsch, aber doch auf eine Änderung aufmerksam machen,finde ich doch diesen Artikel besonders wertvoll:&lt;br /&gt;
&lt;br /&gt;
Neue '''NDR'''-Streams &amp;quot;ndrstream.ic.llnwd.net/ usw.&amp;quot;, die sich vor wenigen Tagen geändert haben, sollten von erfahreneren Benutzern hier &lt;br /&gt;
eingepflegt werden:&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1niedersachsen_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1wellenord_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1radiomv_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr903_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr2_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_spezial_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Strumpell|Strumpell]] 06:55, 17. Okt. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Besten Dank für den Hinweis und Deine Unterstützung! Die Sender sind in der aktuellen Tabelle enthalten. [[Benutzer:albschrat|albschrat]] 16:32, 5. Dez. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Farben?==&lt;br /&gt;
was bedeuten die und warum steht nichts darüber im Artikel? --[[Benutzer:Itu|Itu]] 21:12, 17. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Die Farben sind abhängig vom der Bitrate des Senders und somit ein Synonym für die Qualität dieses Radiosenders, vorausgesetzt man kann auch die entsprechende Datenmenge wirklich über das Internet störungsfrei ziehen. Die Gelben Felder sind somit niedrige Qualität die entsprechende dem Rotanteil der Farbe schrittweise zunimmt. Graue Felder sind für Sender gedacht die seit einiger Zeit oder vorübergehend offline sind.&lt;br /&gt;
&lt;br /&gt;
:: Wenn ich mich nicht ganz täusche hatte ich die Auswahl der Farbe damals in das Script fest eingebaut mit dem Albschrat hoffentlich noch regelmäßig diese beiden Wiki Seite wartet. Sie werden somit automatisch entsprechende der Bitrate gesetzt wenn Albschrat das nächste mal wieder seine Datenbank und das Wiki mit Hilfe der Scripte aktualsisiert.&lt;br /&gt;
[[Benutzer:Robi|Robi]] 12:31, 18. Sep. 2011 (UTC)&lt;br /&gt;
:::Müsste man dann noch in den Artikel schreiben. --[[Benutzer:Itu|Itu]] 15:20, 18. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== WDR Streamadressen ==&lt;br /&gt;
http://webradio.wdr.de : der WDR hat eine Seite mit den Adressen aller seiner Streams. --[[Benutzer:Wikinaut|Wikinaut]] 09:27, 20. Nov. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div style=&amp;quot;font-size:30px; color: #f00&amp;quot; &amp;gt;Betreuung der Senderliste gesucht &amp;lt;/div&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Wegen eines nebenberuflichen Studiums bin ich seit geraumer Zeit vollkommen »Land unter«. Der Zustand wird sich absehbar in den nächsten 3 Jahren nicht ändern. Deshalb muss ich die Betreuung der Seite abgeben. Für Tipps stehe ich natürlich jederzeit gerne zur Verfügung. [[Benutzer:albschrat|albschrat]] 10:31, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ich habs mal mit ins Forum übernommen, dort wird das eventuell eht gelesen [[Benutzer:Robi|Robi]] 13:38, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen ==&lt;br /&gt;
&lt;br /&gt;
Das Tool geht jede URL der List durch und konnected und spielt den Stream für 10 Sekunden ab. Damit kann man relative leicht prüfen, ob die Streams noch verfügbar sind. Bei den ca 500 URLs dauert das ca 90 Minuten.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: robis Script um die URLs und Beschreibungen aus der WikiSeite zu extrahieren&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: TEST-SCRIPT,  -ungetestet-&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm Amarok .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.m3u&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;#EXTM3U&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               print &amp;quot;#EXTINF:0,&amp;quot; NAME[2]&lt;br /&gt;
               print ADDR[2]}'&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das tool ist ein Pythonscript und hat folgenden Abhänigkeiten: wxpython und python-gstreamer. Diese müssen vor Ausführunge installiert sein. Sie sind auf den meisten Distros verfügbar.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
import gst&lt;br /&gt;
import wx&lt;br /&gt;
import time&lt;br /&gt;
import re&lt;br /&gt;
import subprocess&lt;br /&gt;
&lt;br /&gt;
# Source from http://nitric.co.za/blog-posts/listen.py-little-script-to-stream-internet-radio-for-an-hour-and-then-stop&lt;br /&gt;
# and modified and adapted by framp@linux-tips-and-tricks.de to speed up checking of validity of radio frequencies&lt;br /&gt;
# available on http://www.linupedia.org/opensuse/Radiosender  &lt;br /&gt;
&lt;br /&gt;
player = gst.element_factory_make(&amp;quot;playbin&amp;quot;, &amp;quot;player&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
class mainwin(wx.Frame):&lt;br /&gt;
    playfor=10&lt;br /&gt;
    s=playfor&lt;br /&gt;
    &lt;br /&gt;
    def __init__(self, fileName, parent=None):&lt;br /&gt;
        super(mainwin,self).__init__(parent, wx.ID_ANY, title='Listen to the LinuxClub RadioList')&lt;br /&gt;
&lt;br /&gt;
        self.streams=[]        &lt;br /&gt;
&lt;br /&gt;
        radioFile=open(fileName,'r')&lt;br /&gt;
        title=None&lt;br /&gt;
        for line in radioFile:&lt;br /&gt;
            if title:&lt;br /&gt;
                self.streams.append((title,line))&lt;br /&gt;
                title=None&lt;br /&gt;
            # #EXTINF:0,Women Rock Radio&lt;br /&gt;
            m=re.match(&amp;quot;^#EXTINF.*,(.*)&amp;quot;,line)&lt;br /&gt;
            if m:&lt;br /&gt;
                title=m.group(1)              &lt;br /&gt;
                &lt;br /&gt;
        panel = wx.Panel(self, wx.ID_ANY)&lt;br /&gt;
        sizer = wx.BoxSizer(wx.VERTICAL)&lt;br /&gt;
        self.button = wx.Button(panel, wx.ID_ANY, 'Start')&lt;br /&gt;
        self.cb = wx.ComboBox(panel, choices=[s[0] for s in self.streams],style=wx.CB_DROPDOWN|wx.CB_READONLY,value=self.streams[0][0])&lt;br /&gt;
        &lt;br /&gt;
        self.timer = wx.Timer(self)&lt;br /&gt;
        self.Bind(wx.EVT_TIMER, self.update, self.timer)&lt;br /&gt;
        &lt;br /&gt;
        self.label = wx.StaticText(panel)&lt;br /&gt;
            &lt;br /&gt;
        panel.SetSizer(sizer)&lt;br /&gt;
        sizer.Add(self.cb)&lt;br /&gt;
        sizer.Add(self.button)&lt;br /&gt;
        sizer.Add(self.label)&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        self.Bind(wx.EVT_BUTTON, self.toggle, self.button)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    def toggle(self, evt=None):      &lt;br /&gt;
        label = self.button.GetLabel()&lt;br /&gt;
        station = self.cb.GetValue()&lt;br /&gt;
        self.selectedStream=0&lt;br /&gt;
        if label=='Start':&lt;br /&gt;
            for s, uri in self.streams:&lt;br /&gt;
                if station==s:&lt;br /&gt;
                    player.set_property('uri', uri)&lt;br /&gt;
                    break&lt;br /&gt;
                self.selectedStream+=1&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        elif label=='Stop':&lt;br /&gt;
            self.s=1&lt;br /&gt;
            self.update()&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            self.button.SetLabel('Start')&lt;br /&gt;
    &lt;br /&gt;
    def update(self, evt=None):&lt;br /&gt;
        self.s -= 1&lt;br /&gt;
        if self.s &amp;lt;= 0:&lt;br /&gt;
            player.set_state(gst.STATE_NULL)&lt;br /&gt;
            &lt;br /&gt;
            self.s=self.playfor&lt;br /&gt;
            self.selectedStream +=1&lt;br /&gt;
            (s, uri) = self.streams[self.selectedStream]&lt;br /&gt;
            self.cb.SetValue(s)&lt;br /&gt;
            player.set_property('uri', uri)&lt;br /&gt;
            player.set_state(gst.STATE_PLAYING)&lt;br /&gt;
            self.button.SetLabel('Stop')&lt;br /&gt;
            self.timer.Start(1000)&lt;br /&gt;
            &lt;br /&gt;
        else:&lt;br /&gt;
            mins = self.s / 60&lt;br /&gt;
            secs = self.s % 60&lt;br /&gt;
            self.label.SetLabel(&amp;quot;%02d:%02d&amp;quot; % (mins,secs))&lt;br /&gt;
            &lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    app = wx.PySimpleApp()&lt;br /&gt;
    win = mainwin('./lcRadio.lst')&lt;br /&gt;
    win.Show()&lt;br /&gt;
    app.MainLoop()&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ausführung: Download von robis Script und Aufruf und Redirection in lcRadio.lst. Danach Aufruf von RadioStreamer. Danach kann man den StartKanel wählen und alle Streams durchhören.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28676</id>
		<title>Diskussion:Radiosender</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28676"/>
		<updated>2012-04-11T20:15:35Z</updated>

		<summary type="html">&lt;p&gt;Framp: Added robis script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bearbeitungshinweise ==&lt;br /&gt;
&lt;br /&gt;
Da diese Seite einen hohen Aufwand an ständiger Aktualisierung erfordert entstehen zur Zeit&lt;br /&gt;
Funktionen für das Importieren und Exportieren der Radiosenderdaten.&lt;br /&gt;
Diese Hilfsscripte sind auf eine stabile Struktur der Wikiseite angewiesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus diesem Grund sollten Änderungen an dieser Seite mit Vorsicht vorgenommen werden, vor allem&lt;br /&gt;
keine 2 Tabelle auf der Seite anlegen. Beachtet bei Änderungen unbedingt die weiter unten gegebenen Hinweise, nur so kann sicher gestellt werden, dass die hier vorgestellten Scripte bei allen Usern auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import und Exportfunktionen für die Tabelle ==&lt;br /&gt;
&lt;br /&gt;
=== Daten aus dem Wiki für Tabellenbearbeitung bereitstellen === &lt;br /&gt;
&lt;br /&gt;
Für den Export der Daten aus dem Wiki wurde folgendes Script entwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ist es möglich, die Daten der Tabelle für den Import in Tabellenkalkulationsprogramme direkt abzuholen.&lt;br /&gt;
Da es in der Zwischenzeit zwei Wikiseiten dafür gibt, kann mit einer Option eine einzelne Seite zum Download bestimmt werden. Ohne Option werden immer beide Seiten downgeloadet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Ausgabe der Daten im csv-Format zum Import in Tabellenverarbeitung&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; datei.csv&lt;br /&gt;
#&lt;br /&gt;
# Importeinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
 else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}'&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Exporthilfe aus Daten-Tabellen für Änderungen im Wiki === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgendes Script ist für den umgekehrten Weg gedacht, um mit Tabellenbearbeitung geänderte oder neu hinzugekommenen Daten hier in die Tabelle einzutragen.&lt;br /&gt;
Nach einiger Überlegung wurde darauf verzichtet, das Script so weit auszubauen, dass mit dem Script direkt von eurem Rechner aus die Datenänderungen im&lt;br /&gt;
Wiki vorgenommen werden. Das würde hier Tür und Tor für jeglichen Unfug viel zu weit aufreißen. ;-)&lt;br /&gt;
&lt;br /&gt;
Es bleibt euch also letztlich doch noch die Daten hier im Wiki auf die alt hergebrachte Weise zu editieren und zu erweitern.&lt;br /&gt;
Allerdings hilft euch das Script dabei. &amp;lt;br&amp;gt;&lt;br /&gt;
Es ist so konzipiert, das es das Datenformat, das das erste Script anlegt, und welches ihr mit Tabellenkalkulation oder Datenbank bearbeiten könnt und von dort aus auch genau so wieder abspeichern könnt,  in genau das Format umwandelt, das hier im Wiki im Bearbeitungsfenster eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
Es wird mit dem Script jeweils eine komplette Tabelle erzeugt. Ihr könnt daraus die jeweiligen Bereiche hier einfach hineinkopieren, bzw. ( '''aber bitte nur nach wirklich größeren Änderungen''' ) die gesamte Tabelle durch die neuen Daten austauschen, indem ihr im Editorfenster die alte Tabellendaten komplett löscht, und dafür die Ausgabe des Scriptes wieder hineinkopiert. Eine Aufteilung der Daten auf die beiden Wikiseiten ist derzeit noch nicht implemeniert, das muss vorläufig noch per Hand entschieden werden. Auf einer Seite sind maximal ca. 400 Tabelleneinträge mögliche, danach kommt eine Fehlermeldung bei Versuch die Wikiseite zu speichern. Einige Anmerkungen und Hinweise dazu folgen noch, hier erstmal das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script konvertiert eine CSV-Datei in das passende Wiki-Format&lt;br /&gt;
# als Hilfe zum Einfügen und Ändern der Daten auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender&lt;br /&gt;
# erzeugt wird die komplette Tabelle aus den übergebenen Daten&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script datei.csv &amp;gt; wiki-tabelle.dat&lt;br /&gt;
#&lt;br /&gt;
# Exporteinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if [ $# != 1 ]; then echo -e &amp;quot;\nAufruf: $0 datei.csv \n\n&amp;quot;;exit 1;fi&lt;br /&gt;
if [ -r &amp;quot;$1&amp;quot; -a -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
if [ &amp;quot;$(head -1 &amp;quot;$1&amp;quot; |cut -d';' -f5 |cut -d'&amp;quot;' -f2)&amp;quot; != &amp;quot;Hinweis&amp;quot; ]; then&lt;br /&gt;
  echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; scheint keine für dieses Script geeignete CSV-Datei zu sein\n\n&amp;quot;;exit 2;fi&lt;br /&gt;
else echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; ist keine lesbare Datei\n\n&amp;quot;; exit 3;fi&lt;br /&gt;
&lt;br /&gt;
awk -F';' '{ split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($2,STADT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($3,LAND,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($4,BIT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($5,BEMERK,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
     NR==1 { print &amp;quot;{| class=\&amp;quot;wikitable sortable\&amp;quot; border=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot; |- style=\&amp;quot;background-color:#009ACD;\&amp;quot;&amp;quot;&lt;br /&gt;
             printf &amp;quot; !&amp;quot; NAME[2] &amp;quot;!!&amp;quot; STADT[2] &amp;quot;!!&amp;quot; LAND[2] &amp;quot;!!&amp;quot; BIT[2] &amp;quot;!!&amp;quot;&lt;br /&gt;
             print &amp;quot; class=\&amp;quot;unsortable\&amp;quot;| &amp;quot; BEMERK[2] &amp;quot;!!class=\&amp;quot;unsortable\&amp;quot;|&amp;quot; ADDR[2] }&lt;br /&gt;
&lt;br /&gt;
     NR!=1 { FARBE= &amp;quot;#FFCC00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;lt; 63  )  FARBE= &amp;quot;#FFFF00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] == 0  )  FARBE= &amp;quot;#363636&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 93  )  FARBE= &amp;quot;#FF9900&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 128 )  FARBE= &amp;quot;#FF6600&amp;quot; ;&lt;br /&gt;
             print  &amp;quot;|- style=\&amp;quot;background-color:&amp;quot; FARBE &amp;quot;;\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot;|&amp;quot;,NAME[2],&amp;quot;||&amp;quot;,STADT[2],&amp;quot;||&amp;quot;,LAND[2],&amp;quot;||align=\&amp;quot;center\&amp;quot; |&amp;quot;,BIT[1],&amp;quot;||&amp;quot;,BEMERK[2],&amp;quot;||&amp;quot;,ADDR[2]  }&lt;br /&gt;
&lt;br /&gt;
       END { print &amp;quot;|}&amp;quot;      }' &amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erstellen einer Wiedergabeliste für kaffeine ===&lt;br /&gt;
&lt;br /&gt;
Folgendes Script erzeugt aus den Wikidaten eine Wiedergabeliste die direkt in kaffeine importiert werden kann.&lt;br /&gt;
Einfach das Script aufrufen und die Ausgabe in eine Datei zB &amp;quot;'''meine_liste.kaffeine'''&amp;quot; umleiten. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 2, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm kaffeine .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.kaffeine&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;&amp;lt;!DOCTYPE XMLPlaylist&amp;gt;\n&amp;lt;playlist client=\&amp;quot;kaffeine\&amp;quot; &amp;gt;&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               TYPE=&amp;quot;&amp;quot;;&lt;br /&gt;
               if (match($6,/.*\.mp3\&amp;quot;$/)) TYPE=&amp;quot;audio/x-mp3&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wma\&amp;quot;$/)) TYPE=&amp;quot;audio/x-ms-wma&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wmv\&amp;quot;$/)) TYPE=&amp;quot;video/x-ms-wmv&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.m3u\&amp;quot;$/)) TYPE=&amp;quot;audio/mpegurl&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ogg\&amp;quot;$/)) TYPE=&amp;quot;application/ogg&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ra\&amp;quot;$/))  TYPE=&amp;quot;audio/vnd.rn-realaudio&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\/\&amp;quot;$/))    TYPE=&amp;quot;inode/directory&amp;quot; ;&lt;br /&gt;
               if (TYPE==&amp;quot;&amp;quot;) TYPE=&amp;quot;application/octet-stream&amp;quot; ;&lt;br /&gt;
               print &amp;quot; &amp;lt;entry title=&amp;quot; $1, &amp;quot;mime=\&amp;quot;&amp;quot; TYPE &amp;quot;\&amp;quot; url=&amp;quot; $6, &amp;quot;/&amp;gt;&amp;quot;}&lt;br /&gt;
             END  {print &amp;quot;&amp;lt;/playlist&amp;gt;&amp;quot;} '&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise für das Ändern der Datentabelle ==&lt;br /&gt;
&lt;br /&gt;
* bei Verwendung der obrigen Scripte bitte darauf achten, dass ihr keine &amp;quot;falschen zusätzlichen Zeilenspünge mitkopiert. Das passiert z.B. wenn man die Standardausgabe des 2. Scriptes hier her kopieren würdet. Also die Ausgabe des Scriptes in eine Datei umleiten, diese Datei mit '''cat''' ausgeben und dann diese Konsolausgabe der Datei hier für die Änderungen im Wiki benutzen, dann sollte das Problem nicht auftreten.&lt;br /&gt;
&lt;br /&gt;
* Bitte nach Änderungen im Wiki die Vorschau benutzen und bitte genau überprüfen ob die Tabelle und eure neuen Daten auch wirklich ok sind, und wirklich nur dann abspeichern.&lt;br /&gt;
&lt;br /&gt;
* Eine Datenzeile der Wikitabelle umfasst immer genau 2 zusammengehörende Zeilen beim Editieren der Tabelle:&lt;br /&gt;
 |- style=&amp;quot;background-color:#FFFF00;&amp;quot;&lt;br /&gt;
 | Bayern 1 || München || Deutschland ||align=&amp;quot;center&amp;quot; | 48 || - || mms://gffstream-w1b.wm.llnwd.net/gffstream_w1b&lt;br /&gt;
: In der ersten Zeile wird die Hintergrundfarbe gesetzt, das macht das obrige Script automatisch, in der 2. Zeile stehen dann die Daten.&lt;br /&gt;
&lt;br /&gt;
* Sollte ein Sender einmal nicht mehr senden, und keine neue Streamadresse bekannt sein, ist vorgesehen bei der Datenrate eine '''0'''  (Null) einzutragen, und bei der Farbe dazu den Wert &amp;quot;'''#363636'''&amp;quot; . Damit wird die entsprechende Zeile dunkelgrau  und so als z.Z. nicht verfügbar markiert. Erfahrungsgemäß können Sender wegen technischen Problemen über Stunden oder vor allem am Wochenende auch etwas länger offline sein. Bitte die Markierung erst durchführen wenn die Sender über mehrere Tage nicht verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
* Vermeidet in der Tabelle Sonderzeichen. Es ist bekannt das  '''&amp;quot;;&amp;quot;''' in der URL und '''&amp;quot;&amp;amp;&amp;quot;''' und '''&amp;quot;%&amp;quot;''' im Sendernamen Probleme beim Ex- und Import der Daten mit obrigen Scripten bzw bei Import in kaffeine erzeugen. &lt;br /&gt;
&lt;br /&gt;
* Achtet darauf, dass bei einer Adresse wie zum Beispiel http://mp3.ht-stream.net/;04026677086949stream.nsv die temporäre Ergänzung der Stream-Adresse weggelassen wird. Das Beispiel ist also einzutragen als http://mp3.ht-stream.net/ &lt;br /&gt;
&lt;br /&gt;
* Bitte in die Felder der Tabelle (außer der Adresse natürlich) keine Links oder Webadressen eintragen, sondern nur Text.&lt;br /&gt;
&lt;br /&gt;
* Haltet euch an das Tabellenformat, sollten Änderungen am Format notwendig werden, dann können wird darüber gerne diskutieren, und dann können gegebenenfalls auch parallel dazu dann die Scripte an das neue Format angepasst werden.&lt;br /&gt;
&lt;br /&gt;
* Fällt euch auf, das einzelnen Sender nicht mehr senden und ihr euch nicht an die Tabelle traut, dann könnt ihr das auch gerne hier im Anschluss auf der Diskussionseite melden, damit der Nächste das prüfen und gegebenenfalls dann abändern kann. &lt;br /&gt;
&lt;br /&gt;
* Sollte es dennoch Editierunfälle, Probleme, Unklarheiten, Verständnissprobleme oder sonstige irgendwie gearteter Probleme mit dieser Wikiseite geben, bitte im Wikiforum melden, da wird man euch schnellstmöglich helfen.&lt;br /&gt;
&lt;br /&gt;
* Denkt daran: einige haben in diese Seite eine ganze Menge Zeit investiert, und davon sollen auch morgen noch möglichst viele Wikileser ihren Nutzen ziehen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann allseits guten Radioempfang [[Benutzer:Robi|Robi]] 22:01, 5. Dez. 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Neuer Sender ==&lt;br /&gt;
Ich trau' mich nach all diesen Hinweisen nicht ...&lt;br /&gt;
* Radio Okerwelle (Lokalsender Braunschweig) http://www.okerwelle.de/typo/ Stream von &amp;lt;http://radiostream.de/stream/35575.m3u&amp;gt; / &amp;lt;http://dus.radiostream.de:35575&amp;gt; -- [[Benutzer:RainerBi|RainerBi]] 10:13, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Danke für die Empfehlung, ich dachte schon weil bisher so wenig Fragen und Rückmeldungen gekommen sind, die Seite ist noch nirgens so richtig angekommen. ;-) &amp;lt;br&amp;gt;&lt;br /&gt;
:: [[Benutzer:Albschrat|Albschrat]] wird den Sender sicherlich bei seiner nächsten Aktualisierung mit einpflegen.  [[Benutzer:Robi|Robi]] 17:08, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Nur Sprache ==&lt;br /&gt;
&lt;br /&gt;
Anregung:  Eine Seite die nur streaming links to SPRACHE (Speech, talk) sendern hat.&lt;br /&gt;
Planet Chomsky:&lt;br /&gt;
 http://Hee-La.serverroom.us:4048/&lt;br /&gt;
BBC World Propaganda&lt;br /&gt;
 mms://livewmstream-ws.bbc.co.uk.edgestreams.net/reflector:43021&lt;br /&gt;
&lt;br /&gt;
Viele alte Leute koennen Nachts nicht schlafen, und wollen keine musik.&lt;br /&gt;
Waere schoen, wenn man speech-only Sender separat haette. English und Deutsch gemischt, kein problem, denn wer Radio &amp;quot;zum Denken&amp;quot; hoert kann beides.&lt;br /&gt;
&lt;br /&gt;
:: Besten Dank für die Anregung.&lt;br /&gt;
:: Solange wir nur 5 Sender mit reiner Sprache haben, sind diese als Soforthilfe in der Tabelle mit »Nur Sprache - keine Musik« markiert. [[Benutzer:Albschrat|Albschrat]] 20:38, 1. Juni 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geänderte Sender ==&lt;br /&gt;
&lt;br /&gt;
Ich möchte auch nichts falsch, aber doch auf eine Änderung aufmerksam machen,finde ich doch diesen Artikel besonders wertvoll:&lt;br /&gt;
&lt;br /&gt;
Neue '''NDR'''-Streams &amp;quot;ndrstream.ic.llnwd.net/ usw.&amp;quot;, die sich vor wenigen Tagen geändert haben, sollten von erfahreneren Benutzern hier &lt;br /&gt;
eingepflegt werden:&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1niedersachsen_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1wellenord_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1radiomv_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr903_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr2_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_spezial_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Strumpell|Strumpell]] 06:55, 17. Okt. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Besten Dank für den Hinweis und Deine Unterstützung! Die Sender sind in der aktuellen Tabelle enthalten. [[Benutzer:albschrat|albschrat]] 16:32, 5. Dez. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Farben?==&lt;br /&gt;
was bedeuten die und warum steht nichts darüber im Artikel? --[[Benutzer:Itu|Itu]] 21:12, 17. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Die Farben sind abhängig vom der Bitrate des Senders und somit ein Synonym für die Qualität dieses Radiosenders, vorausgesetzt man kann auch die entsprechende Datenmenge wirklich über das Internet störungsfrei ziehen. Die Gelben Felder sind somit niedrige Qualität die entsprechende dem Rotanteil der Farbe schrittweise zunimmt. Graue Felder sind für Sender gedacht die seit einiger Zeit oder vorübergehend offline sind.&lt;br /&gt;
&lt;br /&gt;
:: Wenn ich mich nicht ganz täusche hatte ich die Auswahl der Farbe damals in das Script fest eingebaut mit dem Albschrat hoffentlich noch regelmäßig diese beiden Wiki Seite wartet. Sie werden somit automatisch entsprechende der Bitrate gesetzt wenn Albschrat das nächste mal wieder seine Datenbank und das Wiki mit Hilfe der Scripte aktualsisiert.&lt;br /&gt;
[[Benutzer:Robi|Robi]] 12:31, 18. Sep. 2011 (UTC)&lt;br /&gt;
:::Müsste man dann noch in den Artikel schreiben. --[[Benutzer:Itu|Itu]] 15:20, 18. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== WDR Streamadressen ==&lt;br /&gt;
http://webradio.wdr.de : der WDR hat eine Seite mit den Adressen aller seiner Streams. --[[Benutzer:Wikinaut|Wikinaut]] 09:27, 20. Nov. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div style=&amp;quot;font-size:30px; color: #f00&amp;quot; &amp;gt;Betreuung der Senderliste gesucht &amp;lt;/div&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Wegen eines nebenberuflichen Studiums bin ich seit geraumer Zeit vollkommen »Land unter«. Der Zustand wird sich absehbar in den nächsten 3 Jahren nicht ändern. Deshalb muss ich die Betreuung der Seite abgeben. Für Tipps stehe ich natürlich jederzeit gerne zur Verfügung. [[Benutzer:albschrat|albschrat]] 10:31, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ich habs mal mit ins Forum übernommen, dort wird das eventuell eht gelesen [[Benutzer:Robi|Robi]] 13:38, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen ==&lt;br /&gt;
&lt;br /&gt;
Das Tool geht jede URL der List durch und konnected und spielt den Stream für 10 Sekunden ab. Damit kann man relative leicht prüfen, ob die Streams noch verfügbar sind. Bei den ca 500 URLs dauert das ca 90 Minuten.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: robis Script um die URLs und Beschreibungen aus der WikiSeite zu extrahieren&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: TEST-SCRIPT,  -ungetestet-&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm Amarok .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.m3u&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;#EXTM3U&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
               print &amp;quot;#EXTINF:0,&amp;quot; NAME[2]&lt;br /&gt;
               print ADDR[2]}'&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Das tool ist ein Pythonscript und hat folgenden Abhänigkeiten: wxpython und python-gstreamer. Diese müssen vor Ausführunge installiert sein. Sie sind auf den meisten Distros verfügbar.&lt;br /&gt;
&lt;br /&gt;
Ausführung: Download von robis Script und Aufruf und Redirection in lcRadio.lst. Danach Aufruf von RadioStreamer. Danach kann man den StartKanel wählen und alle Streams durchhören.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28675</id>
		<title>Diskussion:Radiosender</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Diskussion:Radiosender&amp;diff=28675"/>
		<updated>2012-04-11T20:13:47Z</updated>

		<summary type="html">&lt;p&gt;Framp: Added RadioStreamer tool&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Bearbeitungshinweise ==&lt;br /&gt;
&lt;br /&gt;
Da diese Seite einen hohen Aufwand an ständiger Aktualisierung erfordert entstehen zur Zeit&lt;br /&gt;
Funktionen für das Importieren und Exportieren der Radiosenderdaten.&lt;br /&gt;
Diese Hilfsscripte sind auf eine stabile Struktur der Wikiseite angewiesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Aus diesem Grund sollten Änderungen an dieser Seite mit Vorsicht vorgenommen werden, vor allem&lt;br /&gt;
keine 2 Tabelle auf der Seite anlegen. Beachtet bei Änderungen unbedingt die weiter unten gegebenen Hinweise, nur so kann sicher gestellt werden, dass die hier vorgestellten Scripte bei allen Usern auch funktionieren.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Import und Exportfunktionen für die Tabelle ==&lt;br /&gt;
&lt;br /&gt;
=== Daten aus dem Wiki für Tabellenbearbeitung bereitstellen === &lt;br /&gt;
&lt;br /&gt;
Für den Export der Daten aus dem Wiki wurde folgendes Script entwickelt.&amp;lt;br&amp;gt;&lt;br /&gt;
Damit ist es möglich, die Daten der Tabelle für den Import in Tabellenkalkulationsprogramme direkt abzuholen.&lt;br /&gt;
Da es in der Zwischenzeit zwei Wikiseiten dafür gibt, kann mit einer Option eine einzelne Seite zum Download bestimmt werden. Ohne Option werden immer beide Seiten downgeloadet&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Ausgabe der Daten im csv-Format zum Import in Tabellenverarbeitung&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; datei.csv&lt;br /&gt;
#&lt;br /&gt;
# Importeinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
 else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}'&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
=== Exporthilfe aus Daten-Tabellen für Änderungen im Wiki === &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Folgendes Script ist für den umgekehrten Weg gedacht, um mit Tabellenbearbeitung geänderte oder neu hinzugekommenen Daten hier in die Tabelle einzutragen.&lt;br /&gt;
Nach einiger Überlegung wurde darauf verzichtet, das Script so weit auszubauen, dass mit dem Script direkt von eurem Rechner aus die Datenänderungen im&lt;br /&gt;
Wiki vorgenommen werden. Das würde hier Tür und Tor für jeglichen Unfug viel zu weit aufreißen. ;-)&lt;br /&gt;
&lt;br /&gt;
Es bleibt euch also letztlich doch noch die Daten hier im Wiki auf die alt hergebrachte Weise zu editieren und zu erweitern.&lt;br /&gt;
Allerdings hilft euch das Script dabei. &amp;lt;br&amp;gt;&lt;br /&gt;
Es ist so konzipiert, das es das Datenformat, das das erste Script anlegt, und welches ihr mit Tabellenkalkulation oder Datenbank bearbeiten könnt und von dort aus auch genau so wieder abspeichern könnt,  in genau das Format umwandelt, das hier im Wiki im Bearbeitungsfenster eingegeben werden muss.&lt;br /&gt;
&lt;br /&gt;
Es wird mit dem Script jeweils eine komplette Tabelle erzeugt. Ihr könnt daraus die jeweiligen Bereiche hier einfach hineinkopieren, bzw. ( '''aber bitte nur nach wirklich größeren Änderungen''' ) die gesamte Tabelle durch die neuen Daten austauschen, indem ihr im Editorfenster die alte Tabellendaten komplett löscht, und dafür die Ausgabe des Scriptes wieder hineinkopiert. Eine Aufteilung der Daten auf die beiden Wikiseiten ist derzeit noch nicht implemeniert, das muss vorläufig noch per Hand entschieden werden. Auf einer Seite sind maximal ca. 400 Tabelleneinträge mögliche, danach kommt eine Fehlermeldung bei Versuch die Wikiseite zu speichern. Einige Anmerkungen und Hinweise dazu folgen noch, hier erstmal das Script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 3, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script konvertiert eine CSV-Datei in das passende Wiki-Format&lt;br /&gt;
# als Hilfe zum Einfügen und Ändern der Daten auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender&lt;br /&gt;
# erzeugt wird die komplette Tabelle aus den übergebenen Daten&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script datei.csv &amp;gt; wiki-tabelle.dat&lt;br /&gt;
#&lt;br /&gt;
# Exporteinstellungen:   Zeichensatz:   Unicode (UTF-8)&lt;br /&gt;
#                        Ab Zeile   :   1&lt;br /&gt;
#                        Feldtrenner:   ;&lt;br /&gt;
#                        Texttrenner:   &amp;quot;&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
if [ $# != 1 ]; then echo -e &amp;quot;\nAufruf: $0 datei.csv \n\n&amp;quot;;exit 1;fi&lt;br /&gt;
if [ -r &amp;quot;$1&amp;quot; -a -f &amp;quot;$1&amp;quot; ]; then&lt;br /&gt;
if [ &amp;quot;$(head -1 &amp;quot;$1&amp;quot; |cut -d';' -f5 |cut -d'&amp;quot;' -f2)&amp;quot; != &amp;quot;Hinweis&amp;quot; ]; then&lt;br /&gt;
  echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; scheint keine für dieses Script geeignete CSV-Datei zu sein\n\n&amp;quot;;exit 2;fi&lt;br /&gt;
else echo -e &amp;quot;\n\&amp;quot;$1\&amp;quot; ist keine lesbare Datei\n\n&amp;quot;; exit 3;fi&lt;br /&gt;
&lt;br /&gt;
awk -F';' '{ split($1,NAME,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($2,STADT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($3,LAND,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($4,BIT,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($5,BEMERK,&amp;quot;\&amp;quot;&amp;quot;);&lt;br /&gt;
             split($6,ADDR,&amp;quot;\&amp;quot;&amp;quot;) }&lt;br /&gt;
&lt;br /&gt;
     NR==1 { print &amp;quot;{| class=\&amp;quot;wikitable sortable\&amp;quot; border=\&amp;quot;1\&amp;quot; cellspacing=\&amp;quot;0\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot; |- style=\&amp;quot;background-color:#009ACD;\&amp;quot;&amp;quot;&lt;br /&gt;
             printf &amp;quot; !&amp;quot; NAME[2] &amp;quot;!!&amp;quot; STADT[2] &amp;quot;!!&amp;quot; LAND[2] &amp;quot;!!&amp;quot; BIT[2] &amp;quot;!!&amp;quot;&lt;br /&gt;
             print &amp;quot; class=\&amp;quot;unsortable\&amp;quot;| &amp;quot; BEMERK[2] &amp;quot;!!class=\&amp;quot;unsortable\&amp;quot;|&amp;quot; ADDR[2] }&lt;br /&gt;
&lt;br /&gt;
     NR!=1 { FARBE= &amp;quot;#FFCC00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;lt; 63  )  FARBE= &amp;quot;#FFFF00&amp;quot; ;&lt;br /&gt;
             if (BIT[1] == 0  )  FARBE= &amp;quot;#363636&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 93  )  FARBE= &amp;quot;#FF9900&amp;quot; ;&lt;br /&gt;
             if (BIT[1] &amp;gt; 128 )  FARBE= &amp;quot;#FF6600&amp;quot; ;&lt;br /&gt;
             print  &amp;quot;|- style=\&amp;quot;background-color:&amp;quot; FARBE &amp;quot;;\&amp;quot;&amp;quot;&lt;br /&gt;
             print &amp;quot;|&amp;quot;,NAME[2],&amp;quot;||&amp;quot;,STADT[2],&amp;quot;||&amp;quot;,LAND[2],&amp;quot;||align=\&amp;quot;center\&amp;quot; |&amp;quot;,BIT[1],&amp;quot;||&amp;quot;,BEMERK[2],&amp;quot;||&amp;quot;,ADDR[2]  }&lt;br /&gt;
&lt;br /&gt;
       END { print &amp;quot;|}&amp;quot;      }' &amp;quot;$1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erstellen einer Wiedergabeliste für kaffeine ===&lt;br /&gt;
&lt;br /&gt;
Folgendes Script erzeugt aus den Wikidaten eine Wiedergabeliste die direkt in kaffeine importiert werden kann.&lt;br /&gt;
Einfach das Script aufrufen und die Ausgabe in eine Datei zB &amp;quot;'''meine_liste.kaffeine'''&amp;quot; umleiten. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Author: robi@linux-club.de&lt;br /&gt;
# Version: 2, Last updated: Di 24. Mär 02:14:38 CET 2009&lt;br /&gt;
#----------------------------------------------------------------------&lt;br /&gt;
# Dieses Script holt über das Internet die Daten der Tabellen auf&lt;br /&gt;
# http://www.linupedia.org/opensuse/Radiosender[-1]  und erzeugt eine&lt;br /&gt;
# Wiedergabeliste für das Programm kaffeine .&lt;br /&gt;
# bei Option -1 oder -2 wird jeweils nur eine Seite ausgelesen,&lt;br /&gt;
# default und bei unklaren Optionen werden beide Seiten ausgelesen&lt;br /&gt;
#&lt;br /&gt;
# Aufruf:                ./script [ -1 | -2 ] &amp;gt; meine_liste.kaffeine&lt;br /&gt;
#&lt;br /&gt;
#---------------------------------------------------------------------&lt;br /&gt;
SEITE1=&amp;quot;http://www.linupedia.org/opensuse/Radiosender&amp;quot;&lt;br /&gt;
SEITE2=&amp;quot;http://www.linupedia.org/opensuse/Radiosender-1&amp;quot;&lt;br /&gt;
READ=&amp;quot;$SEITE1 $SEITE2&amp;quot;&lt;br /&gt;
if [ $# -eq 1 -a  &amp;quot;$1&amp;quot; = &amp;quot;-1&amp;quot; ] ;then READ=$SEITE1;&lt;br /&gt;
else if [ $# -eq 1 -a &amp;quot;$1&amp;quot; = &amp;quot;-2&amp;quot; ] ; then READ=$SEITE2; fi&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
wget -U &amp;quot;&amp;quot; $READ -O - 2&amp;gt;/dev/null | \&lt;br /&gt;
  awk '/^&amp;lt;table.*ikitable sortable/,/&amp;lt;\/table/ {print $0}' | \&lt;br /&gt;
  awk '/^&amp;lt;tr/,/&amp;lt;\/tr&amp;gt;/ {printf $0} ; /&amp;lt;\/tr&amp;gt;/ {print}'  |\&lt;br /&gt;
  sed 's#\(&amp;lt;[^&amp;gt;]*&amp;gt;\)#;#g' | \&lt;br /&gt;
  sed -ne 's# *;\{1,\} *#;#gp' | \&lt;br /&gt;
  awk -F';' 'BEGIN {OFS=&amp;quot;;&amp;quot;}&lt;br /&gt;
             NR==1 {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $5 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $7 &amp;quot;\&amp;quot;&amp;quot;}&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $2!=&amp;quot;Sender&amp;quot; {print &amp;quot;\&amp;quot;&amp;quot; $2 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $3 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; $4 &amp;quot;\&amp;quot;&amp;quot;,$5,&amp;quot;\&amp;quot;&amp;quot; $6 &amp;quot;\&amp;quot;&amp;quot;,&amp;quot;\&amp;quot;&amp;quot; ($8 == &amp;quot;&amp;quot; ? $7 : $8)&amp;quot;\&amp;quot;&amp;quot;}' |\&lt;br /&gt;
  awk -F';' 'BEGIN { print &amp;quot;&amp;lt;!DOCTYPE XMLPlaylist&amp;gt;\n&amp;lt;playlist client=\&amp;quot;kaffeine\&amp;quot; &amp;gt;&amp;quot; }&lt;br /&gt;
             NR!=1 &amp;amp;&amp;amp; $1!=&amp;quot;Sender&amp;quot; {&lt;br /&gt;
               TYPE=&amp;quot;&amp;quot;;&lt;br /&gt;
               if (match($6,/.*\.mp3\&amp;quot;$/)) TYPE=&amp;quot;audio/x-mp3&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wma\&amp;quot;$/)) TYPE=&amp;quot;audio/x-ms-wma&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.wmv\&amp;quot;$/)) TYPE=&amp;quot;video/x-ms-wmv&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.m3u\&amp;quot;$/)) TYPE=&amp;quot;audio/mpegurl&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ogg\&amp;quot;$/)) TYPE=&amp;quot;application/ogg&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\.ra\&amp;quot;$/))  TYPE=&amp;quot;audio/vnd.rn-realaudio&amp;quot; ;&lt;br /&gt;
               if (match($6,/.*\/\&amp;quot;$/))    TYPE=&amp;quot;inode/directory&amp;quot; ;&lt;br /&gt;
               if (TYPE==&amp;quot;&amp;quot;) TYPE=&amp;quot;application/octet-stream&amp;quot; ;&lt;br /&gt;
               print &amp;quot; &amp;lt;entry title=&amp;quot; $1, &amp;quot;mime=\&amp;quot;&amp;quot; TYPE &amp;quot;\&amp;quot; url=&amp;quot; $6, &amp;quot;/&amp;gt;&amp;quot;}&lt;br /&gt;
             END  {print &amp;quot;&amp;lt;/playlist&amp;gt;&amp;quot;} '&lt;br /&gt;
#-----------------END-------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise für das Ändern der Datentabelle ==&lt;br /&gt;
&lt;br /&gt;
* bei Verwendung der obrigen Scripte bitte darauf achten, dass ihr keine &amp;quot;falschen zusätzlichen Zeilenspünge mitkopiert. Das passiert z.B. wenn man die Standardausgabe des 2. Scriptes hier her kopieren würdet. Also die Ausgabe des Scriptes in eine Datei umleiten, diese Datei mit '''cat''' ausgeben und dann diese Konsolausgabe der Datei hier für die Änderungen im Wiki benutzen, dann sollte das Problem nicht auftreten.&lt;br /&gt;
&lt;br /&gt;
* Bitte nach Änderungen im Wiki die Vorschau benutzen und bitte genau überprüfen ob die Tabelle und eure neuen Daten auch wirklich ok sind, und wirklich nur dann abspeichern.&lt;br /&gt;
&lt;br /&gt;
* Eine Datenzeile der Wikitabelle umfasst immer genau 2 zusammengehörende Zeilen beim Editieren der Tabelle:&lt;br /&gt;
 |- style=&amp;quot;background-color:#FFFF00;&amp;quot;&lt;br /&gt;
 | Bayern 1 || München || Deutschland ||align=&amp;quot;center&amp;quot; | 48 || - || mms://gffstream-w1b.wm.llnwd.net/gffstream_w1b&lt;br /&gt;
: In der ersten Zeile wird die Hintergrundfarbe gesetzt, das macht das obrige Script automatisch, in der 2. Zeile stehen dann die Daten.&lt;br /&gt;
&lt;br /&gt;
* Sollte ein Sender einmal nicht mehr senden, und keine neue Streamadresse bekannt sein, ist vorgesehen bei der Datenrate eine '''0'''  (Null) einzutragen, und bei der Farbe dazu den Wert &amp;quot;'''#363636'''&amp;quot; . Damit wird die entsprechende Zeile dunkelgrau  und so als z.Z. nicht verfügbar markiert. Erfahrungsgemäß können Sender wegen technischen Problemen über Stunden oder vor allem am Wochenende auch etwas länger offline sein. Bitte die Markierung erst durchführen wenn die Sender über mehrere Tage nicht verfügbar sind.&lt;br /&gt;
&lt;br /&gt;
* Vermeidet in der Tabelle Sonderzeichen. Es ist bekannt das  '''&amp;quot;;&amp;quot;''' in der URL und '''&amp;quot;&amp;amp;&amp;quot;''' und '''&amp;quot;%&amp;quot;''' im Sendernamen Probleme beim Ex- und Import der Daten mit obrigen Scripten bzw bei Import in kaffeine erzeugen. &lt;br /&gt;
&lt;br /&gt;
* Achtet darauf, dass bei einer Adresse wie zum Beispiel http://mp3.ht-stream.net/;04026677086949stream.nsv die temporäre Ergänzung der Stream-Adresse weggelassen wird. Das Beispiel ist also einzutragen als http://mp3.ht-stream.net/ &lt;br /&gt;
&lt;br /&gt;
* Bitte in die Felder der Tabelle (außer der Adresse natürlich) keine Links oder Webadressen eintragen, sondern nur Text.&lt;br /&gt;
&lt;br /&gt;
* Haltet euch an das Tabellenformat, sollten Änderungen am Format notwendig werden, dann können wird darüber gerne diskutieren, und dann können gegebenenfalls auch parallel dazu dann die Scripte an das neue Format angepasst werden.&lt;br /&gt;
&lt;br /&gt;
* Fällt euch auf, das einzelnen Sender nicht mehr senden und ihr euch nicht an die Tabelle traut, dann könnt ihr das auch gerne hier im Anschluss auf der Diskussionseite melden, damit der Nächste das prüfen und gegebenenfalls dann abändern kann. &lt;br /&gt;
&lt;br /&gt;
* Sollte es dennoch Editierunfälle, Probleme, Unklarheiten, Verständnissprobleme oder sonstige irgendwie gearteter Probleme mit dieser Wikiseite geben, bitte im Wikiforum melden, da wird man euch schnellstmöglich helfen.&lt;br /&gt;
&lt;br /&gt;
* Denkt daran: einige haben in diese Seite eine ganze Menge Zeit investiert, und davon sollen auch morgen noch möglichst viele Wikileser ihren Nutzen ziehen können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dann allseits guten Radioempfang [[Benutzer:Robi|Robi]] 22:01, 5. Dez. 2008 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Neuer Sender ==&lt;br /&gt;
Ich trau' mich nach all diesen Hinweisen nicht ...&lt;br /&gt;
* Radio Okerwelle (Lokalsender Braunschweig) http://www.okerwelle.de/typo/ Stream von &amp;lt;http://radiostream.de/stream/35575.m3u&amp;gt; / &amp;lt;http://dus.radiostream.de:35575&amp;gt; -- [[Benutzer:RainerBi|RainerBi]] 10:13, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:: Danke für die Empfehlung, ich dachte schon weil bisher so wenig Fragen und Rückmeldungen gekommen sind, die Seite ist noch nirgens so richtig angekommen. ;-) &amp;lt;br&amp;gt;&lt;br /&gt;
:: [[Benutzer:Albschrat|Albschrat]] wird den Sender sicherlich bei seiner nächsten Aktualisierung mit einpflegen.  [[Benutzer:Robi|Robi]] 17:08, 6. Apr. 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Nur Sprache ==&lt;br /&gt;
&lt;br /&gt;
Anregung:  Eine Seite die nur streaming links to SPRACHE (Speech, talk) sendern hat.&lt;br /&gt;
Planet Chomsky:&lt;br /&gt;
 http://Hee-La.serverroom.us:4048/&lt;br /&gt;
BBC World Propaganda&lt;br /&gt;
 mms://livewmstream-ws.bbc.co.uk.edgestreams.net/reflector:43021&lt;br /&gt;
&lt;br /&gt;
Viele alte Leute koennen Nachts nicht schlafen, und wollen keine musik.&lt;br /&gt;
Waere schoen, wenn man speech-only Sender separat haette. English und Deutsch gemischt, kein problem, denn wer Radio &amp;quot;zum Denken&amp;quot; hoert kann beides.&lt;br /&gt;
&lt;br /&gt;
:: Besten Dank für die Anregung.&lt;br /&gt;
:: Solange wir nur 5 Sender mit reiner Sprache haben, sind diese als Soforthilfe in der Tabelle mit »Nur Sprache - keine Musik« markiert. [[Benutzer:Albschrat|Albschrat]] 20:38, 1. Juni 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Geänderte Sender ==&lt;br /&gt;
&lt;br /&gt;
Ich möchte auch nichts falsch, aber doch auf eine Änderung aufmerksam machen,finde ich doch diesen Artikel besonders wertvoll:&lt;br /&gt;
&lt;br /&gt;
Neue '''NDR'''-Streams &amp;quot;ndrstream.ic.llnwd.net/ usw.&amp;quot;, die sich vor wenigen Tagen geändert haben, sollten von erfahreneren Benutzern hier &lt;br /&gt;
eingepflegt werden:&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1niedersachsen_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1wellenord_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr1radiomv_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr903_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndr2_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_n-joy_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrinfo_spezial_hi_mp3&lt;br /&gt;
&lt;br /&gt;
http://ndrstream.ic.llnwd.net/stream/ndrstream_ndrkultur_hi_mp3&lt;br /&gt;
&lt;br /&gt;
--[[Benutzer:Strumpell|Strumpell]] 06:55, 17. Okt. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
Besten Dank für den Hinweis und Deine Unterstützung! Die Sender sind in der aktuellen Tabelle enthalten. [[Benutzer:albschrat|albschrat]] 16:32, 5. Dez. 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Farben?==&lt;br /&gt;
was bedeuten die und warum steht nichts darüber im Artikel? --[[Benutzer:Itu|Itu]] 21:12, 17. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Die Farben sind abhängig vom der Bitrate des Senders und somit ein Synonym für die Qualität dieses Radiosenders, vorausgesetzt man kann auch die entsprechende Datenmenge wirklich über das Internet störungsfrei ziehen. Die Gelben Felder sind somit niedrige Qualität die entsprechende dem Rotanteil der Farbe schrittweise zunimmt. Graue Felder sind für Sender gedacht die seit einiger Zeit oder vorübergehend offline sind.&lt;br /&gt;
&lt;br /&gt;
:: Wenn ich mich nicht ganz täusche hatte ich die Auswahl der Farbe damals in das Script fest eingebaut mit dem Albschrat hoffentlich noch regelmäßig diese beiden Wiki Seite wartet. Sie werden somit automatisch entsprechende der Bitrate gesetzt wenn Albschrat das nächste mal wieder seine Datenbank und das Wiki mit Hilfe der Scripte aktualsisiert.&lt;br /&gt;
[[Benutzer:Robi|Robi]] 12:31, 18. Sep. 2011 (UTC)&lt;br /&gt;
:::Müsste man dann noch in den Artikel schreiben. --[[Benutzer:Itu|Itu]] 15:20, 18. Sep. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== WDR Streamadressen ==&lt;br /&gt;
http://webradio.wdr.de : der WDR hat eine Seite mit den Adressen aller seiner Streams. --[[Benutzer:Wikinaut|Wikinaut]] 09:27, 20. Nov. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;div style=&amp;quot;font-size:30px; color: #f00&amp;quot; &amp;gt;Betreuung der Senderliste gesucht &amp;lt;/div&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Wegen eines nebenberuflichen Studiums bin ich seit geraumer Zeit vollkommen »Land unter«. Der Zustand wird sich absehbar in den nächsten 3 Jahren nicht ändern. Deshalb muss ich die Betreuung der Seite abgeben. Für Tipps stehe ich natürlich jederzeit gerne zur Verfügung. [[Benutzer:albschrat|albschrat]] 10:31, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Ich habs mal mit ins Forum übernommen, dort wird das eventuell eht gelesen [[Benutzer:Robi|Robi]] 13:38, 30. Dez. 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Kleines HilfsTool um die Verfügbarkeit der Stream zu prüfen ==&lt;br /&gt;
&lt;br /&gt;
Das Tool geht jede URL der List durch und konnected und spielt den Stream für 10 Sekunden ab. Damit kann man relative leicht prüfen, ob die Streams noch verfügbar sind. Bei den ca 500 URLs dauert das ca 90 Minuten.&lt;br /&gt;
&lt;br /&gt;
Voraussetzung: robis Script um die URLs und Beschreibungen aus der WikiSeite zu extrahieren&lt;br /&gt;
Das tool ist ein Pythonscript und hat folgenden Abhänigkeiten: wxpython und python-gstreamer. Diese müssen vor Ausführunge installiert sein. Sie sind auf den meisten Distros verfügbar.&lt;br /&gt;
&lt;br /&gt;
Ausführung: Download von robis Script und Aufruf und Redirection in lcRadio.lst. Danach Aufruf von RadioStreamer. Danach kann man den StartKanel wählen und alle Streams durchhören.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=NonRaid_zu_(software)Raid1_SuSE_10_1&amp;diff=27751</id>
		<title>NonRaid zu (software)Raid1 SuSE 10 1</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=NonRaid_zu_(software)Raid1_SuSE_10_1&amp;diff=27751"/>
		<updated>2010-06-13T14:40:19Z</updated>

		<summary type="html">&lt;p&gt;Framp: Test auf openSuSE 11.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oftmals entscheidet man sich nicht schon bei der Installation dazu, auf ein [[RAID allgemein#Softwareraid|Software-RAID]] zu installieren, um z.B. erst ein neues System zu testen bevor das alte entfernet wird. Eine Neuinstallation ist auch nicht immer wünschenswert, wenn bereits Arbeit in das neue System geflossen ist.&lt;br /&gt;
&lt;br /&gt;
Ein schon laufendes System später auf RAID-1 umzustellen ist duchaus möglich, benötigt aber eine Menge Handarbeit. Eine andere Möglichkeit ist, über ein komplettes System-Backup zu gehen, man läuft aber dennoch Gefahr, in die Konfigurationsfallen zu tappen.&lt;br /&gt;
&lt;br /&gt;
Leider ist es so, dass die meisten HOWTOs zu diesem Thema wegen irgendwelcher Kleinigkeiten, Versionsänderungen an diversen Programmen oder Scripten, oder Suse-Spezialitäten nicht auf einem SuSE 10.1 und SCSI-Devices funktionieren, desshalb habe ich mal meine Erfahrungen zu einem HOWTO zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Box Test|| &lt;br /&gt;
* SUSE Linux 10.1 Ausgiebige Tests mit den ersten Versionen dieses Howtos&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  10.2 Prinzipielles Funktionieren des Howto&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  10.3 Änderungen und Ergänzungen führten zur aktuellen Version&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  11.0 Prinzipielles Funktionieren des Howto&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  11.1 Kurztest&lt;br /&gt;
* open SUSE  11.2 Test und ein paar kleinere Updates&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Box Hinweis||Jedes Linuxsystem ist anders konfiguriert, es müssen also evtl. einige Optionen innerhalb der Befehle an jedes System speziell angepasst werden statt dass sie direkt kopiert oder abgetippt werden können. &lt;br /&gt;
Es ist erforderlich, einige Erfahrungen im Umgang als root auf einer Shell unter Linux allgemein zu haben, sowie grundlegende Kenntnisse über die '''fstab''' und GRUBs '''menu.lst'''. Erfahrungen mit '''mdadm''' können keinesfalls schaden sind jedoch nicht zwingend erforderlich. Fundamentale Hinweise, wie etwa, das man vor manuellen Änderungen an Konfigurationsdateien eine Sicherheitskopie anlegen könnte, wird man hier vergeblich suchen. Kurzum: '''dieses Howto richtet sich an User die schon etwas Erfahrung mit LINUX und SUSE gesammelt haben''' }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration des Ausgangssystems ==&lt;br /&gt;
&lt;br /&gt;
Die bestehende Konfiguration wie sie sich vor dem Anlegen des Raids auf dem Rechner darstellt, mit dem hier im Howto die Ausgaben und Befehle enthalten sind :&lt;br /&gt;
 automat:/proc # fdisk -l&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sda: 36.7 GB, 36703932928 bytes&lt;br /&gt;
 64 heads, 32 sectors/track, 35003 cylinders&lt;br /&gt;
 Units = cylinders of 2048 * 512 = 1048576 bytes&lt;br /&gt;
 &lt;br /&gt;
    Device Boot  Start    End    Blocks  Id  System&lt;br /&gt;
 /dev/sda1   *       1     65     66544  83  Linux&lt;br /&gt;
 /dev/sda2          66   5186   5243904  83  Linux&lt;br /&gt;
 /dev/sda3        5187  25667  20972544  83  Linux&lt;br /&gt;
 /dev/sda4       25668  35003   9560064   f  W95 Ext'd (LBA)&lt;br /&gt;
 /dev/sda5       25668  27716   2098160  82  Linux swap / Solaris&lt;br /&gt;
 /dev/sda6       27717  35003   7461872  83  Linux &lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sdb: 36.7 GB, 36703932928 bytes&lt;br /&gt;
 64 heads, 32 sectors/track, 35003 cylinders&lt;br /&gt;
 Units = cylinders of 2048 * 512 = 1048576 bytes&lt;br /&gt;
 &lt;br /&gt;
    Device Boot  Start    End    Blocks  Id  System&lt;br /&gt;
 /dev/sdb1           1  35003  35843056  83  Linux &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 automat:/proc # cat /etc/fstab&lt;br /&gt;
 /dev/sda2  /              ext3    acl,user_xattr    1 1&lt;br /&gt;
 /dev/sda5  swap           swap    pri=42            0 0&lt;br /&gt;
 /dev/sda1  /boot          ext2    acl,user_xattr    1 2&lt;br /&gt;
 /dev/sda3  /home          ext3    acl,user_xattr    1 2&lt;br /&gt;
 /dev/sda6  /data          ext2    auto,ro           1 2&lt;br /&gt;
 devpts     /dev/pts       devpts  mode=0620,gid=5   0 0&lt;br /&gt;
 proc       /proc          proc    defaults          0 0&lt;br /&gt;
 usbfs      /proc/bus/usb  usbfs   noauto            0 0&lt;br /&gt;
 sysfs      /sys           sysfs   noauto            0 0&lt;br /&gt;
 /dev/fd0   /media/floppy  auto    noauto,user,sync  0 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt also zwei gleiche Platten, wovon '''sdb''' derzeit nicht in Benutzung ist. Vorhanden sind auch mehrere Linux-Filesysteme ( '''/home''' , ''' /data''' ), auch ''' /boot ''' ist ein separates Filesystem. &lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||Das Howto ist so geschrieben, dass es egal ist, ob das '''/boot-Verzeichnis''' auf einer separaten Partition (wie hier im Beispiel), oder mit auf der Rootpartition ist, es ist beides getestet. Die Hinweise bei der Konfiguration vor allem bei Grub sollte man aber beachten, hier ergebem sich kleine Unterschiede zwischen diesen beiden Konfigurationen}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anlegen einer identischen Partitionstabelle ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Zuerst klonen wir die gesamte Partionstabelle von '''sda''' nach '''sdb''':&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # sfdisk -d /dev/sda  &amp;gt; /tmp/sda.txt&lt;br /&gt;
 automat:/proc # sfdisk /dev/sdb &amp;lt; /tmp/sda.txt&lt;br /&gt;
 Checking that no-one is using this disk right now ...&lt;br /&gt;
 OK&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sdb: 35003 cylinders, 64 heads, 32 sectors/track&lt;br /&gt;
 Old situation:&lt;br /&gt;
 Units = cylinders of 1048576 bytes, blocks of 1024 bytes, counting from 0&lt;br /&gt;
 &lt;br /&gt;
    Device Boot Start     End  #cyls    #blocks  Id  System&lt;br /&gt;
 /dev/sdb1          0+  35002  35003-  35843056  83  Linux&lt;br /&gt;
 /dev/sdb2          0       -      0          0   0  Empty&lt;br /&gt;
 /dev/sdb3          0       -      0          0   0  Empty&lt;br /&gt;
 /dev/sdb4          0       -      0          0   0  Empty&lt;br /&gt;
 New situation:&lt;br /&gt;
 Units = sectors of 512 bytes, counting from 0&lt;br /&gt;
 &lt;br /&gt;
    Device Boot    Start       End  #sectors  Id  System&lt;br /&gt;
 /dev/sdb1   *        32    133119    133088  83  Linux&lt;br /&gt;
 /dev/sdb2        133120  10620927  10487808  83  Linux&lt;br /&gt;
 /dev/sdb3      10620928  52566015  41945088  83  Linux&lt;br /&gt;
 /dev/sdb4      52566016  71686143  19120128   f  W95 Ext'd (LBA)&lt;br /&gt;
 /dev/sdb5      52566048  56762367    4196320  82  Linux swap / Solaris&lt;br /&gt;
 /dev/sdb6      56762400  71686143   14923744  83  Linux&lt;br /&gt;
 Successfully wrote the new partition table&lt;br /&gt;
 &lt;br /&gt;
 Re-reading the partition table ...&lt;br /&gt;
 &lt;br /&gt;
 If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)&lt;br /&gt;
 to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1&lt;br /&gt;
 (See fdisk(8).)&lt;br /&gt;
&lt;br /&gt;
Wer KDE offen hat: dort gehen eventuell ein paar Fenster auf, dass neue Devices gefunden wurden. Diese sind mit &amp;quot;Abbrechen&amp;quot; zu schließen.&lt;br /&gt;
'''fdisk -l''' zeigt nun, dass alle Partitionen auf '''sda''' und '''sdb''' gleich sind. Da '''sdb''' z.Zt. nicht in Benutzung ist, wird kein Neustart benötigt. Eventuell (insbesondere nachdem die Platte vorher mit Nullen überschrieben worden ist) könnte hier eine Fehlermeldung in der Art &amp;quot;DOS Kompatibilitäsproblem&amp;quot; kommen.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall die Option '''--force''' probieren, weitere Infos gibt es auch in einem [[Partitionstabelle sichern und wiederherstellen|eigenem Howto]] zu diesem Thema. Wenn wir die komplette Platte spiegeln sollte jedenfalls unser Ziel auch eine identische Partitionstabelle auf beiden Platten sein. Sollten hier Probleme auftauchen, dass die Partitionstabellen nicht gleich aussehen dann bitte [[Partitionstabelle sichern und wiederherstellen|hier]] nachlesen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Raid für das zukünftige Rootfilesystem erstellen ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Wir beginnen zunächst damit das Root-Filesystem auf einem RAID-Device aufzubauen und dieses zum Laufen zu bekommen.&lt;br /&gt;
'''sda''' wird vorläufig nicht verändert, somit bleibt das alte LINUX nach wie vor noch erhalten und weiter bootfähig. &lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 sollten wir an dieser Stelle unbedingt einmal überprüfen ob das Initscript '''boot.md''' beim Booten gestartet wird, ansonsten sollten wir das jetzt hier entsprechend einrichten, bevor uns der Rechner bei einem Reboot ohne konfigurierte Raid-Device hängen bleibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Testen ob das Script '''boot.md''' beim Start ausgeführt wird, reicht folgender Befehl&lt;br /&gt;
 ls /etc/init.d/boot.d/*boot.md &lt;br /&gt;
kommt hier als Antwort &lt;br /&gt;
 ls: cannot access /etc/init.d/boot.d/*boot.md: No such file or directory&lt;br /&gt;
dann ist folgender Befehl auszuführen damit das Script dann in Zukunft wirklich beim Booten nach Raiddevices sucht und diese startet. &lt;br /&gt;
 insserv /etc/init.d/boot.md&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So jetzt wird es ernst und zuerst erstellen wir ein RAID-1-Device für unser zukünftig gespiegeltes Rootfilesystem mit einer fehlenden Komponente mit '''sdb2''' als einziger aktive Komponente.&lt;br /&gt;
Zunächst wird die Partitions-ID von '''sdb2''' geändert: ''(das ist zwar nicht zwingend erforderlich, da es unter Linux von keinerlei Programm wirklich ausgewertet wird, einzig ein im Kernel fest eingebundenes Raidmodul würde dieses Flag nutzen, und wer hat das schon,  aber diese Kennzeichnung erleichtert uns später den Überblick zu bewaren, was schon konfiguriert ist und was noch nicht)''&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # sfdisk --change-id /dev/sdb 2 fd&lt;br /&gt;
 Done&lt;br /&gt;
 automat:/proc # sfdisk -R /dev/sdb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eventuell tauchen unter KDE jetzt wieder Fenster auf, die mit Abbruch zu schließen sind.&lt;br /&gt;
Ein Blick auf &amp;lt;code&amp;gt;fdisk -l&amp;lt;/code&amp;gt; zeigt nun, dass bei sdb2 wirklich &amp;lt;code&amp;gt;fd&amp;lt;/code&amp;gt; als ID eingetragen ist.&lt;br /&gt;
Danach wird das RAID-Array mit 2 Komponenten erstellt, wovon eine als fehlend markiert wird:&lt;br /&gt;
Das wird unser zukünftiges Rootfilesystem aufnehmen.&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mdadm -C /dev/md0 -b internal -e 1.0 -l1 -n2 missing /dev/sdb2&lt;br /&gt;
 mdadm: /dev/sdb2 appears to be part of a raid array:&lt;br /&gt;
     level=raid1 devices=2 ctime=Sat Aug 19 21:27:47 2006&lt;br /&gt;
 Continue creating array? y&lt;br /&gt;
 mdadm: array /dev/md0 started.&lt;br /&gt;
&lt;br /&gt;
Die Nachfrage nach &amp;quot;appears to be part of a raid array&amp;quot; kann daraus resultieren, wenn die Partition bereits einen MDRAID-Superblock enthielt (z.B. von vorhergehenden Tests mit mdadm). Den Erfolg können wir wie folgt überprüfen:&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1]&lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und/oder&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # mdadm -D /dev/md0&lt;br /&gt;
 /dev/md0:&lt;br /&gt;
         Version : 01.00.03&lt;br /&gt;
   Creation Time : Sat Aug 19 21:27:47 2006&lt;br /&gt;
      Raid Level : raid1&lt;br /&gt;
      Array Size : 5243840 (5.00 GiB 5.37 GB)&lt;br /&gt;
     Device Size : 5243840 (5.00 GiB 5.37 GB)&lt;br /&gt;
    Raid Devices : 2&lt;br /&gt;
   Total Devices : 1&lt;br /&gt;
 Preferred Minor : 0&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Sat Aug 19 21:27:47 2006&lt;br /&gt;
           State : clean, degraded&lt;br /&gt;
  Active Devices : 1&lt;br /&gt;
 Working Devices : 1&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
            UUID : edf2a03f:8371ba02:b75cfbef:b1415c61&lt;br /&gt;
          Events : 0.1&lt;br /&gt;
 &lt;br /&gt;
 Number  Major  Minor  RaidDevice State&lt;br /&gt;
    0      0       0       0      removed&lt;br /&gt;
    1      8      18       1      active sync  /dev/sdb2 &lt;br /&gt;
&lt;br /&gt;
Wir tragen jetzt unser konfiguriertes RAID-Device in die '''mdadm.conf''' ein. Es ist erforderlich, eine DEVICES-Zeile in '''mdadm.conf''' einzufügen (sofern dies noch nicht geschehen ist), damit [http://linux.die.net/man/8/mdadm mdadm] beim Booten die dort gelisteten Blockgeräte überhaupt für das aktivieren von Arrays in Betracht zieht. Sollte es also diese Datei nicht geben oder noch keinen passenden DEVICES-Eintrag geben, ist dieser hinzuzufügen:&lt;br /&gt;
&lt;br /&gt;
 automat:/ # echo &amp;quot;DEVICE /dev/sd[a-z][0-9]&amp;quot; &amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
Der folgende Befehl scannt nun die /dev/md*-Geräte durch und trägt ihre Eigenschaften in '''mdadm.conf''' ein:&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mdadm --detail --scan &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
 automat:/ # cat /etc/mdadm.conf&lt;br /&gt;
 DEVICE /dev/sd[a-z][0-9]&lt;br /&gt;
 ARRAY /dev/md0 level=raid1 num-devices=2 UUID=edf2a03f:8371ba02:b75cfbef:b1415c61&lt;br /&gt;
&lt;br /&gt;
Nächster Punkt ist, das Filesystem auf '''/dev/md0''' anzulegen, temporär zu mounten und die originalen Dateien unseres Rootfilesystems dorthin zu kopieren.&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mkfs.ext3 -j /dev/md0&lt;br /&gt;
 ...&lt;br /&gt;
 ...&lt;br /&gt;
 automat:/ # mount /dev/md0 /mnt&lt;br /&gt;
 automat:/ # rsync -AHPSXavx / /mnt/&lt;br /&gt;
&lt;br /&gt;
Der abschließende Slash bei '''/mnt/''' ist für das gewünschten Ziel-Layout unbedingt erforderlich.&lt;br /&gt;
&lt;br /&gt;
Vorteil von [http://linux.die.net/man/1/rsync rsync] gegenüber anderen Programmen ist ACLs (''' -A ''') und Xattrs (''' -X ''') übertragen werden -- dies ist insbesondere bei Samba-Systemen wichtig. (Die Option ''' -A ''' ist vor SUSE Linux 10.1 nicht vorhanden; die Option ''' -X ''' nicht vor openSUSE 10.2.) rsync bietet darüber hinaus eine Statusanzeige und kann abgebrochene Transfers wieder aufnehmen. Sollte der Transfer allgemein länger dauern, so empfiehlt es sich nach Abschluss nochmals rsync laufen zu lassen, um Dateien, die während des 1. Versuchs geändert wurden, auch noch zu übertragen. Man ruft hierzu rsync mit gleichen Parametern und zusätzlich ''' --delete-during ''' (sollte die Option nicht bekannt sein, ist auf ''' --delete ''' auszuweichen) aufzurufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt ändern wir auf dem &amp;quot;neuem&amp;quot; Rootfilesystem die '''etc/fstab''' &lt;br /&gt;
&lt;br /&gt;
 automat:/ # cd /mnt/etc&lt;br /&gt;
 automat:/mnt/etc # vi fstab&lt;br /&gt;
 /dev/sda2  /  ext3  acl,user_xattr  1 1  (dieses ist der alte Zeile)&lt;br /&gt;
 /dev/md0   /  ext3  acl,user_xattr  1 1  (das ist geänderte Zeile) &lt;br /&gt;
&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 und wahrscheinlich nachfolgenden Versionen wird per default in der fstab nicht über den Deviceknoten direkt, sondern über die Disk-by-Id angesprochen. Dieser Link verweist dann seinerseits auf den Geräteknoten. Hier ein Beispiel wie diese Änderung dann unter 10.3 prinzipell aussehen könnte.&lt;br /&gt;
&lt;br /&gt;
erste Zeile auskommentiert ist das Orginal und 2 Zeile der neue Eintrag für das Raid &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/dev/disk/by-id/scsi-SSEAGATE_ST336704LC_3CD27AAG00002206F766-part2 /    ext3      acl,user_xattr     1 1&lt;br /&gt;
/dev/md0 /                    ext3       acl,user_xattr        1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Filesystem wird dann wieder umount'ed  und die '''/boot/grub/menu.lst''' angepasst: &lt;br /&gt;
&lt;br /&gt;
 automat:/mnt/etc # cd /&lt;br /&gt;
 automat:/ # umount /mnt&lt;br /&gt;
 automat:/ # cd /boot/grub&lt;br /&gt;
 automat:/boot/grub # vi menu.lst&lt;br /&gt;
&lt;br /&gt;
Ein neuer Eintrag auf Basis des alten wird eingefügt, wir ändern aber das '''root=''' Argument so, dass nun '''md0''' als neues Root-Filesystem dienen soll. Der normale Booteintrag bleibt zunächst als default bestehen und über ihn kann vorläufig noch das alte System gebootet werden:&lt;br /&gt;
&lt;br /&gt;
 #(normaler Booteintrag bleibt stehen)&lt;br /&gt;
 ###Don't change this comment - YaST2 identifier: Original name: linux###&lt;br /&gt;
 title SUSE Linux 10.1&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel /vmlinuz root=/dev/sda2 vga=0x314 acpi=off resume=/dev/sda5 splash=silent  showopts&lt;br /&gt;
     initrd /initrd&lt;br /&gt;
 #(nachfolgender Booteintrag kommt neu hinzu)&lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel /vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/sda5 splash=silent  showopts&lt;br /&gt;
     initrd /initrd &lt;br /&gt;
&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 hier ebenfals das Problem mit der Disk-by-ID. Hier ein Beispiel wie diese Änderung dann unter 10.3 prinzipell aussehen müsste.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###Don't change this comment - YaST2 identifier: Original name: linux###&lt;br /&gt;
title openSUSE 10.3 - 2.6.22.17-0.1&lt;br /&gt;
    root (hd0,1)&lt;br /&gt;
    kernel /boot/vmlinuz-2.6.22.17-0.1-default root=/dev/disk/by-id/scsi-SSEAGATE_ST336704LC_3CD27AAG00002206F766-part2 vga=0x317 \&lt;br /&gt;
acpi=off   resume=/dev/sda1 splash=silent showopts&lt;br /&gt;
    initrd /boot/initrd-2.6.22.17-0.1-default&lt;br /&gt;
&lt;br /&gt;
###Don't change this comment - YaST2 identifier: Original name: RAID###&lt;br /&gt;
title RAID 10.3 - 2.6.22.17-0.1&lt;br /&gt;
    root (hd0,1)&lt;br /&gt;
    kernel /boot/vmlinuz-2.6.22.17-0.1-default root=/dev/md0 vga=0x317 acpi=off resume=/dev/sda1 splash=silent showopts&lt;br /&gt;
    initrd /boot/initrd-2.6.22.17-0.1-default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss muss noch eine neue '''initrd''' mit den Informationen aus '''mdadm.conf''' und RAID-Unterstützung erstellt werden. Werden hierzu intern weiter Infos über das System benötigt, werden sie von den Scripten von '''mkinitrd''' automatisch selbst gesucht. Es reichen hier die Optionen Modul md und Rootfilesystem /dev/md0&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mkinitrd -f md -d /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Bei Erfolg sollte am Ende irgend etwas von einer Blockanzahl stehen. Eine Warnung unter 10.3&lt;br /&gt;
 WARNING: GRUB::GrubPath2UnixPath: Path /boot/grub/menu.lst in UNIX form, not modifying it&lt;br /&gt;
kann erst einmal ignoriert werden, sie kommt scheinbar durch das kopieren und teilweisen Veränderung eines automatisch erstellten Eintrags und wegen der bevorzugten DISK-by-ID Einstellung von 10.3 die wir hier nicht strikt befolgt haben. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. Teil fertig.''' wir können rebooten und testen, ob der neu angelegte Menüeintrag in GRUB funktioniert und das RAID1-Rootdevice sauber bootet.&lt;br /&gt;
Sollte das nicht funktionieren, so kann man mittels originalem Booteintrag ohne RAID das alte System booten. Wir booten also nach wie vor jetzt noch von der orginalen Platte und aus dem darauf befindlichen /boot-Verzeichnis. Die einzige Änderung, wir binden als Rootdevice unser eben erstelltes (halbes) Raid1 ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anlegen der restlichen Raiddevices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist das System wieder oben, prüfen wir ob alles entsprechend funktioniert hat.&lt;br /&gt;
&lt;br /&gt;
 automat:~ # mount&lt;br /&gt;
 /dev/md0 on / type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 debugfs on /sys/kernel/debug type debugfs (rw)&lt;br /&gt;
 udev on /dev type tmpfs (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw,mode=0620,gid=5)&lt;br /&gt;
 /dev/sda1 on /boot type ext2 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/sda3 on /home type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/sda6 on /data type ext2 (ro)&lt;br /&gt;
 securityfs on /sys/kernel/security type securityfs (rw)&lt;br /&gt;
 &lt;br /&gt;
 automat:~ # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war der schwierige Teil der Arbeit, ab hier wird es etwas einfacher.&lt;br /&gt;
Nach gleicher Prozedur werden jetzt die restlichen RAID1-Devices angelegt, ohne '''sda''' zu verändern.&lt;br /&gt;
&lt;br /&gt;
{{Kasten rot|Hier müssen wir jetzt allerdings besonders gut aufpassen, dass wir nichts durcheinander bringen, am besten man schreibt sich vorher auf, welches alte Device mit welchem Filesystemtype auf welchem Mountpoint welche Raid-Nummer bekommen soll. Entsprechend der unterschiedlichen Voraussetzungen vor dem Spiegeln können hier die Befehle dazu von den hier angegebenen Beispiel durchaus etwas stärker abweichen.}} &lt;br /&gt;
  &lt;br /&gt;
Wir ändern als nächstes alle anderen Partitions-IDs auf sdb:&lt;br /&gt;
&lt;br /&gt;
 sfdisk --change-id /dev/sdb 1 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 3 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 5 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 6 fd&lt;br /&gt;
&lt;br /&gt;
Als nächstes legen wir die restlichen neuen RAID-Device mit auch jeweils einer fehlenden Komponente an:&lt;br /&gt;
&lt;br /&gt;
 mdadm -C /dev/md1 -b internal -e1.0 -l1 -n2  missing /dev/sdb1&lt;br /&gt;
 mdadm -C /dev/md2 -b internal -e1.0 -l1 -n2  missing /dev/sdb5&lt;br /&gt;
 mdadm -C /dev/md3 -b internal -e1.0 -l1 -n2  missing /dev/sdb3&lt;br /&gt;
 mdadm -C /dev/md4 -b internal -e1.0 -l1 -n2  missing /dev/sdb6&lt;br /&gt;
 &lt;br /&gt;
 automat:~ # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md4 : active raid1 sdb6[1]&lt;br /&gt;
       7461760 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md3 : active raid1 sdb3[1]&lt;br /&gt;
       20972480 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md2 : active raid1 sdb5[1]&lt;br /&gt;
       2098048 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md1 : active raid1 sdb1[1]&lt;br /&gt;
       66432 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach müssen die neuen RAID-Devices in der '''mdadm.conf''' eingetragen werden. Am einfachsten, indem wir diese noch einmal ganz neu erstellen lassen (DEVICE-Zeile vorher wieder einfügen):&lt;br /&gt;
&lt;br /&gt;
 automat:/ # echo &amp;quot;DEVICE /dev/sd[a-z][0-9]&amp;quot; &amp;gt; /etc/mdadm.conf&lt;br /&gt;
 automat:/ # mdadm --detail --scan &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
jetzt können wir die Filesysteme auf den neuen Devices anlegen und die Daten dorthin kopieren, ''der Notiz-Zettel hilft hier sicher ;-)''&lt;br /&gt;
&lt;br /&gt;
'''Zwischenbemerkung:''' Wir spiegeln hier auch unseren Swap, (auch wenn sich da die Geister wieder streiten und es dazu durchaus geteilte Meinung gibt), aber nur mit einem gespiegeltem Swap kann man auch in einem laufenden Betrieb einen total-Plattenausfall überleben, deshalb müssen wir natürlich auch das &amp;quot;Swapfilesystem&amp;quot;  neu anlegen.&lt;br /&gt;
&lt;br /&gt;
 mkswap /dev/md2&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
 mkfs.ext3 -j /dev/md3&lt;br /&gt;
 mkfs.ext2 /dev/md4&lt;br /&gt;
&lt;br /&gt;
Nach dem Anlegen der Filesysteme wird jedes neue Filesystem temporär gemountet und die entsprechenden Daten dorthinein kopiert. Zum Kopieren gibt es die verschiedensten Möglichkeiten angefangen von [http://linux.die.net/man/1/cp cp], über eine ganze Anzahl von Backup- und Archivierungstools ist hier vieles möglich, es sind jedoch durchweg alles Befehle die eine ganzen Reihe von Optionen benötigen, damit auch alle Dateien wirklich mit den richtigen Eigenschaften kopiert werden. In diesem Beispiel benutzen wird [http://www.bellevuelinux.org/man/cpio.1.html cpio] dazu. Das kopiert allerdings so hier nur die Standard Zugriffrechte, was für Otto den Normallinuxer und das normale Linux Betriebssystem auch ausreicht, in einigen speziellen Fällen und Datenfilesystemen wird es jedoch nicht ganz ausreichend sein.&amp;lt;br&amp;gt;&lt;br /&gt;
{{blau|; Man kann sich etwa an folgendem orientieren:&lt;br /&gt;
wenn man für ein Backup ein spezielles Programm mit speziellen Optionen benötigt, dann ist es auch wahrscheinlich, das man auch hier etwas anderes als '''cpio''' nehmen sollte. Dann könnte man hier zB mit [http://linux.die.net/man/1/rsync rsync] ( schon oben beim kopieren der Rootpartition beschrieben) oder mit [http://linux.die.net/man/1/star star] und entsprechenden Optionen kopieren, um spezielle Eigenschaften von Dateien beim Kopieren mit zu übertragen. Solange jedoch ein '''tar''' als Backupprogramm reicht oder reichen würde, dann kann man getrost auch mit dem cpio-Befehl hier arbeiten.}}&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mount /dev/md1 /mnt&lt;br /&gt;
 automat:/ # cd /boot&lt;br /&gt;
 automat:/boot # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 349 blocks&lt;br /&gt;
 automat:/boot # umount /mnt&lt;br /&gt;
 automat:/boot # mount /dev/md3 /mnt&lt;br /&gt;
 automat:/boot # cd /home&lt;br /&gt;
 automat:/home # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 53011 blocks&lt;br /&gt;
 automat:/home # umount /mnt&lt;br /&gt;
 automat:/home # mount /dev/md4 /mnt&lt;br /&gt;
 automat:/home # cd /data&lt;br /&gt;
 automat:/data # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 52731 blocks  &lt;br /&gt;
&lt;br /&gt;
Natürlich ist jetzt noch die '''/etc/fstab''' anzupassen:&lt;br /&gt;
''bei openSUSE 10.3 sind dann erst einmal alle Einträge mit DISK-by-ID unserer Rootplatte auskommentiert oder gelöscht''&lt;br /&gt;
&lt;br /&gt;
 automat:/data # cat /etc/fstab&lt;br /&gt;
 /dev/md0  /      ext3  acl,user_xattr  1 1&lt;br /&gt;
 /dev/md2  swap   swap  pri=42          0 0&lt;br /&gt;
 /dev/md1  /boot  ext2  acl,user_xattr  1 2&lt;br /&gt;
 /dev/md3  /home  ext3  acl,user_xattr  1 2&lt;br /&gt;
 /dev/md4  /data  ext2  auto,ro         1 2&lt;br /&gt;
 .....&lt;br /&gt;
&lt;br /&gt;
'''2. Teil fertig:''' An dieser Stelle rebootet man, um auch die restlichen RAID-Devices ins System zu integrieren. Wir booten nach wie vor noch von der alten Platte und aus dem darauf befindlichem '''/boot'''. Nur verwenden wir jetzt beim Starten alle neue Raiddevices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prüfen des Systems vor dem entgültigen Spiegeln ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist der Reboot sauber durchgelaufen, prüfen wir nochmals:&lt;br /&gt;
&lt;br /&gt;
 automat:~ # swapon -s&lt;br /&gt;
 Filename  Type       Size    Used Priority&lt;br /&gt;
 /dev/md2  partition  2098040 0    42&lt;br /&gt;
 automat:~ # mount&lt;br /&gt;
 /dev/md0 on / type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 debugfs on /sys/kernel/debug type debugfs (rw)&lt;br /&gt;
 udev on /dev type tmpfs (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw,mode=0620,gid=5)&lt;br /&gt;
 /dev/md1 on /boot type ext2 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/md3 on /home type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/md4 on /data type ext2 (ro)&lt;br /&gt;
 securityfs on /sys/kernel/security type securityfs (rw) &lt;br /&gt;
&lt;br /&gt;
Das System können wir hier ausgiebig auf saubere Funktion testen; bis jetzt ist das alte System immer noch voll einsatzfähig und wir können immer noch zurück. Sowohl in der Ausgabe von [http://linux.die.net/man/8/swapon swapon] als  auch von [http://linux.die.net/man/8/mount mount] sollte jetzt die orginale Platte nicht mehr erscheinen und dafür die Raiddevices. Auch das System sollte einwandfrei funktionieren, &lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||'''wenn jetzt irgend etwas nicht richtig funktioniert hier besser die weitere Abarbeitung dieses Howtos abbrechen und auf Fehlersuche gehen''', ansonsten riskiert ihr die Gefahr einer eventuellen Neuinstallation.}}&lt;br /&gt;
&lt;br /&gt;
Bisher sind am altem System nur folgende Dinge geändert worden, wenn man sich hier ans Howto gehalten hat:&lt;br /&gt;
* bei einem 10.3 wurde das initscript /etc/init.d/boot.md aktiviert&lt;br /&gt;
* ein Eintrag in die /boot/grub/menu.lst ist zusätzlich hinzugekommen&lt;br /&gt;
* die initrd wurde neu erstellt und hat jetzt Raidsupport &lt;br /&gt;
alle diese Einträge sind notfalls auch schnell wieder rückgängig zu machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Herstellung der Spiegelung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn alles in Ordnung ist, dann können die fehlenden Spiegelkomponenten nun hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||'''Ab hier wird das alte System nicht mehr bootfähig.'''}}&lt;br /&gt;
&lt;br /&gt;
 sfdisk --change-id /dev/sda 1 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 2 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 3 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 5 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 6 fd&lt;br /&gt;
 &lt;br /&gt;
 mdadm /dev/md4 -a /dev/sda6&lt;br /&gt;
 mdadm /dev/md3 -a /dev/sda3&lt;br /&gt;
 mdadm /dev/md2 -a /dev/sda5&lt;br /&gt;
 mdadm /dev/md1 -a /dev/sda1&lt;br /&gt;
 mdadm /dev/md0 -a /dev/sda2&lt;br /&gt;
&lt;br /&gt;
Den Spiegelungsverlauf kann man wie folgt beobachten und verfolgen:&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md1 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       66432 blocks [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md3 : active raid1 sda3[0] sdb3[1]&lt;br /&gt;
       20972480 blocks [2/1] [_U]&lt;br /&gt;
       [==&amp;gt;..................]  recovery = 11.4% (2395776/20972480) finish=8.6min speed=35734K/sec&lt;br /&gt;
      &lt;br /&gt;
 md4 : active raid1 sda6[0] sdb6[1]&lt;br /&gt;
       7461760 blocks [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md2 : active raid1 sda5[0] sdb5[1]&lt;br /&gt;
       2098048 blocks [2/1] [_U]&lt;br /&gt;
         resync=DELAYED&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda2[2] sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
         resync=DELAYED&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
Man wartet ab, bis alle Devices synchronisiert sind. Ein Neustart ist hier überhaupt nicht empfehlenswert, da jetzt durch das recover die GRUB-Daten  nicht mehr passen. Also erst nach der kompletten Grub-Konfiguration und der nochmaligen Erzeugung einer initrd wieder rebooten oder ausschalten}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Grub ==&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von /boot/grub/menu.lst ===&lt;br /&gt;
&lt;br /&gt;
Jetzt wird es noch einmal etwas komplizierter, wir müssen Grub anpassen, zuerst die '''/boot/grub/menu.lst'''.&lt;br /&gt;
Sie sollte im Moment noch den Orginalzustand des früheren Systems haben. Die Einträge unseres Linuxsystems müssen wir in folgenden Punkten änderen.&lt;br /&gt;
 root=&lt;br /&gt;
 resume=&lt;br /&gt;
dort sollte überall jetzt ein /dev/md? stehen.&lt;br /&gt;
&lt;br /&gt;
Desweiteren haben wir 2 Platten, und wir müssen von jeder Platte das System starten können, also brauchen wir jeden Eintrag doppelt, also jeweils für jede Platte einen eigenen. Die beiden Einträge unterscheiden sich dann jeweils in allen '''(hd?,?)''' Einträgen. Zur Sicherheit geben wir die '''Kernel''' und die '''initrd''' mit ihrem kompletten Path, also einschließlich ihrem Device mit an. Wir verwenden für '''Kernel''' und '''initrd''' nur die Softlinks und wir ändern die Kommentarzeile von Yast. Nur so können wir wirklich sicher sein, das YaST unsere Einträge nicht verändert, und damit auch noch nach dem nächsten Update sauber funktionieren.&lt;br /&gt;
&lt;br /&gt;
{{blau|man merke sich: bis der Kernel fertig geladen ist, gibt es das Konzept von RAID nicht, d.h. GRUB &lt;br /&gt;
kann die Platten nur einzeln sehen.}}&lt;br /&gt;
&lt;br /&gt;
Es ist durchaus (besonders unter openSUSE 10.3) ein schönes Stück Konfigurationsänderungen hier notwendig und man sollte vorher unbedingt mal etwas über [[Grub]] gelesen haben. Bei Tests unter 10.3 haben sich massive Probleme mit der Kombination von &amp;quot;gespiegeltem Swap&amp;quot; und &amp;quot;Suspend to Disk&amp;quot; ergeben. Auch Krückenlösungen brachten hier nicht den richtigen gewünschten Erfolg. Meine Empfehlung deshalb, man überlege sich, ob man wirklich beide Funktionen in einem Rechner benötigt, oder ob man auf einem Rechner mit gespiegeltem Swap auf &amp;quot;Suspend to Disk&amp;quot; ganz verzichten kann, in diesem Fall diese Funktion hier deaktivieren. In allen anderen Fällen (auch bei Versionen vor 10.3) sollte man abschließend die beiden Funktionen genau testen inwieweit sie wirklich sauber zusammen funktionieren oder nicht.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So hier sollten diese Booteinträge nach der Änderung dann aussehen: (''' man beachte hier auch, dass beim Kernel und der initrd es hier einen Unterschied im Path gibt, je nach dem ob /boot eine eigene Partition ist, oder mit auf dem Rootdevice liegt''' &amp;lt;br&amp;gt;&lt;br /&gt;
(''ich habe [http://wiki.linux-club.de/opensuse/Diskussion:NonRaid_zu_%28software%29Raid1_SuSE_10_1#Beispiel_einer_menu.lst_bei_openSUSE_10.3 hier] auf die Diskussionseite noch einmal eine komplette Datei eines 10.3 vor und nach dieser Änderung gegenüber gestellt.'')&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # vi menu.lst&lt;br /&gt;
 # Modified by YaST2. Last modification on Sun Aug 13 16:40:57 CEST 2006&lt;br /&gt;
 color white/blue black/light-gray&lt;br /&gt;
 default 0&lt;br /&gt;
 fallback 1&lt;br /&gt;
 timeout 8&lt;br /&gt;
 gfxmenu (hd0,0)/message&lt;br /&gt;
 &lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1 1-Platte&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel (hd0,0)/vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/md2 splash=silent  showopts&lt;br /&gt;
     initrd (hd0,0)/initrd&lt;br /&gt;
 &lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1 2-Platte&lt;br /&gt;
     root (hd1,0)&lt;br /&gt;
     kernel (hd1,0)/vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/md2 splash=silent  showopts&lt;br /&gt;
     initrd (hd1,0)/initrd &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Bootloader im MBR auf beiden Spiegelplatten ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt muss nur noch auf beiden Platten ein neuer MBR geschreiben werden, der jeweils Bezug auf die  Grubkonfiguration seiner eigenen Platte enthält. Dazu starten wir die GRUB-Shell. Auch das ist noch einmal ein bisschen eine haarige Angelegenheit, aber halb so schlimm, wenn man wirklich weiß, was man hier macht. Deshalb einmal zur Erklärung, was mit den Befehlen hier genau angesprochen und gemacht wird, damit sollte es dann möglich sein, sich das gegebenenfalls für seinen Rechner richtig anzupassen. Im Zweifelsfall noch mal bei [[Grub]] vorbeischauen.&lt;br /&gt;
; root (hd1,0) : bedeutet die Konfiguration von Grub (Dateien von grub unterhalb von /boot) befinden sich auf der '''Partition 1''' der Platte die in '''/boot/grub/device.map''' als '''hd1''' geführt wird&lt;br /&gt;
; setup (hd1)  : und werden konfiguriert für den MBR eben dieser Platte '''hd1'''.&lt;br /&gt;
und das Ganze konfigurieren wir für beide Platten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # grub&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; root (hd1,0)&lt;br /&gt;
  Filesystem type is ext2fs, partition type 0xfd&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; setup (hd1)&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage1&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage2&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/e2fs_stage1_5&amp;quot; exists... yes&lt;br /&gt;
  Running &amp;quot;embed /boot/grub/e2fs_stage1_5 (hd1)&amp;quot;...  15 sectors are embedded.&lt;br /&gt;
 succeeded&lt;br /&gt;
  Running &amp;quot;install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2&lt;br /&gt;
 /boot/grub/menu.lst&amp;quot;... succeeded&lt;br /&gt;
 Done.&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; root (hd0,0)&lt;br /&gt;
  Filesystem type is ext2fs, partition type 0xfd&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; setup (hd0)&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage1&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage2&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/e2fs_stage1_5&amp;quot; exists... yes&lt;br /&gt;
  Running &amp;quot;embed /boot/grub/e2fs_stage1_5 (hd0)&amp;quot;...  15 sectors are embedded.&lt;br /&gt;
 succeeded&lt;br /&gt;
  Running &amp;quot;install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2&lt;br /&gt;
 /boot/grub/menu.lst&amp;quot;... succeeded&lt;br /&gt;
 Done. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufnahme der neuen Platte in die /boot/grub/devices.map ==&lt;br /&gt;
&lt;br /&gt;
Bislang steht in der Datei nur&lt;br /&gt;
&lt;br /&gt;
 (fd0)   /dev/fd0&lt;br /&gt;
 (hd0)   /dev/sda&lt;br /&gt;
&lt;br /&gt;
Die folgenden Zeile muss noch zugefügt werden.&lt;br /&gt;
&lt;br /&gt;
 (hd1)   /dev/sdb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abschließende Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nochmal muss eine initrd erstellt werden, damit auch hier die Raidunterstützung in dem neuen /boot Verzeichnis aktiviert wird, und damit auch noch die restlichen Raid-IDs innerhalb der '''initrd''' bekannt sind.&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # mkinitrd -f md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein kleiner Zusatz noch, damit wir auch eine Mail bekommen, wenn eine Komponente in den RAID-Arrays auf fehlerhaft ('''faulty''') geht: an das Ende der '''mdadm.conf''' fügen wir unsere Mailaddresse ein.&lt;br /&gt;
 echo &amp;quot;MAILADDR root@localhost&amp;quot; &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit die Devices überwacht werden und wir eine Mail bekommen können, müssen wir jedoch noch den '''mdadmd-Deamon''' starten, entweder über YaST oder mittels '''insserv'''&lt;br /&gt;
 insserv /etc/init.d/mdadmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fertig:''' Ein Reboot sollte jetzt von beiden Platten sauber durchlaufen.&lt;br /&gt;
Dann kann das RAID-System ausgiebig getest werden, und nicht vergessen, im BIOS auch die 2. Platte als bootfähig einzustellen, damit wenn die erste Platte fehlt oder ausfällt, die 2. Platte automatisch booten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== weitere Optionale Konfigurationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{openSUSE|10.3|Wenn man openSUSE 10.3 hat, das Raid jetzt sauber von beiden Platten bootet und auch sonst alles funktioniert (einschließlich der nächste boot nach einem Kernelupdate) und man zusätzlich noch ein Freund von DISK-by-ID ist, dann kann man in der '''/etc/fstab''' und in der '''/boot/grub/menu.lst''' die Einträge manuell wieder auf DISK-BY-ID umstellen,&lt;br /&gt;
die genauen Werte die zu benutzen sind kann man zB mit: &lt;br /&gt;
  ls -l /dev/disk/by-id/md-uuid* &lt;br /&gt;
abfragen. ''( Ob das bei Softwareraid irgendwo Vorteile bringen könnte, wage ich im Moment (noch) nicht einzuschätzen.)'' }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer ganz sicher gehen will trägt noch das Raidmodul in die '''/etc/sysconfig/kernel''' in die Zeile  '''INITRD_MODULES=''' ein. Erforderlich ist das nicht zwingend, denn solange beim ausführen von '''mkinitrd''' das Rootdevice ein Raid ist, wird [http://linux.die.net/man/8/mkinitrd mkinitrd] das Modul automatisch einbinden, aber man weiß ja nie auf welchen administratorischen Schwachsinn man mal in Zukunft kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Partitionen]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=NonRaid_zu_(software)Raid1_SuSE_10_1&amp;diff=27750</id>
		<title>NonRaid zu (software)Raid1 SuSE 10 1</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=NonRaid_zu_(software)Raid1_SuSE_10_1&amp;diff=27750"/>
		<updated>2010-06-10T17:50:28Z</updated>

		<summary type="html">&lt;p&gt;Framp: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Oftmals entscheidet man sich nicht schon bei der Installation dazu, auf ein [[RAID allgemein#Softwareraid|Software-RAID]] zu installieren, um z.B. erst ein neues System zu testen bevor das alte entfernet wird. Eine Neuinstallation ist auch nicht immer wünschenswert, wenn bereits Arbeit in das neue System geflossen ist.&lt;br /&gt;
&lt;br /&gt;
Ein schon laufendes System später auf RAID-1 umzustellen ist duchaus möglich, benötigt aber eine Menge Handarbeit. Eine andere Möglichkeit ist, über ein komplettes System-Backup zu gehen, man läuft aber dennoch Gefahr, in die Konfigurationsfallen zu tappen.&lt;br /&gt;
&lt;br /&gt;
Leider ist es so, dass die meisten HOWTOs zu diesem Thema wegen irgendwelcher Kleinigkeiten, Versionsänderungen an diversen Programmen oder Scripten, oder Suse-Spezialitäten nicht auf einem SuSE 10.1 und SCSI-Devices funktionieren, desshalb habe ich mal meine Erfahrungen zu einem HOWTO zusammengestellt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Box Test|| &lt;br /&gt;
* SUSE Linux 10.1 Ausgiebige Tests mit den ersten Versionen dieses Howtos&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  10.2 Prinzipielles Funktionieren des Howto&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  10.3 Änderungen und Ergänzungen führten zur aktuellen Version&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  11.0 Prinzipielles Funktionieren des Howto&amp;lt;br&amp;gt;&lt;br /&gt;
* open SUSE  11.1 Kurztest&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ Box Hinweis||Jedes Linuxsystem ist anders konfiguriert, es müssen also evtl. einige Optionen innerhalb der Befehle an jedes System speziell angepasst werden statt dass sie direkt kopiert oder abgetippt werden können. &lt;br /&gt;
Es ist erforderlich, einige Erfahrungen im Umgang als root auf einer Shell unter Linux allgemein zu haben, sowie grundlegende Kenntnisse über die '''fstab''' und GRUBs '''menu.lst'''. Erfahrungen mit '''mdadm''' können keinesfalls schaden sind jedoch nicht zwingend erforderlich. Fundamentale Hinweise, wie etwa, das man vor manuellen Änderungen an Konfigurationsdateien eine Sicherheitskopie anlegen könnte, wird man hier vergeblich suchen. Kurzum: '''dieses Howto richtet sich an User die schon etwas Erfahrung mit LINUX und SUSE gesammelt haben''' }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration des Ausgangssystems ==&lt;br /&gt;
&lt;br /&gt;
Die bestehende Konfiguration wie sie sich vor dem Anlegen des Raids auf dem Rechner darstellt, mit dem hier im Howto die Ausgaben und Befehle enthalten sind :&lt;br /&gt;
 automat:/proc # fdisk -l&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sda: 36.7 GB, 36703932928 bytes&lt;br /&gt;
 64 heads, 32 sectors/track, 35003 cylinders&lt;br /&gt;
 Units = cylinders of 2048 * 512 = 1048576 bytes&lt;br /&gt;
 &lt;br /&gt;
    Device Boot  Start    End    Blocks  Id  System&lt;br /&gt;
 /dev/sda1   *       1     65     66544  83  Linux&lt;br /&gt;
 /dev/sda2          66   5186   5243904  83  Linux&lt;br /&gt;
 /dev/sda3        5187  25667  20972544  83  Linux&lt;br /&gt;
 /dev/sda4       25668  35003   9560064   f  W95 Ext'd (LBA)&lt;br /&gt;
 /dev/sda5       25668  27716   2098160  82  Linux swap / Solaris&lt;br /&gt;
 /dev/sda6       27717  35003   7461872  83  Linux &lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sdb: 36.7 GB, 36703932928 bytes&lt;br /&gt;
 64 heads, 32 sectors/track, 35003 cylinders&lt;br /&gt;
 Units = cylinders of 2048 * 512 = 1048576 bytes&lt;br /&gt;
 &lt;br /&gt;
    Device Boot  Start    End    Blocks  Id  System&lt;br /&gt;
 /dev/sdb1           1  35003  35843056  83  Linux &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 automat:/proc # cat /etc/fstab&lt;br /&gt;
 /dev/sda2  /              ext3    acl,user_xattr    1 1&lt;br /&gt;
 /dev/sda5  swap           swap    pri=42            0 0&lt;br /&gt;
 /dev/sda1  /boot          ext2    acl,user_xattr    1 2&lt;br /&gt;
 /dev/sda3  /home          ext3    acl,user_xattr    1 2&lt;br /&gt;
 /dev/sda6  /data          ext2    auto,ro           1 2&lt;br /&gt;
 devpts     /dev/pts       devpts  mode=0620,gid=5   0 0&lt;br /&gt;
 proc       /proc          proc    defaults          0 0&lt;br /&gt;
 usbfs      /proc/bus/usb  usbfs   noauto            0 0&lt;br /&gt;
 sysfs      /sys           sysfs   noauto            0 0&lt;br /&gt;
 /dev/fd0   /media/floppy  auto    noauto,user,sync  0 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es gibt also zwei gleiche Platten, wovon '''sdb''' derzeit nicht in Benutzung ist. Vorhanden sind auch mehrere Linux-Filesysteme ( '''/home''' , ''' /data''' ), auch ''' /boot ''' ist ein separates Filesystem. &lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||Das Howto ist so geschrieben, dass es egal ist, ob das '''/boot-Verzeichnis''' auf einer separaten Partition (wie hier im Beispiel), oder mit auf der Rootpartition ist, es ist beides getestet. Die Hinweise bei der Konfiguration vor allem bei Grub sollte man aber beachten, hier ergebem sich kleine Unterschiede zwischen diesen beiden Konfigurationen}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anlegen einer identischen Partitionstabelle ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Zuerst klonen wir die gesamte Partionstabelle von '''sda''' nach '''sdb''':&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # sfdisk -d /dev/sda  &amp;gt; /tmp/sda.txt&lt;br /&gt;
 automat:/proc # sfdisk /dev/sdb &amp;lt; /tmp/sda.txt&lt;br /&gt;
 Checking that no-one is using this disk right now ...&lt;br /&gt;
 OK&lt;br /&gt;
 &lt;br /&gt;
 Disk /dev/sdb: 35003 cylinders, 64 heads, 32 sectors/track&lt;br /&gt;
 Old situation:&lt;br /&gt;
 Units = cylinders of 1048576 bytes, blocks of 1024 bytes, counting from 0&lt;br /&gt;
 &lt;br /&gt;
    Device Boot Start     End  #cyls    #blocks  Id  System&lt;br /&gt;
 /dev/sdb1          0+  35002  35003-  35843056  83  Linux&lt;br /&gt;
 /dev/sdb2          0       -      0          0   0  Empty&lt;br /&gt;
 /dev/sdb3          0       -      0          0   0  Empty&lt;br /&gt;
 /dev/sdb4          0       -      0          0   0  Empty&lt;br /&gt;
 New situation:&lt;br /&gt;
 Units = sectors of 512 bytes, counting from 0&lt;br /&gt;
 &lt;br /&gt;
    Device Boot    Start       End  #sectors  Id  System&lt;br /&gt;
 /dev/sdb1   *        32    133119    133088  83  Linux&lt;br /&gt;
 /dev/sdb2        133120  10620927  10487808  83  Linux&lt;br /&gt;
 /dev/sdb3      10620928  52566015  41945088  83  Linux&lt;br /&gt;
 /dev/sdb4      52566016  71686143  19120128   f  W95 Ext'd (LBA)&lt;br /&gt;
 /dev/sdb5      52566048  56762367    4196320  82  Linux swap / Solaris&lt;br /&gt;
 /dev/sdb6      56762400  71686143   14923744  83  Linux&lt;br /&gt;
 Successfully wrote the new partition table&lt;br /&gt;
 &lt;br /&gt;
 Re-reading the partition table ...&lt;br /&gt;
 &lt;br /&gt;
 If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)&lt;br /&gt;
 to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1&lt;br /&gt;
 (See fdisk(8).)&lt;br /&gt;
&lt;br /&gt;
Wer KDE offen hat: dort gehen eventuell ein paar Fenster auf, dass neue Devices gefunden wurden. Diese sind mit &amp;quot;Abbrechen&amp;quot; zu schließen.&lt;br /&gt;
'''fdisk -l''' zeigt nun, dass alle Partitionen auf '''sda''' und '''sdb''' gleich sind. Da '''sdb''' z.Zt. nicht in Benutzung ist, wird kein Neustart benötigt. Eventuell (insbesondere nachdem die Platte vorher mit Nullen überschrieben worden ist) könnte hier eine Fehlermeldung in der Art &amp;quot;DOS Kompatibilitäsproblem&amp;quot; kommen.&amp;lt;br&amp;gt;&lt;br /&gt;
In diesem Fall die Option '''--force''' probieren, weitere Infos gibt es auch in einem [[Partitionstabelle sichern und wiederherstellen|eigenem Howto]] zu diesem Thema. Wenn wir die komplette Platte spiegeln sollte jedenfalls unser Ziel auch eine identische Partitionstabelle auf beiden Platten sein. Sollten hier Probleme auftauchen, dass die Partitionstabellen nicht gleich aussehen dann bitte [[Partitionstabelle sichern und wiederherstellen|hier]] nachlesen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Raid für das zukünftige Rootfilesystem erstellen ==&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Wir beginnen zunächst damit das Root-Filesystem auf einem RAID-Device aufzubauen und dieses zum Laufen zu bekommen.&lt;br /&gt;
'''sda''' wird vorläufig nicht verändert, somit bleibt das alte LINUX nach wie vor noch erhalten und weiter bootfähig. &lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 sollten wir an dieser Stelle unbedingt einmal überprüfen ob das Initscript '''boot.md''' beim Booten gestartet wird, ansonsten sollten wir das jetzt hier entsprechend einrichten, bevor uns der Rechner bei einem Reboot ohne konfigurierte Raid-Device hängen bleibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Testen ob das Script '''boot.md''' beim Start ausgeführt wird, reicht folgender Befehl&lt;br /&gt;
 ls /etc/init.d/boot.d/*boot.md &lt;br /&gt;
kommt hier als Antwort &lt;br /&gt;
 ls: cannot access /etc/init.d/boot.d/*boot.md: No such file or directory&lt;br /&gt;
dann ist folgender Befehl auszuführen damit das Script dann in Zukunft wirklich beim Booten nach Raiddevices sucht und diese startet. &lt;br /&gt;
 insserv /etc/init.d/boot.md&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So jetzt wird es ernst und zuerst erstellen wir ein RAID-1-Device für unser zukünftig gespiegeltes Rootfilesystem mit einer fehlenden Komponente mit '''sdb2''' als einziger aktive Komponente.&lt;br /&gt;
Zunächst wird die Partitions-ID von '''sdb2''' geändert: ''(das ist zwar nicht zwingend erforderlich, da es unter Linux von keinerlei Programm wirklich ausgewertet wird, einzig ein im Kernel fest eingebundenes Raidmodul würde dieses Flag nutzen, und wer hat das schon,  aber diese Kennzeichnung erleichtert uns später den Überblick zu bewaren, was schon konfiguriert ist und was noch nicht)''&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # sfdisk --change-id /dev/sdb 2 fd&lt;br /&gt;
 Done&lt;br /&gt;
 automat:/proc # sfdisk -R /dev/sdb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Eventuell tauchen unter KDE jetzt wieder Fenster auf, die mit Abbruch zu schließen sind.&lt;br /&gt;
Ein Blick auf &amp;lt;code&amp;gt;fdisk -l&amp;lt;/code&amp;gt; zeigt nun, dass bei sdb2 wirklich &amp;lt;code&amp;gt;fd&amp;lt;/code&amp;gt; als ID eingetragen ist.&lt;br /&gt;
Danach wird das RAID-Array mit 2 Komponenten erstellt, wovon eine als fehlend markiert wird:&lt;br /&gt;
Das wird unser zukünftiges Rootfilesystem aufnehmen.&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mdadm -C /dev/md0 -b internal -e 1.0 -l1 -n2 missing /dev/sdb2&lt;br /&gt;
 mdadm: /dev/sdb2 appears to be part of a raid array:&lt;br /&gt;
     level=raid1 devices=2 ctime=Sat Aug 19 21:27:47 2006&lt;br /&gt;
 Continue creating array? y&lt;br /&gt;
 mdadm: array /dev/md0 started.&lt;br /&gt;
&lt;br /&gt;
Die Nachfrage nach &amp;quot;appears to be part of a raid array&amp;quot; kann daraus resultieren, wenn die Partition bereits einen MDRAID-Superblock enthielt (z.B. von vorhergehenden Tests mit mdadm). Den Erfolg können wir wie folgt überprüfen:&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1]&lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
und/oder&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # mdadm -D /dev/md0&lt;br /&gt;
 /dev/md0:&lt;br /&gt;
         Version : 01.00.03&lt;br /&gt;
   Creation Time : Sat Aug 19 21:27:47 2006&lt;br /&gt;
      Raid Level : raid1&lt;br /&gt;
      Array Size : 5243840 (5.00 GiB 5.37 GB)&lt;br /&gt;
     Device Size : 5243840 (5.00 GiB 5.37 GB)&lt;br /&gt;
    Raid Devices : 2&lt;br /&gt;
   Total Devices : 1&lt;br /&gt;
 Preferred Minor : 0&lt;br /&gt;
     Persistence : Superblock is persistent&lt;br /&gt;
 &lt;br /&gt;
     Update Time : Sat Aug 19 21:27:47 2006&lt;br /&gt;
           State : clean, degraded&lt;br /&gt;
  Active Devices : 1&lt;br /&gt;
 Working Devices : 1&lt;br /&gt;
  Failed Devices : 0&lt;br /&gt;
   Spare Devices : 0&lt;br /&gt;
 &lt;br /&gt;
            UUID : edf2a03f:8371ba02:b75cfbef:b1415c61&lt;br /&gt;
          Events : 0.1&lt;br /&gt;
 &lt;br /&gt;
 Number  Major  Minor  RaidDevice State&lt;br /&gt;
    0      0       0       0      removed&lt;br /&gt;
    1      8      18       1      active sync  /dev/sdb2 &lt;br /&gt;
&lt;br /&gt;
Wir tragen jetzt unser konfiguriertes RAID-Device in die '''mdadm.conf''' ein. Es ist erforderlich, eine DEVICES-Zeile in '''mdadm.conf''' einzufügen (sofern dies noch nicht geschehen ist), damit [http://linux.die.net/man/8/mdadm mdadm] beim Booten die dort gelisteten Blockgeräte überhaupt für das aktivieren von Arrays in Betracht zieht. Sollte es also diese Datei nicht geben oder noch keinen passenden DEVICES-Eintrag geben, ist dieser hinzuzufügen:&lt;br /&gt;
&lt;br /&gt;
 automat:/ # echo &amp;quot;DEVICE /dev/sd[a-z][0-9]&amp;quot; &amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
Der folgende Befehl scannt nun die /dev/md*-Geräte durch und trägt ihre Eigenschaften in '''mdadm.conf''' ein:&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mdadm --detail --scan &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
 automat:/ # cat /etc/mdadm.conf&lt;br /&gt;
 DEVICE /dev/sd[a-z][0-9]&lt;br /&gt;
 ARRAY /dev/md0 level=raid1 num-devices=2 UUID=edf2a03f:8371ba02:b75cfbef:b1415c61&lt;br /&gt;
&lt;br /&gt;
Nächster Punkt ist, das Filesystem auf '''/dev/md0''' anzulegen, temporär zu mounten und die originalen Dateien unseres Rootfilesystems dorthin zu kopieren.&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mkfs.ext3 -j /dev/md0&lt;br /&gt;
 ...&lt;br /&gt;
 ...&lt;br /&gt;
 automat:/ # mount /dev/md0 /mnt&lt;br /&gt;
 automat:/ # rsync -AHPSXavx / /mnt/&lt;br /&gt;
&lt;br /&gt;
Der abschließende Slash bei '''/mnt/''' ist für das gewünschten Ziel-Layout unbedingt erforderlich.&lt;br /&gt;
&lt;br /&gt;
Vorteil von [http://linux.die.net/man/1/rsync rsync] gegenüber anderen Programmen ist ACLs (''' -A ''') und Xattrs (''' -X ''') übertragen werden -- dies ist insbesondere bei Samba-Systemen wichtig. (Die Option ''' -A ''' ist vor SUSE Linux 10.1 nicht vorhanden; die Option ''' -X ''' nicht vor openSUSE 10.2.) rsync bietet darüber hinaus eine Statusanzeige und kann abgebrochene Transfers wieder aufnehmen. Sollte der Transfer allgemein länger dauern, so empfiehlt es sich nach Abschluss nochmals rsync laufen zu lassen, um Dateien, die während des 1. Versuchs geändert wurden, auch noch zu übertragen. Man ruft hierzu rsync mit gleichen Parametern und zusätzlich ''' --delete-during ''' (sollte die Option nicht bekannt sein, ist auf ''' --delete ''' auszuweichen) aufzurufen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt ändern wir auf dem &amp;quot;neuem&amp;quot; Rootfilesystem die '''etc/fstab''' &lt;br /&gt;
&lt;br /&gt;
 automat:/ # cd /mnt/etc&lt;br /&gt;
 automat:/mnt/etc # vi fstab&lt;br /&gt;
 /dev/sda2  /  ext3  acl,user_xattr  1 1  (dieses ist der alte Zeile)&lt;br /&gt;
 /dev/md0   /  ext3  acl,user_xattr  1 1  (das ist geänderte Zeile) &lt;br /&gt;
&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 und wahrscheinlich nachfolgenden Versionen wird per default in der fstab nicht über den Deviceknoten direkt, sondern über die Disk-by-Id angesprochen. Dieser Link verweist dann seinerseits auf den Geräteknoten. Hier ein Beispiel wie diese Änderung dann unter 10.3 prinzipell aussehen könnte.&lt;br /&gt;
&lt;br /&gt;
erste Zeile auskommentiert ist das Orginal und 2 Zeile der neue Eintrag für das Raid &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/dev/disk/by-id/scsi-SSEAGATE_ST336704LC_3CD27AAG00002206F766-part2 /    ext3      acl,user_xattr     1 1&lt;br /&gt;
/dev/md0 /                    ext3       acl,user_xattr        1 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das Filesystem wird dann wieder umount'ed  und die '''/boot/grub/menu.lst''' angepasst: &lt;br /&gt;
&lt;br /&gt;
 automat:/mnt/etc # cd /&lt;br /&gt;
 automat:/ # umount /mnt&lt;br /&gt;
 automat:/ # cd /boot/grub&lt;br /&gt;
 automat:/boot/grub # vi menu.lst&lt;br /&gt;
&lt;br /&gt;
Ein neuer Eintrag auf Basis des alten wird eingefügt, wir ändern aber das '''root=''' Argument so, dass nun '''md0''' als neues Root-Filesystem dienen soll. Der normale Booteintrag bleibt zunächst als default bestehen und über ihn kann vorläufig noch das alte System gebootet werden:&lt;br /&gt;
&lt;br /&gt;
 #(normaler Booteintrag bleibt stehen)&lt;br /&gt;
 ###Don't change this comment - YaST2 identifier: Original name: linux###&lt;br /&gt;
 title SUSE Linux 10.1&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel /vmlinuz root=/dev/sda2 vga=0x314 acpi=off resume=/dev/sda5 splash=silent  showopts&lt;br /&gt;
     initrd /initrd&lt;br /&gt;
 #(nachfolgender Booteintrag kommt neu hinzu)&lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel /vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/sda5 splash=silent  showopts&lt;br /&gt;
     initrd /initrd &lt;br /&gt;
&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
bei openSuse 10.3 hier ebenfals das Problem mit der Disk-by-ID. Hier ein Beispiel wie diese Änderung dann unter 10.3 prinzipell aussehen müsste.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
###Don't change this comment - YaST2 identifier: Original name: linux###&lt;br /&gt;
title openSUSE 10.3 - 2.6.22.17-0.1&lt;br /&gt;
    root (hd0,1)&lt;br /&gt;
    kernel /boot/vmlinuz-2.6.22.17-0.1-default root=/dev/disk/by-id/scsi-SSEAGATE_ST336704LC_3CD27AAG00002206F766-part2 vga=0x317 \&lt;br /&gt;
acpi=off   resume=/dev/sda1 splash=silent showopts&lt;br /&gt;
    initrd /boot/initrd-2.6.22.17-0.1-default&lt;br /&gt;
&lt;br /&gt;
###Don't change this comment - YaST2 identifier: Original name: RAID###&lt;br /&gt;
title RAID 10.3 - 2.6.22.17-0.1&lt;br /&gt;
    root (hd0,1)&lt;br /&gt;
    kernel /boot/vmlinuz-2.6.22.17-0.1-default root=/dev/md0 vga=0x317 acpi=off resume=/dev/sda1 splash=silent showopts&lt;br /&gt;
    initrd /boot/initrd-2.6.22.17-0.1-default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss muss noch eine neue '''initrd''' mit den Informationen aus '''mdadm.conf''' und RAID-Unterstützung erstellt werden. Werden hierzu intern weiter Infos über das System benötigt, werden sie von den Scripten von '''mkinitrd''' automatisch selbst gesucht. Es reichen hier die Optionen Modul md und Rootfilesystem /dev/md0&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mkinitrd -f md -d /dev/md0 &lt;br /&gt;
&lt;br /&gt;
Bei Erfolg sollte am Ende irgend etwas von einer Blockanzahl stehen. Eine Warnung unter 10.3&lt;br /&gt;
 WARNING: GRUB::GrubPath2UnixPath: Path /boot/grub/menu.lst in UNIX form, not modifying it&lt;br /&gt;
kann erst einmal ignoriert werden, sie kommt scheinbar durch das kopieren und teilweisen Veränderung eines automatisch erstellten Eintrags und wegen der bevorzugten DISK-by-ID Einstellung von 10.3 die wir hier nicht strikt befolgt haben. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. Teil fertig.''' wir können rebooten und testen, ob der neu angelegte Menüeintrag in GRUB funktioniert und das RAID1-Rootdevice sauber bootet.&lt;br /&gt;
Sollte das nicht funktionieren, so kann man mittels originalem Booteintrag ohne RAID das alte System booten. Wir booten also nach wie vor jetzt noch von der orginalen Platte und aus dem darauf befindlichen /boot-Verzeichnis. Die einzige Änderung, wir binden als Rootdevice unser eben erstelltes (halbes) Raid1 ein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Anlegen der restlichen Raiddevices ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist das System wieder oben, prüfen wir ob alles entsprechend funktioniert hat.&lt;br /&gt;
&lt;br /&gt;
 automat:~ # mount&lt;br /&gt;
 /dev/md0 on / type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 debugfs on /sys/kernel/debug type debugfs (rw)&lt;br /&gt;
 udev on /dev type tmpfs (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw,mode=0620,gid=5)&lt;br /&gt;
 /dev/sda1 on /boot type ext2 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/sda3 on /home type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/sda6 on /data type ext2 (ro)&lt;br /&gt;
 securityfs on /sys/kernel/security type securityfs (rw)&lt;br /&gt;
 &lt;br /&gt;
 automat:~ # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das war der schwierige Teil der Arbeit, ab hier wird es etwas einfacher.&lt;br /&gt;
Nach gleicher Prozedur werden jetzt die restlichen RAID1-Devices angelegt, ohne '''sda''' zu verändern.&lt;br /&gt;
&lt;br /&gt;
{{Kasten rot|Hier müssen wir jetzt allerdings besonders gut aufpassen, dass wir nichts durcheinander bringen, am besten man schreibt sich vorher auf, welches alte Device mit welchem Filesystemtype auf welchem Mountpoint welche Raid-Nummer bekommen soll. Entsprechend der unterschiedlichen Voraussetzungen vor dem Spiegeln können hier die Befehle dazu von den hier angegebenen Beispiel durchaus etwas stärker abweichen.}} &lt;br /&gt;
  &lt;br /&gt;
Wir ändern als nächstes alle anderen Partitions-IDs auf sdb:&lt;br /&gt;
&lt;br /&gt;
 sfdisk --change-id /dev/sdb 1 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 3 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 5 fd&lt;br /&gt;
 sfdisk --change-id /dev/sdb 6 fd&lt;br /&gt;
&lt;br /&gt;
Als nächstes legen wir die restlichen neuen RAID-Device mit auch jeweils einer fehlenden Komponente an:&lt;br /&gt;
&lt;br /&gt;
 mdadm -C /dev/md1 -b internal -e1.0 -l1 -n2  missing /dev/sdb1&lt;br /&gt;
 mdadm -C /dev/md2 -b internal -e1.0 -l1 -n2  missing /dev/sdb5&lt;br /&gt;
 mdadm -C /dev/md3 -b internal -e1.0 -l1 -n2  missing /dev/sdb3&lt;br /&gt;
 mdadm -C /dev/md4 -b internal -e1.0 -l1 -n2  missing /dev/sdb6&lt;br /&gt;
 &lt;br /&gt;
 automat:~ # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md4 : active raid1 sdb6[1]&lt;br /&gt;
       7461760 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md3 : active raid1 sdb3[1]&lt;br /&gt;
       20972480 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md2 : active raid1 sdb5[1]&lt;br /&gt;
       2098048 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md1 : active raid1 sdb1[1]&lt;br /&gt;
       66432 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Danach müssen die neuen RAID-Devices in der '''mdadm.conf''' eingetragen werden. Am einfachsten, indem wir diese noch einmal ganz neu erstellen lassen (DEVICE-Zeile vorher wieder einfügen):&lt;br /&gt;
&lt;br /&gt;
 automat:/ # echo &amp;quot;DEVICE /dev/sd[a-z][0-9]&amp;quot; &amp;gt; /etc/mdadm.conf&lt;br /&gt;
 automat:/ # mdadm --detail --scan &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
jetzt können wir die Filesysteme auf den neuen Devices anlegen und die Daten dorthin kopieren, ''der Notiz-Zettel hilft hier sicher ;-)''&lt;br /&gt;
&lt;br /&gt;
'''Zwischenbemerkung:''' Wir spiegeln hier auch unseren Swap, (auch wenn sich da die Geister wieder streiten und es dazu durchaus geteilte Meinung gibt), aber nur mit einem gespiegeltem Swap kann man auch in einem laufenden Betrieb einen total-Plattenausfall überleben, deshalb müssen wir natürlich auch das &amp;quot;Swapfilesystem&amp;quot;  neu anlegen.&lt;br /&gt;
&lt;br /&gt;
 mkswap /dev/md2&lt;br /&gt;
 mkfs.ext2 /dev/md1&lt;br /&gt;
 mkfs.ext3 -j /dev/md3&lt;br /&gt;
 mkfs.ext2 /dev/md4&lt;br /&gt;
&lt;br /&gt;
Nach dem Anlegen der Filesysteme wird jedes neue Filesystem temporär gemountet und die entsprechenden Daten dorthinein kopiert. Zum Kopieren gibt es die verschiedensten Möglichkeiten angefangen von [http://linux.die.net/man/1/cp cp], über eine ganze Anzahl von Backup- und Archivierungstools ist hier vieles möglich, es sind jedoch durchweg alles Befehle die eine ganzen Reihe von Optionen benötigen, damit auch alle Dateien wirklich mit den richtigen Eigenschaften kopiert werden. In diesem Beispiel benutzen wird [http://www.bellevuelinux.org/man/cpio.1.html cpio] dazu. Das kopiert allerdings so hier nur die Standard Zugriffrechte, was für Otto den Normallinuxer und das normale Linux Betriebssystem auch ausreicht, in einigen speziellen Fällen und Datenfilesystemen wird es jedoch nicht ganz ausreichend sein.&amp;lt;br&amp;gt;&lt;br /&gt;
{{blau|; Man kann sich etwa an folgendem orientieren:&lt;br /&gt;
wenn man für ein Backup ein spezielles Programm mit speziellen Optionen benötigt, dann ist es auch wahrscheinlich, das man auch hier etwas anderes als '''cpio''' nehmen sollte. Dann könnte man hier zB mit [http://linux.die.net/man/1/rsync rsync] ( schon oben beim kopieren der Rootpartition beschrieben) oder mit [http://linux.die.net/man/1/star star] und entsprechenden Optionen kopieren, um spezielle Eigenschaften von Dateien beim Kopieren mit zu übertragen. Solange jedoch ein '''tar''' als Backupprogramm reicht oder reichen würde, dann kann man getrost auch mit dem cpio-Befehl hier arbeiten.}}&lt;br /&gt;
&lt;br /&gt;
 automat:/ # mount /dev/md1 /mnt&lt;br /&gt;
 automat:/ # cd /boot&lt;br /&gt;
 automat:/boot # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 349 blocks&lt;br /&gt;
 automat:/boot # umount /mnt&lt;br /&gt;
 automat:/boot # mount /dev/md3 /mnt&lt;br /&gt;
 automat:/boot # cd /home&lt;br /&gt;
 automat:/home # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 53011 blocks&lt;br /&gt;
 automat:/home # umount /mnt&lt;br /&gt;
 automat:/home # mount /dev/md4 /mnt&lt;br /&gt;
 automat:/home # cd /data&lt;br /&gt;
 automat:/data # find . -mount | cpio -pdumC65536 /mnt&lt;br /&gt;
 52731 blocks  &lt;br /&gt;
&lt;br /&gt;
Natürlich ist jetzt noch die '''/etc/fstab''' anzupassen:&lt;br /&gt;
''bei openSUSE 10.3 sind dann erst einmal alle Einträge mit DISK-by-ID unserer Rootplatte auskommentiert oder gelöscht''&lt;br /&gt;
&lt;br /&gt;
 automat:/data # cat /etc/fstab&lt;br /&gt;
 /dev/md0  /      ext3  acl,user_xattr  1 1&lt;br /&gt;
 /dev/md2  swap   swap  pri=42          0 0&lt;br /&gt;
 /dev/md1  /boot  ext2  acl,user_xattr  1 2&lt;br /&gt;
 /dev/md3  /home  ext3  acl,user_xattr  1 2&lt;br /&gt;
 /dev/md4  /data  ext2  auto,ro         1 2&lt;br /&gt;
 .....&lt;br /&gt;
&lt;br /&gt;
'''2. Teil fertig:''' An dieser Stelle rebootet man, um auch die restlichen RAID-Devices ins System zu integrieren. Wir booten nach wie vor noch von der alten Platte und aus dem darauf befindlichem '''/boot'''. Nur verwenden wir jetzt beim Starten alle neue Raiddevices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prüfen des Systems vor dem entgültigen Spiegeln ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist der Reboot sauber durchgelaufen, prüfen wir nochmals:&lt;br /&gt;
&lt;br /&gt;
 automat:~ # swapon -s&lt;br /&gt;
 Filename  Type       Size    Used Priority&lt;br /&gt;
 /dev/md2  partition  2098040 0    42&lt;br /&gt;
 automat:~ # mount&lt;br /&gt;
 /dev/md0 on / type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 proc on /proc type proc (rw)&lt;br /&gt;
 sysfs on /sys type sysfs (rw)&lt;br /&gt;
 debugfs on /sys/kernel/debug type debugfs (rw)&lt;br /&gt;
 udev on /dev type tmpfs (rw)&lt;br /&gt;
 devpts on /dev/pts type devpts (rw,mode=0620,gid=5)&lt;br /&gt;
 /dev/md1 on /boot type ext2 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/md3 on /home type ext3 (rw,acl,user_xattr)&lt;br /&gt;
 /dev/md4 on /data type ext2 (ro)&lt;br /&gt;
 securityfs on /sys/kernel/security type securityfs (rw) &lt;br /&gt;
&lt;br /&gt;
Das System können wir hier ausgiebig auf saubere Funktion testen; bis jetzt ist das alte System immer noch voll einsatzfähig und wir können immer noch zurück. Sowohl in der Ausgabe von [http://linux.die.net/man/8/swapon swapon] als  auch von [http://linux.die.net/man/8/mount mount] sollte jetzt die orginale Platte nicht mehr erscheinen und dafür die Raiddevices. Auch das System sollte einwandfrei funktionieren, &lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||'''wenn jetzt irgend etwas nicht richtig funktioniert hier besser die weitere Abarbeitung dieses Howtos abbrechen und auf Fehlersuche gehen''', ansonsten riskiert ihr die Gefahr einer eventuellen Neuinstallation.}}&lt;br /&gt;
&lt;br /&gt;
Bisher sind am altem System nur folgende Dinge geändert worden, wenn man sich hier ans Howto gehalten hat:&lt;br /&gt;
* bei einem 10.3 wurde das initscript /etc/init.d/boot.md aktiviert&lt;br /&gt;
* ein Eintrag in die /boot/grub/menu.lst ist zusätzlich hinzugekommen&lt;br /&gt;
* die initrd wurde neu erstellt und hat jetzt Raidsupport &lt;br /&gt;
alle diese Einträge sind notfalls auch schnell wieder rückgängig zu machen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Herstellung der Spiegelung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn alles in Ordnung ist, dann können die fehlenden Spiegelkomponenten nun hinzugefügt werden.&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||'''Ab hier wird das alte System nicht mehr bootfähig.'''}}&lt;br /&gt;
&lt;br /&gt;
 sfdisk --change-id /dev/sda 1 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 2 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 3 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 5 fd&lt;br /&gt;
 sfdisk --change-id /dev/sda 6 fd&lt;br /&gt;
 &lt;br /&gt;
 mdadm /dev/md4 -a /dev/sda6&lt;br /&gt;
 mdadm /dev/md3 -a /dev/sda3&lt;br /&gt;
 mdadm /dev/md2 -a /dev/sda5&lt;br /&gt;
 mdadm /dev/md1 -a /dev/sda1&lt;br /&gt;
 mdadm /dev/md0 -a /dev/sda2&lt;br /&gt;
&lt;br /&gt;
Den Spiegelungsverlauf kann man wie folgt beobachten und verfolgen:&lt;br /&gt;
&lt;br /&gt;
 automat:/proc # cat /proc/mdstat&lt;br /&gt;
 Personalities : [raid1] [raid0] [raid5] [raid4] [linear]&lt;br /&gt;
 md1 : active raid1 sda1[0] sdb1[1]&lt;br /&gt;
       66432 blocks [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md3 : active raid1 sda3[0] sdb3[1]&lt;br /&gt;
       20972480 blocks [2/1] [_U]&lt;br /&gt;
       [==&amp;gt;..................]  recovery = 11.4% (2395776/20972480) finish=8.6min speed=35734K/sec&lt;br /&gt;
      &lt;br /&gt;
 md4 : active raid1 sda6[0] sdb6[1]&lt;br /&gt;
       7461760 blocks [2/2] [UU]&lt;br /&gt;
      &lt;br /&gt;
 md2 : active raid1 sda5[0] sdb5[1]&lt;br /&gt;
       2098048 blocks [2/1] [_U]&lt;br /&gt;
         resync=DELAYED&lt;br /&gt;
      &lt;br /&gt;
 md0 : active raid1 sda2[2] sdb2[1]&lt;br /&gt;
       5243840 blocks [2/1] [_U]&lt;br /&gt;
         resync=DELAYED&lt;br /&gt;
      &lt;br /&gt;
 unused devices: &amp;lt;none&amp;gt; &lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
Man wartet ab, bis alle Devices synchronisiert sind. Ein Neustart ist hier überhaupt nicht empfehlenswert, da jetzt durch das recover die GRUB-Daten  nicht mehr passen. Also erst nach der kompletten Grub-Konfiguration und der nochmaligen Erzeugung einer initrd wieder rebooten oder ausschalten}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Konfiguration von Grub ==&lt;br /&gt;
&lt;br /&gt;
=== Konfiguration von /boot/grub/menu.lst ===&lt;br /&gt;
&lt;br /&gt;
Jetzt wird es noch einmal etwas komplizierter, wir müssen Grub anpassen, zuerst die '''/boot/grub/menu.lst'''.&lt;br /&gt;
Sie sollte im Moment noch den Orginalzustand des früheren Systems haben. Die Einträge unseres Linuxsystems müssen wir in folgenden Punkten änderen.&lt;br /&gt;
 root=&lt;br /&gt;
 resume=&lt;br /&gt;
dort sollte überall jetzt ein /dev/md? stehen.&lt;br /&gt;
&lt;br /&gt;
Desweiteren haben wir 2 Platten, und wir müssen von jeder Platte das System starten können, also brauchen wir jeden Eintrag doppelt, also jeweils für jede Platte einen eigenen. Die beiden Einträge unterscheiden sich dann jeweils in allen '''(hd?,?)''' Einträgen. Zur Sicherheit geben wir die '''Kernel''' und die '''initrd''' mit ihrem kompletten Path, also einschließlich ihrem Device mit an. Wir verwenden für '''Kernel''' und '''initrd''' nur die Softlinks und wir ändern die Kommentarzeile von Yast. Nur so können wir wirklich sicher sein, das YaST unsere Einträge nicht verändert, und damit auch noch nach dem nächsten Update sauber funktionieren.&lt;br /&gt;
&lt;br /&gt;
{{blau|man merke sich: bis der Kernel fertig geladen ist, gibt es das Konzept von RAID nicht, d.h. GRUB &lt;br /&gt;
kann die Platten nur einzeln sehen.}}&lt;br /&gt;
&lt;br /&gt;
Es ist durchaus (besonders unter openSUSE 10.3) ein schönes Stück Konfigurationsänderungen hier notwendig und man sollte vorher unbedingt mal etwas über [[Grub]] gelesen haben. Bei Tests unter 10.3 haben sich massive Probleme mit der Kombination von &amp;quot;gespiegeltem Swap&amp;quot; und &amp;quot;Suspend to Disk&amp;quot; ergeben. Auch Krückenlösungen brachten hier nicht den richtigen gewünschten Erfolg. Meine Empfehlung deshalb, man überlege sich, ob man wirklich beide Funktionen in einem Rechner benötigt, oder ob man auf einem Rechner mit gespiegeltem Swap auf &amp;quot;Suspend to Disk&amp;quot; ganz verzichten kann, in diesem Fall diese Funktion hier deaktivieren. In allen anderen Fällen (auch bei Versionen vor 10.3) sollte man abschließend die beiden Funktionen genau testen inwieweit sie wirklich sauber zusammen funktionieren oder nicht.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So hier sollten diese Booteinträge nach der Änderung dann aussehen: (''' man beachte hier auch, dass beim Kernel und der initrd es hier einen Unterschied im Path gibt, je nach dem ob /boot eine eigene Partition ist, oder mit auf dem Rootdevice liegt''' &amp;lt;br&amp;gt;&lt;br /&gt;
(''ich habe [http://wiki.linux-club.de/opensuse/Diskussion:NonRaid_zu_%28software%29Raid1_SuSE_10_1#Beispiel_einer_menu.lst_bei_openSUSE_10.3 hier] auf die Diskussionseite noch einmal eine komplette Datei eines 10.3 vor und nach dieser Änderung gegenüber gestellt.'')&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # vi menu.lst&lt;br /&gt;
 # Modified by YaST2. Last modification on Sun Aug 13 16:40:57 CEST 2006&lt;br /&gt;
 color white/blue black/light-gray&lt;br /&gt;
 default 0&lt;br /&gt;
 fallback 1&lt;br /&gt;
 timeout 8&lt;br /&gt;
 gfxmenu (hd0,0)/message&lt;br /&gt;
 &lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1 1-Platte&lt;br /&gt;
     root (hd0,0)&lt;br /&gt;
     kernel (hd0,0)/vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/md2 splash=silent  showopts&lt;br /&gt;
     initrd (hd0,0)/initrd&lt;br /&gt;
 &lt;br /&gt;
 #--------- RAID----------#&lt;br /&gt;
 title SUSE RAID 10.1 2-Platte&lt;br /&gt;
     root (hd1,0)&lt;br /&gt;
     kernel (hd1,0)/vmlinuz root=/dev/md0 vga=0x314 acpi=off resume=/dev/md2 splash=silent  showopts&lt;br /&gt;
     initrd (hd1,0)/initrd &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Erzeugen der Bootloader im MBR auf beiden Spiegelplatten ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jetzt muss nur noch auf beiden Platten ein neuer MBR geschreiben werden, der jeweils Bezug auf die  Grubkonfiguration seiner eigenen Platte enthält. Dazu starten wir die GRUB-Shell. Auch das ist noch einmal ein bisschen eine haarige Angelegenheit, aber halb so schlimm, wenn man wirklich weiß, was man hier macht. Deshalb einmal zur Erklärung, was mit den Befehlen hier genau angesprochen und gemacht wird, damit sollte es dann möglich sein, sich das gegebenenfalls für seinen Rechner richtig anzupassen. Im Zweifelsfall noch mal bei [[Grub]] vorbeischauen.&lt;br /&gt;
; root (hd1,0) : bedeutet die Konfiguration von Grub (Dateien von grub unterhalb von /boot) befinden sich auf der '''Partition 1''' der Platte die in '''/boot/grub/device.map''' als '''hd1''' geführt wird&lt;br /&gt;
; setup (hd1)  : und werden konfiguriert für den MBR eben dieser Platte '''hd1'''.&lt;br /&gt;
und das Ganze konfigurieren wir für beide Platten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # grub&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; root (hd1,0)&lt;br /&gt;
  Filesystem type is ext2fs, partition type 0xfd&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; setup (hd1)&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage1&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage2&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/e2fs_stage1_5&amp;quot; exists... yes&lt;br /&gt;
  Running &amp;quot;embed /boot/grub/e2fs_stage1_5 (hd1)&amp;quot;...  15 sectors are embedded.&lt;br /&gt;
 succeeded&lt;br /&gt;
  Running &amp;quot;install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2&lt;br /&gt;
 /boot/grub/menu.lst&amp;quot;... succeeded&lt;br /&gt;
 Done.&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; root (hd0,0)&lt;br /&gt;
  Filesystem type is ext2fs, partition type 0xfd&lt;br /&gt;
 &lt;br /&gt;
 grub&amp;gt; setup (hd0)&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage1&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/stage2&amp;quot; exists... yes&lt;br /&gt;
  Checking if &amp;quot;/boot/grub/e2fs_stage1_5&amp;quot; exists... yes&lt;br /&gt;
  Running &amp;quot;embed /boot/grub/e2fs_stage1_5 (hd0)&amp;quot;...  15 sectors are embedded.&lt;br /&gt;
 succeeded&lt;br /&gt;
  Running &amp;quot;install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/boot/grub/stage2&lt;br /&gt;
 /boot/grub/menu.lst&amp;quot;... succeeded&lt;br /&gt;
 Done. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abschließende Konfiguration ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nochmal muss eine initrd erstellt werden, damit auch hier die Raidunterstützung in dem neuen /boot Verzeichnis aktiviert wird, und damit auch noch die restlichen Raid-IDs innerhalb der '''initrd''' bekannt sind.&lt;br /&gt;
&lt;br /&gt;
 automat:/boot/grub # mkinitrd -f md&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ein kleiner Zusatz noch, damit wir auch eine Mail bekommen, wenn eine Komponente in den RAID-Arrays auf fehlerhaft ('''faulty''') geht: an das Ende der '''mdadm.conf''' fügen wir unsere Mailaddresse ein.&lt;br /&gt;
 echo &amp;quot;MAILADDR root@localhost&amp;quot; &amp;gt;&amp;gt; /etc/mdadm.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Damit die Devices überwacht werden und wir eine Mail bekommen können, müssen wir jedoch noch den '''mdadmd-Deamon''' starten, entweder über YaST oder mittels '''insserv'''&lt;br /&gt;
 insserv /etc/init.d/mdadmd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Fertig:''' Ein Reboot sollte jetzt von beiden Platten sauber durchlaufen.&lt;br /&gt;
Dann kann das RAID-System ausgiebig getest werden, und nicht vergessen, im BIOS auch die 2. Platte als bootfähig einzustellen, damit wenn die erste Platte fehlt oder ausfällt, die 2. Platte automatisch booten kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== weitere Optionale Konfigurationen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{openSUSE|10.3|Wenn man openSUSE 10.3 hat, das Raid jetzt sauber von beiden Platten bootet und auch sonst alles funktioniert (einschließlich der nächste boot nach einem Kernelupdate) und man zusätzlich noch ein Freund von DISK-by-ID ist, dann kann man in der '''/etc/fstab''' und in der '''/boot/grub/menu.lst''' die Einträge manuell wieder auf DISK-BY-ID umstellen,&lt;br /&gt;
die genauen Werte die zu benutzen sind kann man zB mit: &lt;br /&gt;
  ls -l /dev/disk/by-id/md-uuid* &lt;br /&gt;
abfragen. ''( Ob das bei Softwareraid irgendwo Vorteile bringen könnte, wage ich im Moment (noch) nicht einzuschätzen.)'' }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer ganz sicher gehen will trägt noch das Raidmodul in die '''/etc/sysconfig/kernel''' in die Zeile  '''INITRD_MODULES=''' ein. Erforderlich ist das nicht zwingend, denn solange beim ausführen von '''mkinitrd''' das Rootdevice ein Raid ist, wird [http://linux.die.net/man/8/mkinitrd mkinitrd] das Modul automatisch einbinden, aber man weiß ja nie auf welchen administratorischen Schwachsinn man mal in Zukunft kommt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Partitionen]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Kontrolliertes_Ausfuehren_von_Befehlen_als_root&amp;diff=27404</id>
		<title>Kontrolliertes Ausfuehren von Befehlen als root</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Kontrolliertes_Ausfuehren_von_Befehlen_als_root&amp;diff=27404"/>
		<updated>2009-12-07T12:46:51Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
Den Benutzer '''root''' sollte man nur dann benutzen, wenn administrative Dinge auf einem Linux Rechner zu tun sind.( siehe auch [[Permanent root sein]] ) Ansonsten sollte man immer als normaler User arbeiten. Als root darf man eben alles - und kann sich so auch unbeabsichtigt sein System zerstören. Ein einziger fehlerhafter oder unüberlegter Befehl, (als User würde er nur einen begrenzten Schaden an den Dateien dieses Users anrichte können) als root abgesetzt, könnte das gesamte System so irreparabel beschädigen, das es nur aus einem Backup oder durch Neuinstallation wieder zu reparieren ist. &lt;br /&gt;
&lt;br /&gt;
Die selbe Regel gilt natürlich auch unter Windows und alle anderen Betriebssystemen, wo man für normale &amp;quot;Arbeit&amp;quot; tunlichst nicht mit Administrator-Kennung angemeldet sein sollte.&lt;br /&gt;
&lt;br /&gt;
== Möglichkeiten von Linux Befehle unter andere Userkennung auszuführen ==&lt;br /&gt;
&lt;br /&gt;
Normalerweise benutzt man bei Linux und anderen UNIXartigen Betriebssystemen dazu '''[http://www.phpman.info/index.php/man/su/1 su -]'''(eng. '''s'''ubstitute '''u'''ser) und erhält damit root Rechte und kann dann auf dem System alles machen, was das Herz begehrt, oder besser, alles was die Administration fordert. Dieses sollte man aber nur bei Administrationaufgaben machen. Für regelmäßige Befehle, die als root abgegeben werden müssen, oder besonders für Aufgaben die anderen Usern überantwortet werden, für die man jedoch Rootrechte benötigt, sind andere Methoden zu bevorzugen:&lt;br /&gt;
&lt;br /&gt;
# die Benutzung von '''[http://www.phpman.info/index.php?parameter=sudo&amp;amp;mode=man sudo]'''&lt;br /&gt;
# [http://www.phpman.info/index.php?parameter=ssh&amp;amp;mode=man ssh] auf '''localhost''' und [[Einrichten von public keys mit ssh|Benutzung von shared keys]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== der Befehl su ===&lt;br /&gt;
'''su''' dieser Befehl erlaubt es eine Shell mit der Userkennung eines anderen Users zu starten. Wird er mit einer der Optionen '''-, -l, --login''' gestartet, wir die eine Loginshell gestartet, das bedeutet es wird die komplette Konfiguration wie für ein neues Anmelden dieses Users durchlaufen.&lt;br /&gt;
Wird kein User angegeben, dann wird der User root angenommen.&lt;br /&gt;
 su              # startet neue Shell als User root, ohne komplettes Login als '''root''' &lt;br /&gt;
 su -            # startet neue Shell als User root mit komplettem Login als '''root'''&lt;br /&gt;
 su - user1      # startet neue Shell als User user1 mit kompletter Login als '''user1'''&lt;br /&gt;
Wird '''su''' als normaler User gestartet, dann wird dabei das Passwort des neuen Users benötigt. Wird '''su''' als root gestartet, erfolgt keine Passwortabfrage. &lt;br /&gt;
 &lt;br /&gt;
'''Nachteile:'''&lt;br /&gt;
# Sämtliche root Rechte werden erhalten&lt;br /&gt;
# root Passwort wird benötigt&lt;br /&gt;
# Keine Kontrolle möglich, welcher User root Rechte erlangt hat&lt;br /&gt;
&lt;br /&gt;
'''Vorteile:'''&lt;br /&gt;
# Schnell ausführbar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== der Befehl sudo ===&lt;br /&gt;
'''sudo''' ist ein Standard bei Linux, mit dem kontrolliert Programmausführungberechtigungen an normale User vergeben werden können. Das können z.B. bestimmte Befehle sein, die dieser User häufiger benötigt, wie z.B. das Starten und stoppen von Daemons. Hat man auf einem System mehrere Administratoren sollte man unbedingt sudo benutzen, denn dann wird immer im Log protokolliert, welcher User sich gerade per sudo root Rechte hat geben lassen. &lt;br /&gt;
Die Konfiguration erfolgt über eine Konfigurationsdatei [http://www.phpman.info/index.php/man/sudoers/5 '''/etc/sudoers''']. Dort kann genau definiert werden wer was als root oder anderer User ausführen darf, auch sind Anpassungen für die Shellkonfiguration für diese Befehle möglich. Für die Änderungen der Konfiguration gibt es ein spezielles Programm [http://www.phpman.info/index.php/man/visudo/8 '''visudo''']. Dieses Programm verhindert grobe Fehler innerhalb der /etc/sudoers.&lt;br /&gt;
&lt;br /&gt;
'''Nachteile:'''&lt;br /&gt;
# Genaue Konfiguration der /etc/sudoers notwendig&lt;br /&gt;
# /etc/sudoers Konfiguration nicht ganz einfach. Bei Fehlern können Sicherheitslöcher entstehen.&lt;br /&gt;
&lt;br /&gt;
'''Vorteile:'''&lt;br /&gt;
# Genaue Protokollierung wer, wann, welchen Befehl als root abgesetzt hat&lt;br /&gt;
# Man kann jeden Benutzer oder auch Gruppen autorisieren root befehle abzusetzen&lt;br /&gt;
# Das root Passwort muß wirklich nur der Sysadmin bzw Stellvertreter kennen.&lt;br /&gt;
&lt;br /&gt;
'''Folgende Sicherheitsregeln unbedingt beachten'''&lt;br /&gt;
&lt;br /&gt;
# Zentrale Konfigurationsdatei von sudo ist /etc/sudoers immer mit visudo editieren!&lt;br /&gt;
# Nie su, sudo, visudo oder eine shell oder Programme mit escape Möglichkeiten per sudo freigeben, denn dann hat der Benutzer volle root Rechte! Was ist eine '''escape Möglichkeit'''? Wenn ein Programm erlaubt in eine shell Umgebung zu kommen.&lt;br /&gt;
# Sehr genau auf die Parameter von den Befehlen aufpassen. Ansonsten kann ein simples [http://www.phpman.info/index.php?parameter=cat&amp;amp;mode=man cat] oder [http://www.phpman.info/index.php?parameter=chmod&amp;amp;mode=man chmod] ein Sicherheitsloch ins System reissen!&lt;br /&gt;
# Niemals ein Programm per sudo für einen User aufrufbar machen, wenn er Schreibzugriff darauf hat!&lt;br /&gt;
&lt;br /&gt;
==== Beispiele ====&lt;br /&gt;
&lt;br /&gt;
===== Wie kann man ein Befehl als ein anderer User ausführen =====&lt;br /&gt;
Eintrag in der '''/etc/sudoers:'''&lt;br /&gt;
 hugo   ALL = (fritz) /usr/local/bin/Befehl&lt;br /&gt;
&lt;br /&gt;
Aufruf von hugo:&lt;br /&gt;
 sudo -u fritz /usr/local/bin/Befehl oder&lt;br /&gt;
 sudo -u fritz Befehl&lt;br /&gt;
hugo wird nach seinem Passwort gefragt und kann dann den Befehl ausführen.&lt;br /&gt;
&lt;br /&gt;
===== Wie kann man die Passwortabfrage bei sudo abstellen =====&lt;br /&gt;
Eintrag in der '''/etc/sudoers:''' &lt;br /&gt;
 hugo   ALL = (fritz) NOPASSWD: /usr/local/bin/Befehl&lt;br /&gt;
&lt;br /&gt;
'''Bemerkung'''&lt;br /&gt;
''Das ist aber nicht ungefährlich: Wenn '''hugo''' den Rechner verlässt ohne sich abzumelden, oder der Account von '''hugo''' geknackt wird, könnte jeder den Befehl jetzt ohne Passwortabfrage ausführen. Dieses sollte also nur für Batchjobs etc. gemacht werden.&lt;br /&gt;
&lt;br /&gt;
===== Wie werden Parameter verboten =====&lt;br /&gt;
Eintrag in der '''/etc/sudoers:'''&lt;br /&gt;
 hugo   ALL = (fritz) /usr/local/bin/Befehl &amp;quot;&amp;quot;&lt;br /&gt;
Durch Anhängen von &amp;quot;&amp;quot; am Ende der Zeile ist es jetzt nicht mehr möglich, dem Befehl noch irgendwelche Parameter hinzuzufügen.&lt;br /&gt;
&lt;br /&gt;
===== Wie kann man Passwortänderungen deligieren =====&lt;br /&gt;
Eintrag in der '''/etc/sudoers:'''&lt;br /&gt;
 hugo   ALL = (root) /usr/bin/passwd alpha, /usr/bin/passwd beta&lt;br /&gt;
Damit kann jetzt hugo die Passwörter von alpha und beta ändern. Wenn man eine Gruppe von Usern hat und deren UserIDs systematisch definiert sind, geht es noch einfacher:&lt;br /&gt;
&lt;br /&gt;
Eintrag in der '''/etc/sudoers:'''&lt;br /&gt;
 hugo   ALL = (root) /usr/bin/passwd gruppe[0-9][0-9]&lt;br /&gt;
erlaubt hugo, die Passwörter aller userIDs der Form gruppe00, gruppe01, etc zu ändern.&lt;br /&gt;
&lt;br /&gt;
===== Wie kann man Daemons starten und stoppen lassen =====&lt;br /&gt;
Eintrag in der '''/etc/sudoers:'''&lt;br /&gt;
 User_Alias    SUBADMIN=hugo, fritz&lt;br /&gt;
 Cmd_Alias   DAEMON=/usr/sbin/rcsquid start,&lt;br /&gt;
                     /usr/sbin/rcsquid stop,&lt;br /&gt;
                     /usr/sbin/rcsquid restart&lt;br /&gt;
 SUBADMIN ALL = (ALL) DAEMON&lt;br /&gt;
Diese Definition erlaubt hugo und fritz squid zu starten und zu stoppen.&lt;br /&gt;
&lt;br /&gt;
=== mittels zweitem ssh Daemon die Erteilung von root Rechten erlauben ===&lt;br /&gt;
[http://www.phpman.info/index.php?parameter=ssh&amp;amp;mode=man '''ssh'''] kann man auch auf '''localhost''' anwenden und dadurch gezielt Usern die Ausführung von root Befehlen ermöglichen. Der Nachteil gegenüber sudo ist, dass keine Protokollierung der ausgeführten Befehle stattfindet. Außerdem muss der root login dazu in dem [http://www.phpman.info/index.php?parameter=sshd&amp;amp;mode=man '''sshd daemon'''] erlaubt sein, was jedoch im Normalfall ausgeschaltet sein sollte. Deshalb sollte man diese dann nicht über den normalen ssh-Dienst laufen lassen, sondern extra dafür  [http://www.linux.framp.de/index.php/content/view/41/ einen zweiten '''sshd daemon'''] auf einem freien Port aufsetzen (im Beispiel 4711), der dann seine eigene Konfigurationsdatei abgestimmt auf diese Funktion bekommt:&lt;br /&gt;
&lt;br /&gt;
'''Konfiguration für einen extra ssh-Dienst zur Erteilung von Rootrechten:''' &lt;br /&gt;
# '''Port 4711''&lt;br /&gt;
# '''PermitRootLogin without-password'''&lt;br /&gt;
# '''PubKeyAuthentication yes'''&lt;br /&gt;
#: ''Rootlogin ohne passwort und NUR pubkey authentication''&lt;br /&gt;
# Aufnahme von '''from=&amp;quot;127.0.0.1&amp;quot;''' und '''command=&amp;quot;...&amp;quot;''' in authorized_keys so dass die Befehle nur vom lokalen System aufgerufen werden können&lt;br /&gt;
# Kopieren der public keys der User, die Befehle per ssh ausführen können sollen in ~/root/.ssh/authorized_keys und Einschränkung der Berechtigung mit&lt;br /&gt;
#: '''command=&amp;quot;/usr/sbin/rcsquid start&amp;quot;'''. Dieses muss leider für jeden Befehl erlaubten getan werden. &lt;br /&gt;
#:: '''Alternative:''' (siehe weiter unten) &lt;br /&gt;
#:: '''Wichtig:''' Keine Zeile ohne command in authorized_keys stellen denn sonst hat der user uneingeschränkten root Zugriff!&lt;br /&gt;
# Schutz des sshd ports 4711 mit [http://www.pl-forum.de/t_netzwerk/iptables.html '''iptables'''] vor externem Zugriff&lt;br /&gt;
# Ein kurzes Script erstellen, mit dem man einfach die Befehle per local ssh aufrufen kann&lt;br /&gt;
 ssh -p 4711 -l root localhost $@&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Beispiel: ~/root/.ssh/authorized_keys:'''&lt;br /&gt;
 command=&amp;quot;/usr/sbin/rcsquid start&amp;quot; ssh-rsa AAAAB3NzaC1 ....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Wie mehrere Befehle einfacher zulassen?'''&lt;br /&gt;
&lt;br /&gt;
Ein Script erstellen, welches in einem Switch die Befehle enthält, die ausgeführt werden dürfen. Dieses Script (z.B. /usr/local/sbin/ssh-for-hugo) in die authorized_keys aufnehmen, also&lt;br /&gt;
 command=&amp;quot;/usr/local/sbin/ssh-for-hugo $SSH_ORIGINAL_COMMAND&amp;quot; ssh-rsa AAAAB3NzaC1 ....&lt;br /&gt;
&lt;br /&gt;
Das Script sieht dann etwa so aus:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    rcsquid-start)&lt;br /&gt;
          /usr/sbin/rcsquid start&lt;br /&gt;
          ;;&lt;br /&gt;
    rcsquid-stop)&lt;br /&gt;
          /usr/sbin/rcsquid stop&lt;br /&gt;
          ;;&lt;br /&gt;
    rcsquid-restart)&lt;br /&gt;
        /usr/sbin/rcsquid restart&lt;br /&gt;
          ;;&lt;br /&gt;
    *)&lt;br /&gt;
       echo &amp;quot;Illegal request rejected&amp;quot; 1&amp;gt;&amp;amp;2&lt;br /&gt;
       exit 1&lt;br /&gt;
    ;;&lt;br /&gt;
 esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wie kann man einem Benutzer alle root Rechte mit ein paar Ausnahmen geben? ==&lt;br /&gt;
&lt;br /&gt;
Höchst unsicher und sollte nicht angewandt werden. Man sollte immer explizit erlauben was ausgeführt werden darf und '''nicht was nicht ausgeführt werden darf'''! Zu leicht übersieht man einen kritischen Befehl oder Parameter oder es wird ein neuer kritischer Parameter mit einer neuen Programmversion eingeführt.&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
&lt;br /&gt;
Als Vorlage zu diesem Thema diente [http://www.linux-tips-and-tricks.de/index.php/Security/sudo.html Kontrolliertes Ausführen von Programmen mit Rootkennung] &lt;br /&gt;
&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27317</id>
		<title>Mit putty und ssh key auf einen sicheren Linux Server zugreifen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27317"/>
		<updated>2009-10-14T22:12:17Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
Dieses HOWTO beschreibt, welche Schritte notwendig sind um sicher von einem Windows Rechner per ssh mit putty und nur mit einem ssh key auf einen Linux Server mit SuSE zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
Sämtliche Schritte auf dem Server werden mittels putty mit Konsolbefehlen und keiner graphischen Oberfläche beschrieben. Eine graphische Oberfläche birgt eine Menge Sicherheitsprobleme und aus langer Linuxerfahrung leidgeprüfter Serveradministratoren sollte keine graphische Oberfläche (X, KDE, GNOME) auf einem Server installiert sein. Die konkrete Anleitung geht davon aus, dass keine Passwörter mehr zur Authentifiziereung benutzt werden sondern asymmetrische keys. Diese kann man durch eine Passphrase sichern oder aber auch auf die Passphrase verzichten.&lt;br /&gt;
Der Vorteil bei keiner Passphrase ist, dass ein Zugriff immer ohne Passworteingabe möglich ist. Der Nachteil ist, dass jeder, der den private key hat oder illegalerweise kopiert unbegrenzten Zugriff hat. Wer also ohne Passwort fahren will muss seine keys absolut sicher verwahren!&lt;br /&gt;
&lt;br /&gt;
Sämtliche Konfigurationsaktionen auf dem Server werden per putty mit einem normalen user und seinem password gemacht. Ein paar Änderungen benötigen auch den user root mit seinem passwort. Erst am Ende nach erfolgreichem Test wird die Passwortauthentifizierung ausgeschaltet. Danach ist ein ssh Zugriff nur noch mit keys möglich und jegliche Anmeldeversuche am Linux Server sind ohne key zum Scheitern verurteilt.&lt;br /&gt;
&lt;br /&gt;
Achtung: Am Ende der Konfiguration kann sich aus Sicherheitsgründen niemand mehr als root per ssh auf den Server anmelden! Dieses ist nur noch dem einen Benutzer der konfiguriert wurde mit seinem Key möglich! Wenn root Zugriff benötigt wird muss sich erst als normaler User anmelden und kann dann [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|mit su - root Rechte bekommen]]. Sind Zugriffe von weiteren Usern notwendig sind die Steps 1-2 entsprechend zu wiederholen.&lt;br /&gt;
&lt;br /&gt;
Konkret wurde die HOWTO Schritte mit putty 0.58 sowie OpenSSH 4.1p1 mit SuSE 10.0 erstellt. In der StepByStep Anleitung des Einrichtens eines eines ssh Zugriffs mit putty wird das im HOWTO für den user ''framp'' auf dem ssh Server ''obelix'' eingerichtet. Dieses ist den lokalen Gegebenheiten anzupassen.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind notwendig um sich letzendlich per putty und ssh key auf einen ssh Server anmelden zu koennen:&lt;br /&gt;
&lt;br /&gt;
== Erzeugen eines privaten und public keys mit putty ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Drücken von Generate&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Save the generated key drücken und sichern des private keys in C:\Program Files\putty als id_rsa_priv.ppk. U.U. sollte man noch eine pass Passphrase aus Sicherheitsgründen eingeben (s.o.).&lt;br /&gt;
d) Selektieren des gesamten public keys ('Public key for pasting into OpenSSH authorizedKeys file') und kopieren (CTRL C) ins Clipboard. &amp;lt;br/&amp;gt;&lt;br /&gt;
e) Öffnen eines Editors (z.B. notepad) und paste (CTRL V) des public keys in den Editor. Sichern der Datei in C:\Program Files\putty als rsa_public.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei ==&lt;br /&gt;
&lt;br /&gt;
a) Öffnen eines Befehlsfensters den linux public key in das home Verzeichnis des users framp kopieren&lt;br /&gt;
  C:\Program Files\putty&amp;gt;pscp id_rsa_linux framp@obelix:id_rsa&lt;br /&gt;
b) Mit folgendem wird ein Befehlsfenster mit putty auf dem Server geöffnet und ein Verzeichnis angelegt (sofern es nicht schon existiert)&lt;br /&gt;
  C:\Program Files\putty&amp;gt;putty framp@obelix:id_rsa&lt;br /&gt;
im Fenster&lt;br /&gt;
  mkdir .ssh &lt;br /&gt;
c) Anhängen des public keys an die existierenden public keys &lt;br /&gt;
  cat id_rsa &amp;gt;&amp;gt; .ssh/authorized_keys&lt;br /&gt;
WICHTIG ! &amp;lt;u&amp;gt;&amp;gt;&amp;gt;&amp;lt;/u&amp;gt; benutzen !!! Ansonsten werden schon existierende Authorisierungen gelöscht!&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keys akzeptiert benutzt werden ==&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/ssh/sshd_config sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&lt;br /&gt;
     RSAAuthentication no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/ssh/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster welches in 2.a geöffnet wurde&lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichten des putty um mit dem key auf den Server zugreifen zu können und Test des Zugriffs mit key ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms putty auf dem WindowsClient.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Beim hostname framp@obelix eintragen (userid und Server name oder IP)&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Zu Connection-&amp;gt;SSH-&amp;gt;Auth gehen und das Private key file for authentication füllen mit C:\Program Files\putty\id_rsa_priv.ppk.&amp;lt;br/&amp;gt;&lt;br /&gt;
d) open und erscheint ein Befehlsfenster des Servers. U.U. muss noch die Passphrase eingegeben werden&amp;lt;br/&amp;gt;&lt;br /&gt;
e) Sichern des putty Profiles&amp;lt;br/&amp;gt;&lt;br /&gt;
f) Damit ist die ssh Verbindung mit key getestet und es kann die Passwortauthentifizierung ausgeschaltet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur noch mit keys möglich ist ==&lt;br /&gt;
&lt;br /&gt;
Nach den folgenden Änderungen kann ein Client nur noch mit dem richtigen Key auf den Server zugreifen! Also sicherstellen, dass der vorherige Step problemlos funktioniert und man ohne Passworteingabe auf den Server kommt. [[Ansonsten kann man sich nicht mehr am Server per ssh anmelden!]]&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Die folgenden Änderungen im ssh-Zugang in einer offenen Konsole machen, sshd neu starten (Schritt d) und dann mit einer NEUEN putty Konsole testen, ob der Zugriff noch funktioniert. Die alte Konsole ist ja bereits drin und bleibt bestehen. Damit kann man die Änderung bei Bedarf rückgängig machen.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config &lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&amp;lt;br/&amp;gt;&lt;br /&gt;
     PasswordAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     ChallengeResponseAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     UsePam no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardening des sshd Servers, d.h. Prüfen von wichtigen Parametern auf die richtige sichere Einstellung ==&lt;br /&gt;
&lt;br /&gt;
Diese Schritte sind eigentlich nicht mehr notwendig da kein Zugriff ohne key mehr möglich ist. Es kann aber immer sein&lt;br /&gt;
dass aus verschiedenen Gründen doch wieder auf Passwörter umgestellt wird (PasswordAuthentication yes). root Zugriff per ssh&lt;br /&gt;
sollte aus Sicherheitsgründen immer ausgeschaltet sein. Benötigt man root recht kann man als normaler User per su -&lt;br /&gt;
root Rechte erhalten oder man setzt sudo ein. Deshalb sollte ein jeder ssh Server auf alle Fälle noch wie folgt gesichert werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  PermitRootLogin no&lt;br /&gt;
     AllowGroups users&lt;br /&gt;
     AllowUsers xxx yyy zzz (xxx, yyy und zzz sind user die per ssh zugreifen duerfen)&lt;br /&gt;
     ClientAliveInterval 15&lt;br /&gt;
     LoginGraceTime 10&lt;br /&gt;
     PubkeyAuthentication yes&lt;br /&gt;
     MaxAuthTries 3&lt;br /&gt;
     MaxStartups 1&lt;br /&gt;
     PrintLastLog yes&lt;br /&gt;
     KeepAlive no&lt;br /&gt;
     UsePam no&lt;br /&gt;
&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Grundlagen für dieses HOWTO und weiterführende Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Beiträge im WiKi:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von publikkeys unter der ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von public-keys  bei ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Wie_sichere_ich_meinen_ssh_Server Wie sichere ich meinen ssh Server?]&lt;br /&gt;
* [http://www.linux-club.de/faq/Absichern_des_eigenen_Servers Den eigenen Server absichern]&lt;br /&gt;
* [http://www.linux-club.de/faq/Kontrolliertes_Ausfuehren_von_Befehlen_als_root Kontrolliertes Ausfuehren von Befehlen als root]&lt;br /&gt;
&lt;br /&gt;
'''Weitere Informationen zu putty und OpenSSH:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ putty homepage]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Putty Was Wikipedia zu putty sagt]&lt;br /&gt;
* [http://www.openssh.com/ OpenSSH homepage]&lt;br /&gt;
&lt;br /&gt;
'''Ausführlicher Überblick über ssh und seine Möglichkeiten'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/05/blick_dicht?category=0 Linux Magazin - OpenSSH aus der Sicht des Admins Blickdicht]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/07/tunnel_blick Linux Magazin - OpenSSH aus der Sicht des Admins, Teil 2, Tunnelblick]&lt;br /&gt;
&lt;br /&gt;
Des weiteren liefert eine Suche nach ssh im LC Forum diverse weitere Fragen und Antworten zu ssh die hier nicht behandelt wurden. Last but not least lieferte [http://www.linux.framp.de/index.php/content/view/40/ Mit putty und ssh key auf einen sicheren Linux Server zugreifen] wesentliche Teile zu diesem HOWTO.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zum Sicherheitsdienst]]&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=27161</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=27161"/>
		<updated>2009-06-18T19:13:56Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux-tips-and-tricks.de/index.php/Webseiteninfo/Historie.html&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=27160</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=27160"/>
		<updated>2009-06-18T19:13:36Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux-tips-and-tricks.de/index.php/Webseiteninfo/Historie.html&amp;quot;Framp's Historie&amp;quot;] lesen. &lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=27156</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=27156"/>
		<updated>2009-06-03T20:19:39Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''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.&lt;br /&gt;
&lt;br /&gt;
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.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=27155</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=27155"/>
		<updated>2009-06-03T20:18:36Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''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.&lt;br /&gt;
&lt;br /&gt;
Der Lerneffekt dabei ist allerdings gleich Null. Wer also verstehen und lernen will wie man Informationen zu Netzwerkproblemen sammelt sollte die im Folgenden beschriebenen Befehle manuell ausführen und per man oder Google die Ausgabeergebnisse versuchen zu interpretieren.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27015</id>
		<title>Mit putty und ssh key auf einen sicheren Linux Server zugreifen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27015"/>
		<updated>2009-04-30T17:51:29Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur noch mit keys möglich ist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
Dieses HOWTO beschreibt, welche Schritte notwendig sind um sicher von einem Windows Rechner per ssh mit putty und nur mit einem ssh key auf einen Linux Server mit SuSE zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
Sämtliche Schritte auf dem Server werden mittels putty mit Konsolbefehlen und keiner graphischen Oberfläche beschrieben. Eine graphische Oberfläche birgt eine Menge Sicherheitsprobleme und aus langer Linuxerfahrung leidgeprüfter Serveradministratoren sollte keine graphische Oberfläche (X, KDE, GNOME) auf einem Server installiert sein. Die konkrete Anleitung geht davon aus, dass keine Passwörter mehr zur Authentifiziereung benutzt werden sondern asymmetrische keys. Diese kann man durch eine Passphrase sichern oder aber auch auf die Passphrase verzichten.&lt;br /&gt;
Der Vorteil bei keiner Passphrase ist, dass ein Zugriff immer ohne Passworteingabe möglich ist. Der Nachteil ist, dass jeder, der den private key hat oder illegalerweise kopiert unbegrenzten Zugriff hat. Wer also ohne Passwort fahren will muss seine keys absolut sicher verwahren!&lt;br /&gt;
&lt;br /&gt;
Sämtliche Konfigurationsaktionen auf dem Server werden per putty mit einem normalen user und seinem password gemacht. Ein paar Änderungen benötigen auch den user root mit seinem passwort. Erst am Ende nach erfolgreichem Test wird die Passwortauthentifizierung ausgeschaltet. Danach ist ein ssh Zugriff nur noch mit keys möglich und jegliche Anmeldeversuche am Linux Server sind ohne key zum Scheitern verurteilt.&lt;br /&gt;
&lt;br /&gt;
Achtung: Am Ende der Konfiguration kann sich aus Sicherheitsgründen niemand mehr als root per ssh auf den Server anmelden! Dieses ist nur noch dem einen Benutzer der konfiguriert wurde mit seinem Key möglich! Wenn root Zugriff benötigt wird muss sich erst als normaler User anmelden und kann dann [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|mit su - root Rechte bekommen]]. Sind Zugriffe von weiteren Usern notwendig sind die Steps 1-2 entsprechend zu wiederholen.&lt;br /&gt;
&lt;br /&gt;
Konkret wurde die HOWTO Schritte mit putty 0.58 sowie OpenSSH 4.1p1 mit SuSE 10.0 erstellt. In der StepByStep Anleitung des Einrichtens eines eines ssh Zugriffs mit putty wird das im HOWTO für den user ''framp'' auf dem ssh Server ''obelix'' eingerichtet. Dieses ist den lokalen Gegebenheiten anzupassen.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind notwendig um sich letzendlich per putty und ssh key auf einen ssh Server anmelden zu koennen:&lt;br /&gt;
&lt;br /&gt;
== Erzeugen eines privaten und public keys mit putty ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Drücken von Generate&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Save the generated key drücken und sichern des private keys in C:\Program Files\putty als id_rsa_priv.ppk. U.U. sollte man noch eine pass Passphrase aus Sicherheitsgründen eingeben (s.o.).&lt;br /&gt;
d) Selektieren des gesamten public keys ('Public key for pasting into OpenSSH authorizedKeys file') und kopieren (CTRL C) ins Clipboard. &amp;lt;br/&amp;gt;&lt;br /&gt;
e) Öffnen eines Editors (z.B. notepad) und paste (CTRL V) des public keys in den Editor. Sichern der Datei in C:\Program Files\putty als rsa_public.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei ==&lt;br /&gt;
&lt;br /&gt;
a) Öffnen eines Befehlsfensters den linux public key in das home Verzeichnis des users framp kopieren&lt;br /&gt;
  C:\Program Files\putty&amp;gt;pscp id_rsa_linux framp@obelix:id_rsa&lt;br /&gt;
b) Mit folgendem wird ein Befehlsfenster mit putty auf dem Server geöffnet und ein Verzeichnis angelegt (sofern es nicht schon existiert)&lt;br /&gt;
  C:\Program Files\putty&amp;gt;putty framp@obelix:id_rsa&lt;br /&gt;
im Fenster&lt;br /&gt;
  mkdir .ssh &lt;br /&gt;
c) Anhängen des public keys an die existierenden public keys &lt;br /&gt;
  cat id_rsa &amp;gt;&amp;gt; .ssh/authorized_keys&lt;br /&gt;
WICHTIG ! &amp;lt;u&amp;gt;&amp;gt;&amp;gt;&amp;lt;/u&amp;gt; benutzen !!! Ansonsten werden schon existierende Authorisierungen gelöscht!&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keys akzeptiert benutzt werden ==&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/ssh/sshd_config sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&lt;br /&gt;
     RSAAuthentication no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/ssh/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster welches in 2.a geöffnet wurde&lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichten des putty um mit dem key auf den Server zugreifen zu können und Test des Zugriffs mit key ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms putty auf dem WindowsClient.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Beim hostname framp@obelix eintragen (userid und Server name oder IP)&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Zu Connection-&amp;gt;SSH-&amp;gt;Auth gehen und das Private key file for authentication füllen mit C:\Program Files\putty\id_rsa_priv.ppk.&amp;lt;br/&amp;gt;&lt;br /&gt;
d) open und erscheint ein Befehlsfenster des Servers. U.U. muss noch die Passphrase eingegeben werden&amp;lt;br/&amp;gt;&lt;br /&gt;
e) Sichern des putty Profiles&amp;lt;br/&amp;gt;&lt;br /&gt;
f) Damit ist die ssh Verbindung mit key getestet und es kann die Passwortauthentifizierung ausgeschaltet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur noch mit keys möglich ist ==&lt;br /&gt;
&lt;br /&gt;
Nach den folgenden Änderungen kann ein Client nur noch mit dem richtigen Key auf den Server zugreifen! Also sicherstellen, dass der vorherige Step problemlos funktioniert und man ohne Passworteingabe auf den Server kommt. [[Ansonsten kann man sich nicht mehr am Server per ssh anmelden!]]&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Die folgenden Änderungen im ssh-Zugang in einer offenen Konsole machen, sshd neu starten (Schritt d) und dann mit einer NEUEN putty Konsole testen, ob der Zugriff noch funktioniert. Die alte Konsole ist ja bereits drin und bleibt bestehen. Damit kann man die Änderung bei Bedarf rückgängig machen.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config &lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&amp;lt;br/&amp;gt;&lt;br /&gt;
     PasswordAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     ChallengeResponseAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     UsePam no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardening des sshd Servers, d.h. Prüfen von wichtigen Parametern auf die richtige sichere Einstellung ==&lt;br /&gt;
&lt;br /&gt;
Diese Schritte sind eigentlich nicht mehr notwendig da kein Zugriff ohne key mehr möglich ist. Es kann aber immer sein&lt;br /&gt;
dass aus verschiedenen Gründen doch wieder auf Passwörter umgestellt wird (PasswordAuthentication yes). root Zugriff per ssh&lt;br /&gt;
sollte aus Sicherheitsgründen immer ausgeschaltet sein. Benötigt man root recht kann man als normaler User per su -&lt;br /&gt;
root Rechte erhalten oder man setzt sudo ein. Deshalb sollte ein jeder ssh Server auf alle Fälle noch wie folgt gesichert werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  PermitRootLogin no&lt;br /&gt;
     AllowGroups users&lt;br /&gt;
     AllowUsers xxx yyy zzz (xxx, yyy und zzz sind user die per ssh zugreifen duerfen)&lt;br /&gt;
     ClientAliveInterval 15&lt;br /&gt;
     LoginGraceTime 10&lt;br /&gt;
     PubkeyAuthentication yes&lt;br /&gt;
     MaxAuthTries 3&lt;br /&gt;
     MaxStartups 1&lt;br /&gt;
     PrintLastLog yes&lt;br /&gt;
     KeepAlive no&lt;br /&gt;
     UsePam no&lt;br /&gt;
&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Grundlagen für dieses HOWTO und weiterführende Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Beiträge im WiKi:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von publikkeys unter der ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von public-keys  bei ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Wie_sichere_ich_meinen_ssh_Server Wie sichere ich meinen ssh Server?]&lt;br /&gt;
* [http://www.linux-club.de/faq/Absichern_des_eigenen_Servers Den eigenen Server absichern]&lt;br /&gt;
* [http://www.linux-club.de/faq/Kontrolliertes_Ausfuehren_von_Befehlen_als_root Kontrolliertes Ausfuehren von Befehlen als root]&lt;br /&gt;
&lt;br /&gt;
'''Weitere Informtionen zu putty und OpenSSH:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ putty homepage]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Putty Was Wikipedia zu putty sagt]&lt;br /&gt;
* [http://www.openssh.com/ OpenSSH homepage]&lt;br /&gt;
&lt;br /&gt;
'''Ausführlicher Überblick über ssh und seine Möglichkeiten'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/05/blick_dicht?category=0 Linux Magazin - OpenSSH aus der Sicht des Admins Blickdicht]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/07/tunnel_blick Linux Magazin - OpenSSH aus der Sicht des Admins, Teil 2, Tunnelblick]&lt;br /&gt;
&lt;br /&gt;
Des weiteren liefert eine Suche nach ssh im LC Forum diverse weitere Fragen und Antworten zu ssh die hier nicht behandelt wurden. Last but not least lieferte [http://www.linux.framp.de/index.php/content/view/40/ Mit putty und ssh key auf einen sicheren Linux Server zugreifen] wesentliche Teile zu diesem HOWTO.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zum Sicherheitsdienst]]&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27014</id>
		<title>Mit putty und ssh key auf einen sicheren Linux Server zugreifen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Mit_putty_und_ssh_key_auf_einen_sicheren_Linux_Server_zugreifen&amp;diff=27014"/>
		<updated>2009-04-30T17:50:43Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur noch mit keys möglich ist */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
Dieses HOWTO beschreibt, welche Schritte notwendig sind um sicher von einem Windows Rechner per ssh mit putty und nur mit einem ssh key auf einen Linux Server mit SuSE zuzugreifen.&lt;br /&gt;
&lt;br /&gt;
Sämtliche Schritte auf dem Server werden mittels putty mit Konsolbefehlen und keiner graphischen Oberfläche beschrieben. Eine graphische Oberfläche birgt eine Menge Sicherheitsprobleme und aus langer Linuxerfahrung leidgeprüfter Serveradministratoren sollte keine graphische Oberfläche (X, KDE, GNOME) auf einem Server installiert sein. Die konkrete Anleitung geht davon aus, dass keine Passwörter mehr zur Authentifiziereung benutzt werden sondern asymmetrische keys. Diese kann man durch eine Passphrase sichern oder aber auch auf die Passphrase verzichten.&lt;br /&gt;
Der Vorteil bei keiner Passphrase ist, dass ein Zugriff immer ohne Passworteingabe möglich ist. Der Nachteil ist, dass jeder, der den private key hat oder illegalerweise kopiert unbegrenzten Zugriff hat. Wer also ohne Passwort fahren will muss seine keys absolut sicher verwahren!&lt;br /&gt;
&lt;br /&gt;
Sämtliche Konfigurationsaktionen auf dem Server werden per putty mit einem normalen user und seinem password gemacht. Ein paar Änderungen benötigen auch den user root mit seinem passwort. Erst am Ende nach erfolgreichem Test wird die Passwortauthentifizierung ausgeschaltet. Danach ist ein ssh Zugriff nur noch mit keys möglich und jegliche Anmeldeversuche am Linux Server sind ohne key zum Scheitern verurteilt.&lt;br /&gt;
&lt;br /&gt;
Achtung: Am Ende der Konfiguration kann sich aus Sicherheitsgründen niemand mehr als root per ssh auf den Server anmelden! Dieses ist nur noch dem einen Benutzer der konfiguriert wurde mit seinem Key möglich! Wenn root Zugriff benötigt wird muss sich erst als normaler User anmelden und kann dann [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|mit su - root Rechte bekommen]]. Sind Zugriffe von weiteren Usern notwendig sind die Steps 1-2 entsprechend zu wiederholen.&lt;br /&gt;
&lt;br /&gt;
Konkret wurde die HOWTO Schritte mit putty 0.58 sowie OpenSSH 4.1p1 mit SuSE 10.0 erstellt. In der StepByStep Anleitung des Einrichtens eines eines ssh Zugriffs mit putty wird das im HOWTO für den user ''framp'' auf dem ssh Server ''obelix'' eingerichtet. Dieses ist den lokalen Gegebenheiten anzupassen.&lt;br /&gt;
&lt;br /&gt;
Folgende Schritte sind notwendig um sich letzendlich per putty und ssh key auf einen ssh Server anmelden zu koennen:&lt;br /&gt;
&lt;br /&gt;
== Erzeugen eines privaten und public keys mit putty ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms puttygen auf dem WindowsClient. Dann ssh-2 RSA wählen und number of bits in generated key auf 2048 setzen.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Drücken von Generate&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Save the generated key drücken und sichern des private keys in C:\Program Files\putty als id_rsa_priv.ppk. U.U. sollte man noch eine pass Passphrase aus Sicherheitsgründen eingeben (s.o.).&lt;br /&gt;
d) Selektieren des gesamten public keys ('Public key for pasting into OpenSSH authorizedKeys file') und kopieren (CTRL C) ins Clipboard. &amp;lt;br/&amp;gt;&lt;br /&gt;
e) Öffnen eines Editors (z.B. notepad) und paste (CTRL V) des public keys in den Editor. Sichern der Datei in C:\Program Files\putty als rsa_public.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kopieren des public OpenSSH Keys auf den Server und Aufnahme des keys in der authorized_keys Datei ==&lt;br /&gt;
&lt;br /&gt;
a) Öffnen eines Befehlsfensters den linux public key in das home Verzeichnis des users framp kopieren&lt;br /&gt;
  C:\Program Files\putty&amp;gt;pscp id_rsa_linux framp@obelix:id_rsa&lt;br /&gt;
b) Mit folgendem wird ein Befehlsfenster mit putty auf dem Server geöffnet und ein Verzeichnis angelegt (sofern es nicht schon existiert)&lt;br /&gt;
  C:\Program Files\putty&amp;gt;putty framp@obelix:id_rsa&lt;br /&gt;
im Fenster&lt;br /&gt;
  mkdir .ssh &lt;br /&gt;
c) Anhängen des public keys an die existierenden public keys &lt;br /&gt;
  cat id_rsa &amp;gt;&amp;gt; .ssh/authorized_keys&lt;br /&gt;
WICHTIG ! &amp;lt;u&amp;gt;&amp;gt;&amp;gt;&amp;lt;/u&amp;gt; benutzen !!! Ansonsten werden schon existierende Authorisierungen gelöscht!&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keys akzeptiert benutzt werden ==&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/ssh/sshd_config sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&lt;br /&gt;
     RSAAuthentication no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/ssh/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster welches in 2.a geöffnet wurde&lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einrichten des putty um mit dem key auf den Server zugreifen zu können und Test des Zugriffs mit key ==&lt;br /&gt;
&lt;br /&gt;
a) Starten des Programms putty auf dem WindowsClient.&amp;lt;br/&amp;gt;&lt;br /&gt;
b) Beim hostname framp@obelix eintragen (userid und Server name oder IP)&amp;lt;br/&amp;gt;&lt;br /&gt;
c) Zu Connection-&amp;gt;SSH-&amp;gt;Auth gehen und das Private key file for authentication füllen mit C:\Program Files\putty\id_rsa_priv.ppk.&amp;lt;br/&amp;gt;&lt;br /&gt;
d) open und erscheint ein Befehlsfenster des Servers. U.U. muss noch die Passphrase eingegeben werden&amp;lt;br/&amp;gt;&lt;br /&gt;
e) Sichern des putty Profiles&amp;lt;br/&amp;gt;&lt;br /&gt;
f) Damit ist die ssh Verbindung mit key getestet und es kann die Passwortauthentifizierung ausgeschaltet werden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Änderung der sshd Konfiguration so dass keine Passwoerter mehr erlaubt sind sondern nur noch mit keys möglich ist ==&lt;br /&gt;
&lt;br /&gt;
Nach den folgenden Änderungen kann ein Client nur noch mit dem richtigen Key auf den Server zugreifen! Also sicherstellen, dass der vorherige Step problemlos funktioniert und man ohne Passworteingabe auf den Server kommt. [[Ansonsten kann man sich nicht mehr am Server per ssh anmelden!]]&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Die folgenden Änderungen im ssh-Zugang in einer offenen Konsole machen, sshd neu starten (Schritt d) und dann mit einer NEUEN putty Konsole testen, ob der Zugriff noch funktioniert. Die alte Konsole ist ja bereits drin und bleibt bestehen. Damit kann man die Änderung bei Bedarf rückgängig machen...'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config &lt;br /&gt;
die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
  PubkeyAuthentication yes&amp;lt;br/&amp;gt;&lt;br /&gt;
     PasswordAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     ChallengeResponseAuthentication no&amp;lt;br/&amp;gt;&lt;br /&gt;
     UsePam no&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardening des sshd Servers, d.h. Prüfen von wichtigen Parametern auf die richtige sichere Einstellung ==&lt;br /&gt;
&lt;br /&gt;
Diese Schritte sind eigentlich nicht mehr notwendig da kein Zugriff ohne key mehr möglich ist. Es kann aber immer sein&lt;br /&gt;
dass aus verschiedenen Gründen doch wieder auf Passwörter umgestellt wird (PasswordAuthentication yes). root Zugriff per ssh&lt;br /&gt;
sollte aus Sicherheitsgründen immer ausgeschaltet sein. Benötigt man root recht kann man als normaler User per su -&lt;br /&gt;
root Rechte erhalten oder man setzt sudo ein. Deshalb sollte ein jeder ssh Server auf alle Fälle noch wie folgt gesichert werden:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Im putty Fenster mit C:\Program Files\putty&amp;gt;pscp root@obelix:/etc/sshd/sshd_config sshd_config die sshd Konfigurationsdatei downloaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
b) Editieren der Datei mit einem Windows Editor so dass die folgenden Parameter wie folgt gesetzt sind:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  PermitRootLogin no&lt;br /&gt;
     AllowGroups users&lt;br /&gt;
     AllowUsers xxx yyy zzz (xxx, yyy und zzz sind user die per ssh zugreifen duerfen)&lt;br /&gt;
     ClientAliveInterval 15&lt;br /&gt;
     LoginGraceTime 10&lt;br /&gt;
     PubkeyAuthentication yes&lt;br /&gt;
     MaxAuthTries 3&lt;br /&gt;
     MaxStartups 1&lt;br /&gt;
     PrintLastLog yes&lt;br /&gt;
     KeepAlive no&lt;br /&gt;
     UsePam no&lt;br /&gt;
&lt;br /&gt;
c) Im putty Fenster mit&lt;br /&gt;
 C:\Program Files\putty&amp;gt;pscp sshd_config root@obelix:/etc/sshd/sshd_config&lt;br /&gt;
die sshd Konfigurationsdatei uploaden.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
d) Im Server Befehlsfenster &lt;br /&gt;
 rcsshd restart&lt;br /&gt;
eingeben.&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Grundlagen für dieses HOWTO und weiterführende Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Beiträge im WiKi:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von publikkeys unter der ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Einrichten_von_public_keys_mit_ssh Einrichten von public-keys  bei ssh]&lt;br /&gt;
* [http://www.linux-club.de/faq/Wie_sichere_ich_meinen_ssh_Server Wie sichere ich meinen ssh Server?]&lt;br /&gt;
* [http://www.linux-club.de/faq/Absichern_des_eigenen_Servers Den eigenen Server absichern]&lt;br /&gt;
* [http://www.linux-club.de/faq/Kontrolliertes_Ausfuehren_von_Befehlen_als_root Kontrolliertes Ausfuehren von Befehlen als root]&lt;br /&gt;
&lt;br /&gt;
'''Weitere Informtionen zu putty und OpenSSH:'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.chiark.greenend.org.uk/~sgtatham/putty/ putty homepage]&lt;br /&gt;
* [http://de.wikipedia.org/wiki/Putty Was Wikipedia zu putty sagt]&lt;br /&gt;
* [http://www.openssh.com/ OpenSSH homepage]&lt;br /&gt;
&lt;br /&gt;
'''Ausführlicher Überblick über ssh und seine Möglichkeiten'''&lt;br /&gt;
&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/05/blick_dicht?category=0 Linux Magazin - OpenSSH aus der Sicht des Admins Blickdicht]&lt;br /&gt;
* [http://www.linux-magazin.de/heft_abo/ausgaben/2002/07/tunnel_blick Linux Magazin - OpenSSH aus der Sicht des Admins, Teil 2, Tunnelblick]&lt;br /&gt;
&lt;br /&gt;
Des weiteren liefert eine Suche nach ssh im LC Forum diverse weitere Fragen und Antworten zu ssh die hier nicht behandelt wurden. Last but not least lieferte [http://www.linux.framp.de/index.php/content/view/40/ Mit putty und ssh key auf einen sicheren Linux Server zugreifen] wesentliche Teile zu diesem HOWTO.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Security|zurück zum Sicherheitsdienst]]&lt;br /&gt;
[[Category:Security]]&lt;br /&gt;
[[Category:Windows]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=27013</id>
		<title>Wie sichere ich meinen ssh Server</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=27013"/>
		<updated>2009-04-30T17:47:13Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
== Schritte zum Sichern eines ssh Servers == &lt;br /&gt;
&lt;br /&gt;
# Entscheidung über die Zugangsmethode: Passwort oder public key&lt;br /&gt;
# Direktes Sichern durch korrekte Konfiguration der sshd_config Parameter&lt;br /&gt;
# Sichern vor Angriffsversuchen&lt;br /&gt;
# Ständiges Einspielen von sshd Securityupdates&lt;br /&gt;
&lt;br /&gt;
Die sicherste Methode ist die Benutzung von public keys und sollte möglichst immer benutzt werden ([[Einrichten von public keys mit ssh]]). Damit kommen nur Personen, die den Key besitzen in das System. Das setzt aber voraus, dass man den Key immer dabei hat bzw immer von demselben System per ssh zugreift. Alternativ ist auch die gute alte Passwordauthentifierung möglich. Dabei ist das Passwort der kritische Punkt und muss unbedingt sorgfältig und nicht trivial gewaehlt werden. Besonders ist dabei zu beachten, dass das für alle Benutzer auf dem System zutrifft und diese verdonnert werden müssen ihre Passwörter nicht trivial zu wählen.&lt;br /&gt;
&lt;br /&gt;
root login per ssh darf nicht möglich sein. Das kann man in der Konfig ausschalten. Außerdem wird ganz gezielt die Zahl der Benutzer, die per ssh zugreifen darf, definiert. Der Zugriff erfolgt dann mit einem normalen User (möglichst mit einen ausgefallenen Namen) der sich entweder per su oder noch besser per sudo entsprechende [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|root Rechte besorgt]]. Damit muss ein Angreifer erst einmal die Userid das Users erraten und dann noch das Password bzw den Key haben.&lt;br /&gt;
&lt;br /&gt;
Mit relativ einfachen Mitteln kann man bei einem ssh Server Userids und Passwoerter automatisch durchprobieren. D.h. wenn jemand entdeckt hat, dass ein ssh Daemon auf einem System läuft kann er mit der BruteForceMethode versuchen in das System zu kommen. Das gibt dann so ellenlange Meldungen im Log wie&lt;br /&gt;
 Jul  1 23:22:23 gateway sshd[6933]: Failed password for invalid user ftpuser from ::ffff:210.212.160.112 port 43388 ssh2&lt;br /&gt;
Es gibt mehrere Möglichkeiten dieses zu unterbinden. Dazu gehört das Tool denyhosts, welches IPs für immer per iptables aussperrt, ein C Programm, welches die IPs fuer eine gewisse Zeit aussperrt, ein paar iptables Befehle, die Zugriffsversuche auf den ssh Port extrem verlangsamen oder die Einrichtung eines VPNs. Dann ist der ssh Port nur noch im VPN sichtbar. Des weiteren kann man PortKnocking einsetzen um gezielt Ports fuer Clients zu öffnen. Das Prinzip ist einfach: Ein Client, der Kenntnis ueber das PortKnocking hat schickt an eine bestimmte Sequenz von Ports ein SYN (Prinzip einer PIN). Diese Sequenz führt auf dem Server dazu dass ein anderer Port ganz gezielt nur für den Client der eben die port PIN gewählt hat geöffnet wird.&lt;br /&gt;
Eine recht einfache Möglichkeit ist auch nicht den Standard sshd Port zu benutzen. ScriptKiddies scannen üblicherweise nur nach Port 22. Dieses hält natuerlich einen richtigen Hacker nicht ab. Aber die Eindringversuche nehmen dadurch schon extrem ab.&lt;br /&gt;
&lt;br /&gt;
== Wichtige sshd_config Parameter und deren Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Inhalt von '''/etc/ssh/sshd_config'''&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 # oder die folgende Zeile um einen nicht Standardport zu benutzen&lt;br /&gt;
 #Port xxxx # xxxx irgendein beliebiger freier Port&lt;br /&gt;
 Protocol 2&lt;br /&gt;
 LogLevel INFO&lt;br /&gt;
 # oder etwas detailiertere Infos mit VERBOSE&lt;br /&gt;
 #LogLevel VERBOSE&lt;br /&gt;
 ClientAliveInterval 15&lt;br /&gt;
 LoginGraceTime 10&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 StrictModes yes&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 RSAAuthentication no&lt;br /&gt;
 RhostsRSAAuthentication no&lt;br /&gt;
 HostbasedAuthentication no&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 # oder die folgende Zeile wenn Passwortauthentifizierung gewuenscht ist (nicht empfehlenswert)&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 PrintLastLog yes&lt;br /&gt;
 KeepAlive no&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 MaxStartups 1&lt;br /&gt;
 AllowUsers      xxxx yyyy zzzz&lt;br /&gt;
 # xxxx yyyy und zzzz muessen normale aber ausgefallene Userids auf dem System sein&lt;br /&gt;
 AllowGroups     users&lt;br /&gt;
 DenyGroups      root&lt;br /&gt;
 DenyUsers       root&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Änderungen im ssh-Zugang immer in einer offenen Konsole machen, sshd neu starten und dann mit einer NEUEN Konsole schauen, ob es klappt. Die alte Konsole ist ja bereits drin und bleibt bestehen. Damit kann man die Änderung rückgängig machen bei Bedarf...'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Wie systematisches ssh Userid/Passwort probieren verhindern ==&lt;br /&gt;
&lt;br /&gt;
Wer keys benutzt braucht sich keine Sorgen zu machen. Unschön sind nur die ewigen Logeintraege. Die können durch folgende Massnahmen verhindert bzw reduziert werden:&lt;br /&gt;
&lt;br /&gt;
# Nicht standard ssh Portbenutzen (Port Zeile in sshd_config)&lt;br /&gt;
# [http://denyhosts.sourceforge.net/ denyhosts]&lt;br /&gt;
# [http://flyheli.dyndns.org/heliweb_database/skkill.tar C Programm zum temporaeren Blocken]&lt;br /&gt;
# VPN einrichten&lt;br /&gt;
# [http://www.portknocking.org/ Port Knocking]&lt;br /&gt;
# [[#Wie mit iptables brute force Versuche gegen einen ssh Server verhindern|iptables]]&lt;br /&gt;
# [http://linuxwiki.de/Fail2Ban fail2ban]&lt;br /&gt;
# [http://www.vuurmuur.org/trac/ vuurmuur]&lt;br /&gt;
&lt;br /&gt;
== Wie mit iptables brute force Versuche gegen einen ssh Server verhindern ==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j LOG --log-prefix SSH_brute_force&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j DROP&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen in /etc/sysconfig/scripts/SuSEfirewall2-custom nach fw_custom_before_denyall() einfuegen. Dann noch in /etc/sysconfig/SuSEfirewall2 in der Zeile FW_CUSTOMRULES=&amp;quot;/etc/sysconfig/scripts/SuSEfirewall2-custom&amp;quot; das # am Anfang entfernen.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Siehe auch:'''&lt;br /&gt;
*[[Absichern des eigenen Servers]]&lt;br /&gt;
*[[Einrichten von public keys mit ssh]]&lt;br /&gt;
*[[Mit putty und ssh key auf einen sicheren Linux Server zugreifen]]&lt;br /&gt;
*[[SuSE security fuer Einsteiger]]&lt;br /&gt;
&lt;br /&gt;
'''Weiterführende Links'''&lt;br /&gt;
*[http://us3.php.net/manual/de/features.safe-mode.php#features.safe-mode.functions SSH Brute Force Angriffe und Gegenmaßnahmen]&lt;br /&gt;
*[http://archiv.debianhowto.de/de/sshconfig/c_sshconfig.html SSH Howto]&lt;br /&gt;
*[http://www.cryptomancer.de/programme/ssh.html OpenSSH]&lt;br /&gt;
&lt;br /&gt;
eingefügt von --[[Benutzer:Yehudi|Yehudi]] 02:24, 26. Aug 2006 (CEST)&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26846</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26846"/>
		<updated>2009-03-25T22:37:13Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''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.&lt;br /&gt;
&lt;br /&gt;
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.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26845</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26845"/>
		<updated>2009-03-25T22:36:25Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''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.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26844</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26844"/>
		<updated>2009-03-25T22:34:54Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''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 der Einfachheit halber, da es eine selbstständige Problemlösung ermöglicht, 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'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26832</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26832"/>
		<updated>2009-03-19T21:53:19Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. &lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26831</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26831"/>
		<updated>2009-03-19T21:52:45Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das ist mein Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Zum linux-club kam ich da ich damals irgendein Linux suchte, dann SuSE 6.0 fand, seitdem bei SuSE geblieben bin, und der linux-club sich primär um SuSE Distributionen kümmert.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26830</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=26830"/>
		<updated>2009-03-19T21:51:30Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren ist [[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Zum linux-club kam ich da ich damals irgendein Linux suchte, dann SuSE 6.0 fand, seitdem bei SuSE geblieben bin, und der linux-club sich primär um SuSE Distributionen kümmert.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26800</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26800"/>
		<updated>2009-03-11T22:08:22Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Alle im Folgenden detailiert beschriebenen Befehle zur Problemfindung sind in [http://www.linux-tips-and-tricks.de/collectNWData diesem Script] zusammengefasst und sollte der Einfachheit halber, da sie selbstständige Problemlösung ermöglichen helfen, 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 gepostet werden'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26799</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26799"/>
		<updated>2009-03-11T21:50:38Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
Dazu auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite] gehen und die Anleitung lesen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26663</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26663"/>
		<updated>2009-02-05T21:11:30Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc)  untersucht und auf diese Konfigurationsfehler hingewiesen. Für jede Fehlermeldung gibt es Hinweise, wie die Fehler selbstständig behoben werden können.&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen werden WLAN keys aus iwconfig und den &amp;lt;code&amp;gt;ifcfg-''*''&amp;lt;/code&amp;gt; Dateien sowie öffentliche IP Adressen sowie MAC Adressen automatisch maskiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zum Aufruf und Informationen zum Script finden sich auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26662</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26662"/>
		<updated>2009-02-05T21:11:07Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc)  untersucht und auf diese Konfigurationsfehler hingewiesen. Für jede Fehlermeldung gibt es Hinweise, wie die Fehler selbstständig behoben werden können.&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen werden WLAN keys aus iwconfig und den &amp;lt;code&amp;gt;ifcfg-''*''&amp;lt;/code&amp;gt; Dateien sowie öffentliche IP Adressen sowie MAC Adressen werden automatisch maskiert.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zum Aufruf und Informationen zum Script finden sich auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26661</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26661"/>
		<updated>2009-02-05T21:10:40Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc)  untersucht und auf diese Konfigurationsfehler hingewiesen. Für jede Fehlermeldung gibt es Hinweise, wie die Fehler selbstständig behoben werden können.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zum Aufruf und Informationen zum Script finden sich auf [http://www.linux-tips-and-tricks.de/collectNWData dieser Seite]&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen werden WLAN keys aus iwconfig und den &amp;lt;code&amp;gt;ifcfg-''*''&amp;lt;/code&amp;gt; Dateien sowie öffentliche IP Adressen sowie MAC Adressen werden automatisch maskiert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26660</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=26660"/>
		<updated>2009-02-05T21:09:38Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ip -s link show eth0&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:1a:a0:13:7d:84 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     RX: bytes  packets  errors  dropped overrun mcast   &lt;br /&gt;
     9424913    44837    510097  0       0       0&lt;br /&gt;
     TX: bytes  packets  errors  dropped carrier collsns &lt;br /&gt;
     36920342   334243   0       0       0       0      &lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc)  untersucht und auf diese Konfigurationsfehler hingewiesen. Für jede Fehlermeldung gibt es Hinweise, wie die Fehler selbstständig behoben werden können.&lt;br /&gt;
&lt;br /&gt;
Weitere Details zum Aufruf und weitere Informationen dinden sich auf [http://www.linux-tips-and-tricks.de/collectNWData&amp;quot;dieser Seite&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen werden WLAN keys aus iwconfig und den &amp;lt;code&amp;gt;ifcfg-''*''&amp;lt;/code&amp;gt; Dateien sowie öffentliche IP Adressen sowie MAC Adressen werden automatisch maskiert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=ISDN_und_CAPI&amp;diff=26582</id>
		<title>ISDN und CAPI</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=ISDN_und_CAPI&amp;diff=26582"/>
		<updated>2009-01-17T13:25:35Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor:whois&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Meist wird ja unter ISDN gefaxt.&lt;br /&gt;
Nach dem Kapitel über AVM hier eins das sich mit allgemeinen Sachen befasst.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Linux ISDN HowTo&lt;br /&gt;
http://openfacts.berlios.de/index.phtml?title=Linux_ISDN_HOWTO&lt;br /&gt;
&lt;br /&gt;
HowTo des Linux Magazins zu CAPI&lt;br /&gt;
http://www.linux-magazin.de/Artikel/ausgabe/2000/10/Capi/capi.html&lt;br /&gt;
&lt;br /&gt;
FAX und CAPISUITE .&lt;br /&gt;
&lt;br /&gt;
http://www.linux-user.de/ausgabe/2004/06/064-capi/&lt;br /&gt;
http://www.linux-user.de/ausgabe/2004/06/066-capi2/&lt;br /&gt;
http://krogloth.de/alex/linux/isdn/&lt;br /&gt;
&lt;br /&gt;
ISDN Karte auch über eine RemoteCAPI an Windows PCs nutzen&lt;br /&gt;
http://www.floek.net/linux-co/der-rcapid-der-i4l-utils&lt;br /&gt;
&lt;br /&gt;
eingefügt von--[[Benutzer:Yehudi|Yehudi]] 08:29, 29. Aug 2006 (CEST)&lt;br /&gt;
&lt;br /&gt;
[[Category:Hylafax]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Zugriff_auf_Windows-Partitionen&amp;diff=26576</id>
		<title>Zugriff auf Windows-Partitionen</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Zugriff_auf_Windows-Partitionen&amp;diff=26576"/>
		<updated>2009-01-11T21:18:31Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zugriff auf Windowspartitionen =&lt;br /&gt;
&lt;br /&gt;
In der Vergangenheit war der gemeinsame Datenaustausch zwischen Linux- und Windowssystemen innerhalb eines Systemes sehr problematisch. Windows unterstützt von Haus aus lediglich zwei verschiedene Dateisysteme:&lt;br /&gt;
&lt;br /&gt;
*[http://de.wikipedia.org/wiki/File_Allocation_Table FAT] (File Allocation Table) und &lt;br /&gt;
*[http://de.wikipedia.org/wiki/NTFS NTFS] (New Technology File System)&lt;br /&gt;
&lt;br /&gt;
Für andere, offene Dateisysteme wie [http://de.wikipedia.org/wiki/Ext3 ext3] oder  [http://de.wikipedia.org/wiki/ReiserFS ReiserFS] bietet Microsoft keine Unterstützung an. Das beudetet, dass man für die [http://de.wikipedia.org/wiki/Interoperabilität Interoperabilität] des Datenaustausch grundsätzlich auf den gemeinsamen Nenner NTFS bzw. FAT angewiesen ist. Genau hier liegt auch der Knackpunkt, denn Linux unterstützte lange Zeit von Haus aus nur den uneingeschränkten Zugriff auf FAT-Partitionen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Wissenwertes zu den Windows-Dateiformaten = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Das Urgestein Fat32 ==&lt;br /&gt;
&lt;br /&gt;
FAT32 an sich ist eigentlich nur ein Überbleibsel aus alten MSDOS/Windows 95/98/ME-Tagen. Seit Windows NT verwendet Microsoft für seine Betriebssysteme standardmäßig NTFS als Dateisystem. Dem FAT-Dateisystem merkt man das Alter zunehmend an, so ist z.B. das Setzen von Benutzerrechten gar nicht erst vorgesehen und die maximale Dateigröße ist auf 4 Gigabyte beschränkt. Dennoch, der Zugriff auf FAT-Partitionen von Linux aus gestaltet sich als völlig unproblematisch. Diese werden häufig als kleinster gemeinsamer Nenner für den Datenaustausch zwischen beiden Betriebssystemen verwendet. FAT(32)-Dateisysteme fragmentieren aufgrund ihrer technischen Eigenschaften sehr. Mit der Zeit erhöht sich die Zugfriffszeit immer mehr. Ohne regelmäßige Defragmentierung kann es bei intensiver Benutzung sogar zum Daten-GAU kommen. Da Fat-Dateisysteme eigentlich Windows-Dateisysteme sind, gibt es unter Linux kein Werkzeug zum Defragmentieren von FAT-Partitionen. Wer FAT benutzt sollte grundsätzlich über ein Windows-System verfügen, mit dem man die fragmentierte Platte defragmentieren kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NTFS - Das moderne Dateisystem von Microsoft ==&lt;br /&gt;
&lt;br /&gt;
Anders sieht die Situation für NTFS aus. Da keine Spezifikationen über NTFS von Microsoft bereitgestellt wurden, war das Schreiben auf NTFS-Partitionen lange Zeit unter Linux nicht möglich. Erst in den letzten Jahren sind einige viel versprechende Projekte ins Leben gerufen worden, die das Schreiben auf Partitionen dieses Dateisystem möglich machen. Hier eine Auflistung der verschiedenen Treiber:&lt;br /&gt;
&lt;br /&gt;
*'''Kernel-Treiber''' - Der Kernel-Treiber war lange Zeit nur in der Lage NTFS-Partitionen schreibgeschützt (ReadOnly) zu mounten. Ab Kernel 2.6.7 konnten lediglich schon existierende und nicht schreibgeschützte Dateien sicher geändert bzw. überschrieben werden, wenn sich dabei die Dateigröße nicht änderte oder verkleinerte. Das Anlegen oder Löschen von Dateien oder Verzeichnissen wurde noch nicht unterstützt. Mitlerweile (seit Kernel 2.6.12) wird das Schreiben nicht einmal mehr als experimentell bezeichnet, dennoch sind mit diesem Treiber viele Einschränkungen noch vorhanden. Seit Kernel 2.6.15 ist auch das Verändern von Dateien mit Änderung der Dateigröße möglich. Anlegen und Löschen von Dateien werden vom NTFS-Kerneltreiber noch nicht unterstützt.&lt;br /&gt;
&lt;br /&gt;
*'''[http://wiki.linux-ntfs.org/doku.php?id=ntfsmount ntfs-mount]''' Dieser Treiber basiert auf [http://de.wikipedia.org/wiki/FUSE FUSE] (Filesystem in User Space) und ist somit für Betriebssysteme mit FUSE-Unterstützung verfügbar. Er erlaubt das Mounten von NTFS-Partitionen mit Schreibunterstützung. Das Schreiben auf der Partitionen kann zwar fehlschlagen, aber das Dateisystem wird bei einem Fehler nicht beschädigt.&lt;br /&gt;
&lt;br /&gt;
*'''[http://www.jankratochvil.net/project/captive/ Captive NTFS-Treiber]''' Captive verwendet, anders als die anderen Lösungen, den Original-Treiber ntfs.sys aus Windows XP, der mit einer Kompatibilitätsschicht umgeben wird. Damit wird eine vollständige Schreibunterstützung erreicht. Der Nachteil dieser Lösung liegt darin, dass sie erhebliche Ressourcen benötigt und verhältnismäßig langsam ist. Zudem benötigt man eine Windows-Lizenz für diesen Treiber.&lt;br /&gt;
&lt;br /&gt;
*'''[http://www.ntfs-3g.org/index.html ntfs-3g]''' Das neueste Projekt in der Runde ist der ntfs-3g-Treiber (Weiterentwicklung von ntfs-mount). Hiermit lassen sich Dateien (sofern sie nicht verschlüsselt oder komprimiert sind) auf NTFS-Partitionen modifizieren, löschen und erstellen. Das gesamte Projekt basiert auf [http://de.wikipedia.org/wiki/Reverse_Engineering Reverse Engineering]. Das Projekt ist mittlerweile für den produktiven Einsatz in der Version 1.0 freigegeben, auch wenn z.B. NTFS-Berechtigungen noch nicht unterstützt werden. Viele Linux-Distributionen verwenden mittlerweile '''ntfs-3g''' (out of the box) als Standardtreiber für den Umgang mit NTFS-Partitionen. NTFS-3g ist somit in recht kurzer Zeit zur besten Alternative für den Datenaustausch zwischen Windows und Linux geworden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Windows Partitionen in das System einhängen =&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Achtung''': In einer Linux-Only-Umgebung sollte man grundsätzlich keine FAT/NTFS-Dateisysteme einsetzen. Das fehlende Berechtigungssystem und die mit der Zeit zunehmende Fragmentierung der Daten sprechen klar gegen den Einsatz von Windows-Dateisystemen unter Linux. Stattdessen sollte man lieber ein [[Inode]] basiertes Dateisystem wie [[ext3]] oder [[reiserfs]] verwenden!}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Hinweis|'''Hinweis:''' Für die folgenden Beispiele benötigt man [[root]]-Rechte}}&lt;br /&gt;
&lt;br /&gt;
== Grundlegendes zum Einbinden von Partitionen  ==&lt;br /&gt;
&lt;br /&gt;
'''Unter Linux gibt es keine Laufwerkbuchstaben'''. Wenn man auf ein anderes Dateisystem, Festplatte, bzw. auf eine andere Partition zugreifen will, muss man diese(s) zuvor mounten. Das bedeutet, dass der Datenträger an einer bestimmten Stelle  im Verzeichnisbaum eingehängt wird. Man kann Dateisysteme beim Hochfahren auch automatisch mounten lassen. &lt;br /&gt;
&lt;br /&gt;
Dazu muss ein Eintrag in der Datei &lt;br /&gt;
&amp;lt;pre&amp;gt;/etc/fstab&amp;lt;/pre&amp;gt;&lt;br /&gt;
vorgenommen werden. Wenn ein solcher Eintrag existiert kann man die Dateisysteme auch mit &lt;br /&gt;
&amp;lt;pre&amp;gt;mount /mountpoint&amp;lt;/pre&amp;gt;&lt;br /&gt;
bzw. mit &lt;br /&gt;
&amp;lt;pre&amp;gt;umount /mountpoint&amp;lt;/pre&amp;gt; ein- bzw. aushängen, da sich die mount-Befehle die bennötigten Informationen aus der &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; holen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Achtung|'''Bitte beim Editieren der &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; mit Bedacht vorgehen. Bei Syntaxfehlern (Eingabefehlern) kann es zu Problemen beim Systemstart kommen.'''}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einbinden von FAT32-Partitionen ==&lt;br /&gt;
&lt;br /&gt;
Um eine FAT-Partition in das System einzuhängen kann man den Befehl: &lt;br /&gt;
&amp;lt;pre&amp;gt;mount -t vfat -o users,exec,gid=users,umask=000,utf8 /dev/hdx1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
verwenden (wobei x für den Buchstabden des Devices steht und die 1 für die Nummer der Partition).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um die Partition direkt beim Systemstart einzubinden, fügt man einen Eintrag in der /etc/fstab hinzu.&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/hda1        /windows/C      vfat     auto,rw                0 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In diesem Beispiel ist '''/dev/hda1''' die Partition auf der Windows installiert ist und wird in das Verzeichnis /windows/C eingehangen.&lt;br /&gt;
&lt;br /&gt;
Wenn alle Benutzer auf die Windows-Partition zugreifen sollen, muss man weitere Optionen hinzufügen.&lt;br /&gt;
&lt;br /&gt;
Damit alle in der Lage sind die Partition ein- bzw. auszuhängen, muss man die Option '''users''' an die fstab übergeben.&lt;br /&gt;
Wenn man '''user''' anstelle von '''users''' verwendet, dürfen zwar alle Benutzer die Partition mounten, aber nur derjenige, der sie eingehangen hat, darf sie unmounten.&lt;br /&gt;
&lt;br /&gt;
Windowsdateisysteme kennen nicht wie Linuxdateisysteme bzgl. der Rechtevergabe die unter Linux übliche Aufteilung zwischen User, Group und Other.&lt;br /&gt;
Um dennoch grundlegende Gruppen- und Benutzerrechte festlegen zu können, muss man der fstab die Optionen '''uid''' und '''gid''' mitteilen.&lt;br /&gt;
Die folgende Zeile würde z.B.&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/hda1 /windows/C vfat users,exec,gid=users,umask=000,utf8 0 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
die FAT32-Partition &amp;lt;code&amp;gt;hda1&amp;lt;/code&amp;gt; wider in das Verzeichnis &amp;lt;code&amp;gt;/mnt/windows&amp;lt;/code&amp;gt; einhängen. Alle Benutzer dürften das Verzeichnis mounten und haben vollen Schreibzugriff.&lt;br /&gt;
Die Gruppenzugehörigkeit läge bei der Gruppe '''users'''. Zusätzlich wurde als Zeichensatz utf8 übergeben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Einbinden von NTFS-Partitionen ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NTFS Unterstützung des Kernels ===&lt;br /&gt;
&lt;br /&gt;
NTFS-Partitionen lassen sich ähnlich wie VFAT-Partitionen in das System einhängen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mount -t ntfs -o ro,users,exec,gid=users,umask=0002,utf8 /dev/hda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Eintrag in &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;/dev/hda1 /mnt ntfs ro,users,exec,gid=users,umask=0002,utf8 0 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die zusätzlichen Mountoptionen sind analog zu denen von vfat (siehe oben).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== NTFS-3g verwenden ===&lt;br /&gt;
&lt;br /&gt;
Für ntfs-3g benötigt man folgende Pakete&lt;br /&gt;
&lt;br /&gt;
*fuse&lt;br /&gt;
*ntfs-3g&lt;br /&gt;
&lt;br /&gt;
Seit openSUSE 10.3 ist '''ntfs-3g''' standardmäßig in der Distribution enthalten. Bei älteren SuSE-Versionen muss man den Treiber nachträglich aus dem Filesystem-Repository des openSUSE Buildservices installieren. In diesem Repository findet man stets aktuelle ntfs-3g-Versionen.&lt;br /&gt;
Dazu muss man das zur Distribution passende Repository zum Paketmanager seiner Wahl (z.B. [[YaST]], [[Smart]], oder [[APT]]) hinzufügen.&lt;br /&gt;
&lt;br /&gt;
{{OpenSUSE|11.0|&lt;br /&gt;
'''http://download.opensuse.org/repositories/filesystems/openSUSE_11.0/'''&lt;br /&gt;
}}&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
'''http://download.opensuse.org/repositories/filesystems/openSUSE_10.3/'''&lt;br /&gt;
}}&lt;br /&gt;
{{OpenSUSE|10.2|&lt;br /&gt;
'''http://download.opensuse.org/repositories/filesystems/openSUSE_10.2/'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um eine Partition manuell einzuhängen kann man den Befehl:&lt;br /&gt;
&amp;lt;pre&amp;gt;mount -t ntfs-3g -o ro,gid=users,umask=0002 /dev/sda1 /mnt&amp;lt;/pre&amp;gt;&lt;br /&gt;
verwenden.&lt;br /&gt;
&lt;br /&gt;
In der &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt; lässt sich ntfs-3g fast analog zum vfat/ntfs-kernel-Treiber einhängen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Device      Mountpoint     Filesystem   Parameters&lt;br /&gt;
/dev/sda1    /Windows/C     ntfs-3g      user,users,gid=users,umask=0002,utf8    0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Der andere Weg ==&lt;br /&gt;
&lt;br /&gt;
Wenn alle Stricke reißen und hier nichts wirklich brauchbar erscheint, kann man auch über einen anderen Weg nachdenken.&lt;br /&gt;
Da Linux offene Dateisysteme verwendet und somit für jeden zugänglich sind, gibt es einige Projekte die versuchen Windows EXT2/3 kompatibel zu machen. Das [http://www.fs-driver.org/index.html Ext2 Installable File System For Windows] bringt Windows dazu auf ext-Partitionen Zugriff zu bekommen.&lt;br /&gt;
&lt;br /&gt;
= Lesestoff &amp;amp; Weblinks =&lt;br /&gt;
&lt;br /&gt;
* [http://man.cx/mount(2)/de manpage mount]&lt;br /&gt;
* [http://man.he.net/?topic=fstab&amp;amp;section=all Manpage fstab]&lt;br /&gt;
* http://en.opensuse.org/NTFS&lt;br /&gt;
* [http://www.linux-club.de/viewtopic.php?t=4949 Bezeichnung von Laufwerken/Partitionen/Festplatten unter Linux]&lt;br /&gt;
* [http://gentoo-wiki.com/HOWTO_Mount_Windows_partitions_(DOS%2C_FAT%2CNTFS) Windowspartitionen Mounten in der Gentoo-Wiki]&lt;br /&gt;
* [http://www.fs-driver.org/faq.html FAQ für EXT2-Windowstreiber]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Partitionen]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26143</id>
		<title>Wie sichere ich meinen ssh Server</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26143"/>
		<updated>2008-10-14T18:41:30Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Schritte zum Sichern eines ssh Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
== Schritte zum Sichern eines ssh Servers == &lt;br /&gt;
&lt;br /&gt;
# Entscheidung über die Zugangsmethode: Passwort oder public key&lt;br /&gt;
# Direktes Sichern durch korrekte Konfiguration der sshd_config Parameter&lt;br /&gt;
# Sichern vor Angriffsversuchen&lt;br /&gt;
# Ständiges Einspielen von sshd Securityupdates&lt;br /&gt;
&lt;br /&gt;
Die sicherste Methode ist die Benutzung von public keys und sollte möglichst immer benutzt werden ([[Einrichten von public keys mit ssh]]). Damit kommen nur Personen, die den Key besitzen in das System. Das setzt aber voraus, dass man den Key immer dabei hat bzw immer von demselben System per ssh zugreift. Alternativ ist auch die gute alte Passwordauthentifierung möglich. Dabei ist das Passwort der kritische Punkt und muss unbedingt sorgfältig und nicht trivial gewaehlt werden. Besonders ist dabei zu beachten, dass das für alle Benutzer auf dem System zutrifft und diese verdonnert werden müssen ihre Passwörter nicht trivial zu wählen.&lt;br /&gt;
&lt;br /&gt;
root login per ssh darf nicht möglich sein. Das kann man in der Konfig ausschalten. Außerdem wird ganz gezielt die Zahl der Benutzer, die per ssh zugreifen darf, definiert. Der Zugriff erfolgt dann mit einem normalen User (möglichst mit einen ausgefallenen Namen) der sich entweder per su oder noch besser per sudo entsprechende [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|root Rechte besorgt]]. Damit muss ein Angreifer erst einmal die Userid das Users erraten und dann noch das Password bzw den Key haben.&lt;br /&gt;
&lt;br /&gt;
Mit relativ einfachen Mitteln kann man bei einem ssh Server Userids und Passwoerter automatisch durchprobieren. D.h. wenn jemand entdeckt hat, dass ein ssh Daemon auf einem System läuft kann er mit der BruteForceMethode versuchen in das System zu kommen. Das gibt dann so ellenlange Meldungen im Log wie&lt;br /&gt;
 Jul  1 23:22:23 gateway sshd[6933]: Failed password for invalid user ftpuser from ::ffff:210.212.160.112 port 43388 ssh2&lt;br /&gt;
Es gibt mehrere Möglichkeiten dieses zu unterbinden. Dazu gehört das Tool denyhosts, welches IPs für immer per iptables aussperrt, ein C Programm, welches die IPs fuer eine gewisse Zeit aussperrt, ein paar iptables Befehle, die Zugriffsversuche auf den ssh Port extrem verlangsamen oder die Einrichtung eines VPNs. Dann ist der ssh Port nur noch im VPN sichtbar. Des weiteren kann man PortKnocking einsetzen um gezielt Ports fuer Clients zu öffnen. Das Prinzip ist einfach: Ein Client, der Kenntnis ueber das PortKnocking hat schickt an eine bestimmte Sequenz von Ports ein SYN (Prinzip einer PIN). Diese Sequenz führt auf dem Server dazu dass ein anderer Port ganz gezielt nur für den Client der eben die port PIN gewählt hat geöffnet wird.&lt;br /&gt;
Eine recht einfache Möglichkeit ist auch nicht den Standard sshd Port zu benutzen. ScriptKiddies scannen üblicherweise nur nach Port 22. Dieses hält natuerlich einen richtigen Hacker nicht ab. Aber die Eindringversuche nehmen dadurch schon extrem ab.&lt;br /&gt;
&lt;br /&gt;
== Wichtige sshd_config Parameter und deren Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Inhalt von '''/etc/ssh/sshd_config'''&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 # oder die folgende Zeile um einen nicht Standardport zu benutzen&lt;br /&gt;
 #Port xxxx # xxxx irgendein beliebiger freier Port&lt;br /&gt;
 Protocol 2&lt;br /&gt;
 LogLevel INFO&lt;br /&gt;
 # oder etwas detailiertere Infos mit VERBOSE&lt;br /&gt;
 #LogLevel VERBOSE&lt;br /&gt;
 ClientAliveInterval 15&lt;br /&gt;
 LoginGraceTime 10&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 StrictModes yes&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 RSAAuthentication no&lt;br /&gt;
 RhostsRSAAuthentication no&lt;br /&gt;
 HostbasedAuthentication no&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 # oder die folgende Zeile wenn Passwortauthentifizierung gewuenscht ist (nicht empfehlenswert)&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 PrintLastLog yes&lt;br /&gt;
 KeepAlive no&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 MaxStartups 1&lt;br /&gt;
 AllowUsers      xxxx yyyy zzzz&lt;br /&gt;
 # xxxx yyyy und zzzz muessen normale aber ausgefallene Userids auf dem System sein&lt;br /&gt;
 AllowGroups     users&lt;br /&gt;
 DenyGroups      root&lt;br /&gt;
 DenyUsers       root&lt;br /&gt;
&lt;br /&gt;
== Wie systematisches ssh Userid/Passwort probieren verhindern ==&lt;br /&gt;
&lt;br /&gt;
Wer keys benutzt braucht sich keine Sorgen zu machen. Unschön sind nur die ewigen Logeintraege. Die können durch folgende Massnahmen verhindert bzw reduziert werden:&lt;br /&gt;
&lt;br /&gt;
# Nicht standard ssh Portbenutzen (Port Zeile in sshd_config)&lt;br /&gt;
# [http://denyhosts.sourceforge.net/ denyhosts]&lt;br /&gt;
# [http://flyheli.dyndns.org/heliweb_database/skkill.tar C Programm zum temporaeren Blocken]&lt;br /&gt;
# VPN einrichten&lt;br /&gt;
# [http://www.portknocking.org/ Port Knocking]&lt;br /&gt;
# [[#Wie mit iptables brute force Versuche gegen einen ssh Server verhindern|iptables]]&lt;br /&gt;
# [http://linuxwiki.de/Fail2Ban fail2ban]&lt;br /&gt;
# [http://www.vuurmuur.org/trac/ vuurmuur]&lt;br /&gt;
&lt;br /&gt;
== Wie mit iptables brute force Versuche gegen einen ssh Server verhindern ==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j LOG --log-prefix SSH_brute_force&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j DROP&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen in /etc/sysconfig/scripts/SuSEfirewall2-custom nach fw_custom_before_denyall() einfuegen. Dann noch in /etc/sysconfig/SuSEfirewall2 in der Zeile FW_CUSTOMRULES=&amp;quot;/etc/sysconfig/scripts/SuSEfirewall2-custom&amp;quot; das # am Anfang entfernen.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Siehe auch:'''&lt;br /&gt;
*[[Absichern des eigenen Servers]]&lt;br /&gt;
*[[Einrichten von public keys mit ssh]]&lt;br /&gt;
*[[Mit putty und ssh key auf einen sicheren Linux Server zugreifen]]&lt;br /&gt;
*[[SuSE security fuer Einsteiger]]&lt;br /&gt;
&lt;br /&gt;
'''Weiterführende Links'''&lt;br /&gt;
*[http://us3.php.net/manual/de/features.safe-mode.php#features.safe-mode.functions SSH Brute Force Angriffe und Gegenmaßnahmen]&lt;br /&gt;
*[http://archiv.debianhowto.de/de/sshconfig/c_sshconfig.html SSH Howto]&lt;br /&gt;
*[http://www.cryptomancer.de/programme/ssh.html OpenSSH]&lt;br /&gt;
&lt;br /&gt;
eingefügt von --[[Benutzer:Yehudi|Yehudi]] 02:24, 26. Aug 2006 (CEST)&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26142</id>
		<title>Wie sichere ich meinen ssh Server</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26142"/>
		<updated>2008-10-14T18:41:14Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Schritte zum Sichern eines ssh Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
== Schritte zum Sichern eines ssh Servers == &lt;br /&gt;
&lt;br /&gt;
# Entscheidung über die Zugangsmethode: Passwort oder public key&lt;br /&gt;
# Direktes Sichern durch korrekte Konfiguration der sshd_config Parameter&lt;br /&gt;
# Sichern vor Angriffsversuchen&lt;br /&gt;
# Ständiges Einspielen von sshd Securityupdates&lt;br /&gt;
&lt;br /&gt;
Die sicherste Methode ist die Benutzung von public keys und sollte möglichst immer benutzt werden [[Einrichten von public keys mit ssh]]. Damit kommen nur Personen, die den Key besitzen in das System. Das setzt aber voraus, dass man den Key immer dabei hat bzw immer von demselben System per ssh zugreift. Alternativ ist auch die gute alte Passwordauthentifierung möglich. Dabei ist das Passwort der kritische Punkt und muss unbedingt sorgfältig und nicht trivial gewaehlt werden. Besonders ist dabei zu beachten, dass das für alle Benutzer auf dem System zutrifft und diese verdonnert werden müssen ihre Passwörter nicht trivial zu wählen.&lt;br /&gt;
&lt;br /&gt;
root login per ssh darf nicht möglich sein. Das kann man in der Konfig ausschalten. Außerdem wird ganz gezielt die Zahl der Benutzer, die per ssh zugreifen darf, definiert. Der Zugriff erfolgt dann mit einem normalen User (möglichst mit einen ausgefallenen Namen) der sich entweder per su oder noch besser per sudo entsprechende [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|root Rechte besorgt]]. Damit muss ein Angreifer erst einmal die Userid das Users erraten und dann noch das Password bzw den Key haben.&lt;br /&gt;
&lt;br /&gt;
Mit relativ einfachen Mitteln kann man bei einem ssh Server Userids und Passwoerter automatisch durchprobieren. D.h. wenn jemand entdeckt hat, dass ein ssh Daemon auf einem System läuft kann er mit der BruteForceMethode versuchen in das System zu kommen. Das gibt dann so ellenlange Meldungen im Log wie&lt;br /&gt;
 Jul  1 23:22:23 gateway sshd[6933]: Failed password for invalid user ftpuser from ::ffff:210.212.160.112 port 43388 ssh2&lt;br /&gt;
Es gibt mehrere Möglichkeiten dieses zu unterbinden. Dazu gehört das Tool denyhosts, welches IPs für immer per iptables aussperrt, ein C Programm, welches die IPs fuer eine gewisse Zeit aussperrt, ein paar iptables Befehle, die Zugriffsversuche auf den ssh Port extrem verlangsamen oder die Einrichtung eines VPNs. Dann ist der ssh Port nur noch im VPN sichtbar. Des weiteren kann man PortKnocking einsetzen um gezielt Ports fuer Clients zu öffnen. Das Prinzip ist einfach: Ein Client, der Kenntnis ueber das PortKnocking hat schickt an eine bestimmte Sequenz von Ports ein SYN (Prinzip einer PIN). Diese Sequenz führt auf dem Server dazu dass ein anderer Port ganz gezielt nur für den Client der eben die port PIN gewählt hat geöffnet wird.&lt;br /&gt;
Eine recht einfache Möglichkeit ist auch nicht den Standard sshd Port zu benutzen. ScriptKiddies scannen üblicherweise nur nach Port 22. Dieses hält natuerlich einen richtigen Hacker nicht ab. Aber die Eindringversuche nehmen dadurch schon extrem ab.&lt;br /&gt;
&lt;br /&gt;
== Wichtige sshd_config Parameter und deren Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Inhalt von '''/etc/ssh/sshd_config'''&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 # oder die folgende Zeile um einen nicht Standardport zu benutzen&lt;br /&gt;
 #Port xxxx # xxxx irgendein beliebiger freier Port&lt;br /&gt;
 Protocol 2&lt;br /&gt;
 LogLevel INFO&lt;br /&gt;
 # oder etwas detailiertere Infos mit VERBOSE&lt;br /&gt;
 #LogLevel VERBOSE&lt;br /&gt;
 ClientAliveInterval 15&lt;br /&gt;
 LoginGraceTime 10&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 StrictModes yes&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 RSAAuthentication no&lt;br /&gt;
 RhostsRSAAuthentication no&lt;br /&gt;
 HostbasedAuthentication no&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 # oder die folgende Zeile wenn Passwortauthentifizierung gewuenscht ist (nicht empfehlenswert)&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 PrintLastLog yes&lt;br /&gt;
 KeepAlive no&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 MaxStartups 1&lt;br /&gt;
 AllowUsers      xxxx yyyy zzzz&lt;br /&gt;
 # xxxx yyyy und zzzz muessen normale aber ausgefallene Userids auf dem System sein&lt;br /&gt;
 AllowGroups     users&lt;br /&gt;
 DenyGroups      root&lt;br /&gt;
 DenyUsers       root&lt;br /&gt;
&lt;br /&gt;
== Wie systematisches ssh Userid/Passwort probieren verhindern ==&lt;br /&gt;
&lt;br /&gt;
Wer keys benutzt braucht sich keine Sorgen zu machen. Unschön sind nur die ewigen Logeintraege. Die können durch folgende Massnahmen verhindert bzw reduziert werden:&lt;br /&gt;
&lt;br /&gt;
# Nicht standard ssh Portbenutzen (Port Zeile in sshd_config)&lt;br /&gt;
# [http://denyhosts.sourceforge.net/ denyhosts]&lt;br /&gt;
# [http://flyheli.dyndns.org/heliweb_database/skkill.tar C Programm zum temporaeren Blocken]&lt;br /&gt;
# VPN einrichten&lt;br /&gt;
# [http://www.portknocking.org/ Port Knocking]&lt;br /&gt;
# [[#Wie mit iptables brute force Versuche gegen einen ssh Server verhindern|iptables]]&lt;br /&gt;
# [http://linuxwiki.de/Fail2Ban fail2ban]&lt;br /&gt;
# [http://www.vuurmuur.org/trac/ vuurmuur]&lt;br /&gt;
&lt;br /&gt;
== Wie mit iptables brute force Versuche gegen einen ssh Server verhindern ==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j LOG --log-prefix SSH_brute_force&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j DROP&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen in /etc/sysconfig/scripts/SuSEfirewall2-custom nach fw_custom_before_denyall() einfuegen. Dann noch in /etc/sysconfig/SuSEfirewall2 in der Zeile FW_CUSTOMRULES=&amp;quot;/etc/sysconfig/scripts/SuSEfirewall2-custom&amp;quot; das # am Anfang entfernen.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Siehe auch:'''&lt;br /&gt;
*[[Absichern des eigenen Servers]]&lt;br /&gt;
*[[Einrichten von public keys mit ssh]]&lt;br /&gt;
*[[Mit putty und ssh key auf einen sicheren Linux Server zugreifen]]&lt;br /&gt;
*[[SuSE security fuer Einsteiger]]&lt;br /&gt;
&lt;br /&gt;
'''Weiterführende Links'''&lt;br /&gt;
*[http://us3.php.net/manual/de/features.safe-mode.php#features.safe-mode.functions SSH Brute Force Angriffe und Gegenmaßnahmen]&lt;br /&gt;
*[http://archiv.debianhowto.de/de/sshconfig/c_sshconfig.html SSH Howto]&lt;br /&gt;
*[http://www.cryptomancer.de/programme/ssh.html OpenSSH]&lt;br /&gt;
&lt;br /&gt;
eingefügt von --[[Benutzer:Yehudi|Yehudi]] 02:24, 26. Aug 2006 (CEST)&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26141</id>
		<title>Wie sichere ich meinen ssh Server</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Wie_sichere_ich_meinen_ssh_Server&amp;diff=26141"/>
		<updated>2008-10-14T18:40:43Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Schritte zum Sichern eines ssh Servers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autor: [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
== Schritte zum Sichern eines ssh Servers == &lt;br /&gt;
&lt;br /&gt;
# Entscheidung über die Zugangsmethode: Passwort oder public key&lt;br /&gt;
# Direktes Sichern durch korrekte Konfiguration der sshd_config Parameter&lt;br /&gt;
# Sichern vor Angriffsversuchen&lt;br /&gt;
# Ständiges Einspielen von sshd Securityupdates&lt;br /&gt;
&lt;br /&gt;
Die sicherste Methode ist die Benutzung von public keys und sollte möglichst immer benutzt werden (Einrichten von public keys bei ssh). Damit kommen nur Personen, die den Key besitzen in das System. Das setzt aber voraus, dass man den Key immer dabei hat bzw immer von demselben System per ssh zugreift. Alternativ ist auch die gute alte Passwordauthentifierung möglich. Dabei ist das Passwort der kritische Punkt und muss unbedingt sorgfältig und nicht trivial gewaehlt werden. Besonders ist dabei zu beachten, dass das für alle Benutzer auf dem System zutrifft und diese verdonnert werden müssen ihre Passwörter nicht trivial zu wählen.&lt;br /&gt;
&lt;br /&gt;
root login per ssh darf nicht möglich sein. Das kann man in der Konfig ausschalten. Außerdem wird ganz gezielt die Zahl der Benutzer, die per ssh zugreifen darf, definiert. Der Zugriff erfolgt dann mit einem normalen User (möglichst mit einen ausgefallenen Namen) der sich entweder per su oder noch besser per sudo entsprechende [[Permanent root sein#Aber dann muss ich ja immer wechseln.2C wenn ich root sein will|root Rechte besorgt]]. Damit muss ein Angreifer erst einmal die Userid das Users erraten und dann noch das Password bzw den Key haben.&lt;br /&gt;
&lt;br /&gt;
Mit relativ einfachen Mitteln kann man bei einem ssh Server Userids und Passwoerter automatisch durchprobieren. D.h. wenn jemand entdeckt hat, dass ein ssh Daemon auf einem System läuft kann er mit der BruteForceMethode versuchen in das System zu kommen. Das gibt dann so ellenlange Meldungen im Log wie&lt;br /&gt;
 Jul  1 23:22:23 gateway sshd[6933]: Failed password for invalid user ftpuser from ::ffff:210.212.160.112 port 43388 ssh2&lt;br /&gt;
Es gibt mehrere Möglichkeiten dieses zu unterbinden. Dazu gehört das Tool denyhosts, welches IPs für immer per iptables aussperrt, ein C Programm, welches die IPs fuer eine gewisse Zeit aussperrt, ein paar iptables Befehle, die Zugriffsversuche auf den ssh Port extrem verlangsamen oder die Einrichtung eines VPNs. Dann ist der ssh Port nur noch im VPN sichtbar. Des weiteren kann man PortKnocking einsetzen um gezielt Ports fuer Clients zu öffnen. Das Prinzip ist einfach: Ein Client, der Kenntnis ueber das PortKnocking hat schickt an eine bestimmte Sequenz von Ports ein SYN (Prinzip einer PIN). Diese Sequenz führt auf dem Server dazu dass ein anderer Port ganz gezielt nur für den Client der eben die port PIN gewählt hat geöffnet wird.&lt;br /&gt;
Eine recht einfache Möglichkeit ist auch nicht den Standard sshd Port zu benutzen. ScriptKiddies scannen üblicherweise nur nach Port 22. Dieses hält natuerlich einen richtigen Hacker nicht ab. Aber die Eindringversuche nehmen dadurch schon extrem ab.&lt;br /&gt;
&lt;br /&gt;
== Wichtige sshd_config Parameter und deren Einstellungen ==&lt;br /&gt;
&lt;br /&gt;
Inhalt von '''/etc/ssh/sshd_config'''&lt;br /&gt;
&lt;br /&gt;
 Port 22&lt;br /&gt;
 # oder die folgende Zeile um einen nicht Standardport zu benutzen&lt;br /&gt;
 #Port xxxx # xxxx irgendein beliebiger freier Port&lt;br /&gt;
 Protocol 2&lt;br /&gt;
 LogLevel INFO&lt;br /&gt;
 # oder etwas detailiertere Infos mit VERBOSE&lt;br /&gt;
 #LogLevel VERBOSE&lt;br /&gt;
 ClientAliveInterval 15&lt;br /&gt;
 LoginGraceTime 10&lt;br /&gt;
 PermitRootLogin no&lt;br /&gt;
 StrictModes yes&lt;br /&gt;
 PubkeyAuthentication yes&lt;br /&gt;
 IgnoreRhosts yes&lt;br /&gt;
 RSAAuthentication no&lt;br /&gt;
 RhostsRSAAuthentication no&lt;br /&gt;
 HostbasedAuthentication no&lt;br /&gt;
 PasswordAuthentication no&lt;br /&gt;
 # oder die folgende Zeile wenn Passwortauthentifizierung gewuenscht ist (nicht empfehlenswert)&lt;br /&gt;
 #PasswordAuthentication yes&lt;br /&gt;
 PermitEmptyPasswords no&lt;br /&gt;
 ChallengeResponseAuthentication no&lt;br /&gt;
 PrintLastLog yes&lt;br /&gt;
 KeepAlive no&lt;br /&gt;
 MaxAuthTries 3&lt;br /&gt;
 MaxStartups 1&lt;br /&gt;
 AllowUsers      xxxx yyyy zzzz&lt;br /&gt;
 # xxxx yyyy und zzzz muessen normale aber ausgefallene Userids auf dem System sein&lt;br /&gt;
 AllowGroups     users&lt;br /&gt;
 DenyGroups      root&lt;br /&gt;
 DenyUsers       root&lt;br /&gt;
&lt;br /&gt;
== Wie systematisches ssh Userid/Passwort probieren verhindern ==&lt;br /&gt;
&lt;br /&gt;
Wer keys benutzt braucht sich keine Sorgen zu machen. Unschön sind nur die ewigen Logeintraege. Die können durch folgende Massnahmen verhindert bzw reduziert werden:&lt;br /&gt;
&lt;br /&gt;
# Nicht standard ssh Portbenutzen (Port Zeile in sshd_config)&lt;br /&gt;
# [http://denyhosts.sourceforge.net/ denyhosts]&lt;br /&gt;
# [http://flyheli.dyndns.org/heliweb_database/skkill.tar C Programm zum temporaeren Blocken]&lt;br /&gt;
# VPN einrichten&lt;br /&gt;
# [http://www.portknocking.org/ Port Knocking]&lt;br /&gt;
# [[#Wie mit iptables brute force Versuche gegen einen ssh Server verhindern|iptables]]&lt;br /&gt;
# [http://linuxwiki.de/Fail2Ban fail2ban]&lt;br /&gt;
# [http://www.vuurmuur.org/trac/ vuurmuur]&lt;br /&gt;
&lt;br /&gt;
== Wie mit iptables brute force Versuche gegen einen ssh Server verhindern ==&lt;br /&gt;
&lt;br /&gt;
Code:&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j LOG --log-prefix SSH_brute_force&lt;br /&gt;
 iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 1200 --hitcount 2  --rttl --name SSH -j DROP&lt;br /&gt;
&lt;br /&gt;
Diese Zeilen in /etc/sysconfig/scripts/SuSEfirewall2-custom nach fw_custom_before_denyall() einfuegen. Dann noch in /etc/sysconfig/SuSEfirewall2 in der Zeile FW_CUSTOMRULES=&amp;quot;/etc/sysconfig/scripts/SuSEfirewall2-custom&amp;quot; das # am Anfang entfernen.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
'''Siehe auch:'''&lt;br /&gt;
*[[Absichern des eigenen Servers]]&lt;br /&gt;
*[[Einrichten von public keys mit ssh]]&lt;br /&gt;
*[[Mit putty und ssh key auf einen sicheren Linux Server zugreifen]]&lt;br /&gt;
*[[SuSE security fuer Einsteiger]]&lt;br /&gt;
&lt;br /&gt;
'''Weiterführende Links'''&lt;br /&gt;
*[http://us3.php.net/manual/de/features.safe-mode.php#features.safe-mode.functions SSH Brute Force Angriffe und Gegenmaßnahmen]&lt;br /&gt;
*[http://archiv.debianhowto.de/de/sshconfig/c_sshconfig.html SSH Howto]&lt;br /&gt;
*[http://www.cryptomancer.de/programme/ssh.html OpenSSH]&lt;br /&gt;
&lt;br /&gt;
eingefügt von --[[Benutzer:Yehudi|Yehudi]] 02:24, 26. Aug 2006 (CEST)&lt;br /&gt;
[[Category:Security]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=25891</id>
		<title>Tests bei Problemen mit der Internetverbindung</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Tests_bei_Problemen_mit_der_Internetverbindung&amp;diff=25891"/>
		<updated>2008-08-03T21:13:43Z</updated>

		<summary type="html">&lt;p&gt;Framp: /* Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Autoren Martin Breidenbach, [[Benutzer:framp|framp]]&lt;br /&gt;
&lt;br /&gt;
{{Überarbeiten|sprachlich verbessern}}&lt;br /&gt;
&lt;br /&gt;
{{Box Achtung||&lt;br /&gt;
'''Etwa 97% der Probleme mit Internetverbindungen liegen an fehlender oder falscher Konfiguration von Standardgateway und/oder DNS. Überprüft bitte diesbezüglich eure Konfiguration.'''&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Alle Befehle müssen in einem Konsolenfenster eingegeben werden.&lt;br /&gt;
&lt;br /&gt;
== Öffnen eines Konsolenfensters ==&lt;br /&gt;
&lt;br /&gt;
Unter KDE entweder auf das Icon mit dem Monitor und der Muschel klicken. Oder ALT-F2 drücken und '&amp;lt;code&amp;gt;konsole&amp;lt;/code&amp;gt;' eingeben. Oder ALT-CTRL-F1 drücken und an Textkonsole anmelden (und mit ALT-CTRL-F7 geht es zurück).&lt;br /&gt;
&lt;br /&gt;
== Inhalt einer Datei ansehen ==&lt;br /&gt;
&lt;br /&gt;
Da auch hiermit Leute immer wieder unüberwindbare Probleme haben (GRUNDLAGEN und so...):&lt;br /&gt;
&lt;br /&gt;
Den Inhalt einer Textdatei (wie z.B. &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;) kann man sich mit vielen Befehlen ansehen. Da bieten sich z.B. an:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
 less /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
`&amp;lt;code&amp;gt;cat&amp;lt;/code&amp;gt;` gibt einfach nur den Inhalt auf der Konsole aus. Mittels `&amp;lt;code&amp;gt;less&amp;lt;/code&amp;gt;` kann man darin umherblättern.&lt;br /&gt;
&lt;br /&gt;
== root-Rechte ==&lt;br /&gt;
&lt;br /&gt;
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 `&amp;lt;code&amp;gt;su&amp;lt;/code&amp;gt;` und dann das root-Kennwort eingibt. Unter KDE kann man auch 'kdesu befehl' verwenden.&lt;br /&gt;
&lt;br /&gt;
Der Befehl `&amp;lt;code&amp;gt;ip&amp;lt;/code&amp;gt;` liegt im Verzeichnis &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und dieses liegt für normale User nicht im Suchpfad. Man kann es aber via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; aufrufen.&lt;br /&gt;
&lt;br /&gt;
== Ausgabe eines Befehls in Datei umleiten ==&lt;br /&gt;
&lt;br /&gt;
Ihr könnt unter Linux und Windows die Ausgabe eines Befehls in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 befehl &amp;gt;ausgabe.txt&lt;br /&gt;
&lt;br /&gt;
Dann braucht Ihr es nicht abschreiben.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 mcopy datei a:&lt;br /&gt;
&lt;br /&gt;
== Es funktioniert unter Windows aber nicht unter Linux ==&lt;br /&gt;
&lt;br /&gt;
Unter Windows NT/2K/XP wird die TCPIP-Netzwerkkartenkonfiguration mit folgendem Befehl angezeigt:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all&lt;br /&gt;
&lt;br /&gt;
Wer zu faul zum Abschreiben ist kann das auch mit in eine Datei umleiten:&lt;br /&gt;
&lt;br /&gt;
 ipconfig /all &amp;gt;ipconfig.txt&lt;br /&gt;
&lt;br /&gt;
Die TCPIP-Konfiguration einer Netzwerkkarte kann man unter Win9x mit diesem grafischen Tool ansehen:&lt;br /&gt;
&lt;br /&gt;
 winipcfg&lt;br /&gt;
&lt;br /&gt;
Die Routingtabelle wird ausgegeben mit:&lt;br /&gt;
&lt;br /&gt;
 route print&lt;br /&gt;
&lt;br /&gt;
bzw.&lt;br /&gt;
&lt;br /&gt;
 route print &amp;gt;route.txt&lt;br /&gt;
&lt;br /&gt;
Wenn Ihr das postet, dann haben wir schonmal Werte von denen wir wissen, dass sie funktionieren.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Verbindungstests mit PING ==&lt;br /&gt;
(aus einer Forumsnachricht von gaw leicht modifiziert übernommen)&lt;br /&gt;
&lt;br /&gt;
Wenn die Internetverbindung nicht klappt, kann das mehrere Ursachen haben. Es kann ein Kabel, ein Switch oder eine Netzwerkkarte defekt sein, der Treiber ist&lt;br /&gt;
nicht richtig installiert oder eine Firewall kann ping Befehle abfangen oder die benötigte Netzwerkunterstützung im Kernel fehlt.&lt;br /&gt;
&lt;br /&gt;
Um diverse Ursachen auszuschließen setzt man zunächst folgende sechs PING Befehle in einem Konsolenfenster ab:&lt;br /&gt;
&lt;br /&gt;
1) &amp;lt;code&amp;gt;ping localhost&amp;lt;/code&amp;gt; oder &amp;lt;code&amp;gt;ping 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
testet [[TCP/IP-Referenzmodell|TCP/IP]] Unterstützung&lt;br /&gt;
&lt;br /&gt;
2) ping eigene IP-Adresse&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.5&lt;br /&gt;
&lt;br /&gt;
testet den Netzwerktreiber&lt;br /&gt;
&lt;br /&gt;
3) ping IP-Adresse im gleichen LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
 ping 192.168.10.7&lt;br /&gt;
&lt;br /&gt;
testet ob LAN-Verbindungen laufen&lt;br /&gt;
Falls man einen Router hat der die Verbindung zum Internet realisiert dann sollte man das mal mit dessen IP-Adresse probieren.&lt;br /&gt;
&lt;br /&gt;
4) ping Hostname im LAN&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping server.mydomain&lt;br /&gt;
&lt;br /&gt;
testet die Namensauflösung im lokalen Netz&lt;br /&gt;
&lt;br /&gt;
5) ping IP-Adresse im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping 195.135.220.3&lt;br /&gt;
&lt;br /&gt;
testet die Internetverbindung&lt;br /&gt;
Hinweis: &amp;lt;code&amp;gt;195.135.220.3&amp;lt;/code&amp;gt; ist die IP-Adresse von &amp;lt;code&amp;gt;www.suse.de&amp;lt;/code&amp;gt; und antwortet auf pings (nicht alle Rechner im Internet tun das).&lt;br /&gt;
&lt;br /&gt;
6) ping Hostname im Internet&lt;br /&gt;
testet die Namensauflösung im Internet&lt;br /&gt;
zum Beispiel:&lt;br /&gt;
&lt;br /&gt;
 ping www.suse.de&lt;br /&gt;
&lt;br /&gt;
Die PING-Befehle können mit ctrl-c abgebrochen werden.&lt;br /&gt;
&lt;br /&gt;
Alternativ kann man auch diese Variante benutzen:&lt;br /&gt;
&lt;br /&gt;
 ping -c4 ip.adresse.des.routers&lt;br /&gt;
&lt;br /&gt;
Dann wird der Ping-Befehl nach 4 Pings automatisch beendet (wie unter Windows).&lt;br /&gt;
&lt;br /&gt;
== Was für eine Netzwerkkarte habe ich überhaupt ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei 'onboard' und PCI-Karten kann man sich mit dem Befehl&lt;br /&gt;
&lt;br /&gt;
 lspci&lt;br /&gt;
&lt;br /&gt;
ansehen, welche Geräte so allgemein gefunden werden. Zeilen in denen 'Ethernet' oder 'Network' drinsteht sind interessant.&lt;br /&gt;
&lt;br /&gt;
Hier mal ein Beispiel mit 2 3com 3c905 Ethernet und einer AVM Fritzcard PCI:&lt;br /&gt;
&lt;br /&gt;
 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)&lt;br /&gt;
 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)&lt;br /&gt;
 00:04.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)&lt;br /&gt;
 00:04.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)&lt;br /&gt;
 00:04.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01)&lt;br /&gt;
 00:04.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02)&lt;br /&gt;
 00:06.0 Multimedia audio controller: Cirrus Logic CS 4614/22/24 [CrystalClear SoundFusion Audio Accelerator]  (rev 01)&lt;br /&gt;
 00:0e.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:10.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 64)&lt;br /&gt;
 00:12.0 Network controller: AVM Audiovisuelles MKTG &amp;amp; Computer System GmbH A1 ISDN [Fritz] (rev 02)&lt;br /&gt;
 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G200 AGP (rev 03)&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
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.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wo wir gerade dabei sind: USB Geräte anzeigen geht mit&lt;br /&gt;
&lt;br /&gt;
 lsusb -t&lt;br /&gt;
&lt;br /&gt;
Bei WLAN Karten erhält man nützliche Infos mit&lt;br /&gt;
&lt;br /&gt;
 iwconfig&lt;br /&gt;
&lt;br /&gt;
== Netzwerkkartenkonfiguration anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Als root ausführen:&lt;br /&gt;
&lt;br /&gt;
 ip addr&lt;br /&gt;
&lt;br /&gt;
{{Box Hinweis||&lt;br /&gt;
''ip'' liegt in &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;/sbin&amp;lt;/code&amp;gt; liegt nur für root im Suchpfad. Also &amp;lt;code&amp;gt;ip &amp;lt;/code&amp;gt; entweder als root ausführen oder via &amp;lt;code&amp;gt;/sbin/ip&amp;lt;/code&amp;gt; ausführen.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 # ip addr&lt;br /&gt;
 1: lo: &amp;lt;LOOPBACK,UP,LOWER_UP&amp;gt; mtu 16436 qdisc noqueue &lt;br /&gt;
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00&lt;br /&gt;
     inet 127.0.0.1/8 scope host lo&lt;br /&gt;
     inet6 ::1/128 scope host &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
 2: eth0: &amp;lt;BROADCAST,MULTICAST,UP,LOWER_UP&amp;gt; mtu 1500 qdisc pfifo_fast qlen 1000&lt;br /&gt;
     link/ether 00:50:04:46:4c:11 brd ff:ff:ff:ff:ff:ff&lt;br /&gt;
     inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0&lt;br /&gt;
     inet6 fe80::250:4ff:fe46:4c11/64 scope link &lt;br /&gt;
        valid_lft forever preferred_lft forever&lt;br /&gt;
&lt;br /&gt;
 # ifconfig eth0&lt;br /&gt;
          RX packets:44837 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:56189 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:100&lt;br /&gt;
          RX bytes:9424913 (8.9 Mb)  TX bytes:36920342 (35.2 Mb)&lt;br /&gt;
&lt;br /&gt;
Wichtig ist, dass die Netzwerkkarten über eine IP-Adresse verfügen (&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;), dass Pakete gesendet (&amp;lt;code&amp;gt;TX packets:56189&amp;lt;/code&amp;gt;) und empfangen (&amp;lt;code&amp;gt;RX packets:44837&amp;lt;/code&amp;gt;) werden.&lt;br /&gt;
&lt;br /&gt;
Es dürfen Fehler (&amp;lt;code&amp;gt;errors:''X''&amp;lt;/code&amp;gt;) vorkommen&amp;amp;nbsp;- allerdings sollte die Anzahl der fehlerhaften Pakete GERING im Vergleich zur Gesamtanzahl sein.&lt;br /&gt;
&lt;br /&gt;
Wenn die Zeile '&amp;lt;code&amp;gt;inet 192.168.0.2/24&amp;lt;/code&amp;gt;' fehlt, hat das Interface keine IP-Adresse!&lt;br /&gt;
&lt;br /&gt;
== Routing-Tabelle anzeigen ==&lt;br /&gt;
&lt;br /&gt;
 ip route&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.2&lt;br /&gt;
 default via 192.168.0.1 dev eth0&lt;br /&gt;
&lt;br /&gt;
Mittels `&amp;lt;code&amp;gt;routel main&amp;lt;/code&amp;gt;` kann man eine tabellarische Übersicht erhalten:&lt;br /&gt;
&lt;br /&gt;
         target            gateway          source    proto    scope    dev tbl&lt;br /&gt;
    192.168.0.0/24                     192.168.0.2   kernel     link   eth0 &lt;br /&gt;
        default         192.168.0.1                                    eth0 &lt;br /&gt;
&lt;br /&gt;
== Standardgateway überprüfen ==&lt;br /&gt;
&lt;br /&gt;
Wenn man sich mit&lt;br /&gt;
&lt;br /&gt;
 ip r&lt;br /&gt;
&lt;br /&gt;
die Routingtabelle anzeigen lässt, dann sollte es dort einen Eintrag '&amp;lt;code&amp;gt;default&amp;lt;/code&amp;gt;' geben. (`&amp;lt;code&amp;gt;ip r&amp;lt;/code&amp;gt;` ist eine akzeptierte Abkürzung für `&amp;lt;code&amp;gt;ip route&amp;lt;/code&amp;gt;`.) Das ist der Eintrag für den Standardgateway. Wenn dieser fehlt, gibt es kein Internet.&lt;br /&gt;
&lt;br /&gt;
 ip route replace default via 192.168.0.1&lt;br /&gt;
&lt;br /&gt;
(wobei natürlich &amp;lt;code&amp;gt;192.168.0.1&amp;lt;/code&amp;gt; durch den 'korrekten' Wert zu ersetzen ist).&lt;br /&gt;
&lt;br /&gt;
Allerdings 'merkt' Linux sich das nur bis zum nächsten Reboot.&lt;br /&gt;
&lt;br /&gt;
== DNS-Servereinträge anzeigen ==&lt;br /&gt;
&lt;br /&gt;
Die DNS-Servereinträge stehen in der Datei &amp;lt;code&amp;gt;/etc/resolv.conf&amp;lt;/code&amp;gt;. Diese kann man anzeigen mit:&lt;br /&gt;
&lt;br /&gt;
 cat /etc/resolv.conf&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis sollte etwa so aussehen:&lt;br /&gt;
&lt;br /&gt;
 nameserver 192.168.0.1&lt;br /&gt;
 search mydomain.home&lt;br /&gt;
&lt;br /&gt;
Hinter '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' steht die IP-Adresse des DNS-Servers der für Namensauflösung verwendet wird.&lt;br /&gt;
&lt;br /&gt;
Wenn dort kein solcher '&amp;lt;code&amp;gt;nameserver&amp;lt;/code&amp;gt;' Eintrag steht dann kann die Namensauflösung über DNS nicht funktionieren.&lt;br /&gt;
&lt;br /&gt;
Zur Fehlerdiagnose von DNS-Problemen können auch die Befehle `&amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt;` und `&amp;lt;code&amp;gt;host&amp;lt;/code&amp;gt;` nützlich sein.&lt;br /&gt;
&lt;br /&gt;
Ein Fehler in der Datei &amp;lt;code&amp;gt;/etc/nsswitch.conf&amp;lt;/code&amp;gt; kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile '&amp;lt;code&amp;gt;hosts:&amp;lt;/code&amp;gt;' überprüfen. Eine im Allgemeinen funktionierende Variante ist &lt;br /&gt;
&lt;br /&gt;
 hosts: files dns&lt;br /&gt;
&lt;br /&gt;
Eine Liste globaler DNS-Servern findet man hier: &amp;lt;br&amp;gt;&lt;br /&gt;
[http://www.dnsliste.de/ DNS-Server]&lt;br /&gt;
&lt;br /&gt;
== Ist die IPTables/Netfilter Firewall aktiviert ? ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Bei SuSE 9.2 ist übrigens die Firewall standardmäßig aktiviert!&lt;br /&gt;
&lt;br /&gt;
Sind irgendwelche Filter definiert?&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain INPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain FORWARD (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== Ist NAT oder Masquerading aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
Konsolenfenster öffnen und eingeben:&lt;br /&gt;
&lt;br /&gt;
 iptables -t nat -L&lt;br /&gt;
&lt;br /&gt;
Bei deaktivierter Firewall sieht das Ergebnis so aus:&lt;br /&gt;
&lt;br /&gt;
 Chain PREROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination          &lt;br /&gt;
 &lt;br /&gt;
 Chain POSTROUTING (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination         &lt;br /&gt;
 &lt;br /&gt;
 Chain OUTPUT (policy ACCEPT)&lt;br /&gt;
 target     prot opt source               destination&lt;br /&gt;
&lt;br /&gt;
== SuSEFirewall2 Einstellungen posten ==&lt;br /&gt;
&lt;br /&gt;
Manchmal kann es erforderlich sein, zur Fehlerdiagnose die Einstellungen der SuSEFirewall2 zu posten.&lt;br /&gt;
&lt;br /&gt;
Ihr findet die Konfigurationsdatei der SuSEFirewall2 hier:&lt;br /&gt;
&lt;br /&gt;
 /etc/sysconfig/SuSEFirewall2&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
BTW - Die Kommentare in der SuSEFirewall2-Datei sind prima Lesestoff.&lt;br /&gt;
&lt;br /&gt;
== Ist Routing aktiv ? ==&lt;br /&gt;
&lt;br /&gt;
In einem Konsolenfenster eingeben :&lt;br /&gt;
&lt;br /&gt;
 cat /proc/sys/net/ipv4/ip_forward&lt;br /&gt;
&lt;br /&gt;
Dort muss dann eine &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; stehen damit Routing aktiv ist.&lt;br /&gt;
&lt;br /&gt;
(Das benötigt man natürlich nur wenn Routing benötigt wird - bei einem einzelnen Linux-Rechner braucht man das nicht.)&lt;br /&gt;
&lt;br /&gt;
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. &lt;br /&gt;
&lt;br /&gt;
== Die SuSEfirewall2 ist ein Skript, ==&lt;br /&gt;
&lt;br /&gt;
das mit iptables - Aufrufen den Filter im Kernel setzt/löscht. Ich hatte den Effekt, daß durch &amp;quot;herumprobieren&amp;quot; mit den Firewall-Einstellungen iptables- Einstellungen auch bei inaktiver Firewall erhalten geblieben sind.&lt;br /&gt;
&lt;br /&gt;
 iptables -L&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Folgendes half dann:&lt;br /&gt;
&lt;br /&gt;
 SuSEfirewall2 stop&lt;br /&gt;
 iptables -F&lt;br /&gt;
 SuSEfirewall2 start&lt;br /&gt;
&lt;br /&gt;
Das war's dann. `&amp;lt;code&amp;gt;iptables -F&amp;lt;/code&amp;gt;` löscht alle Eintragungen. Und die Firewall setzt dann beim Start wieder passende Werte ein (gem. Konfiguration in &amp;lt;code&amp;gt;/etc/sysconfig/SuSEfirewall2&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Einfacher Weg lokale NetzwerkKonfigurationsFehler zu finden bzw lokale NetzwerkKonfigurationsInformationen für das LC-Network-Forum zu sammeln ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich wird die gesammelte Information nach häufig auftretenden Konfigurationsproblemen (fehlender DNS und Nameserver etc)  untersucht und auf diese Konfigurationsfehler hingewiesen. Für jede Fehlermeldung gibt es Hinweise, wie die Fehler selbstständig behoben werden können.&lt;br /&gt;
&lt;br /&gt;
Benutzung:&lt;br /&gt;
&lt;br /&gt;
# Download der aktuellen Version von [http://www.linux.framp.de/collectNWData&amp;quot;collectNWData.sh&amp;quot;] in z.B. /home/framp  &amp;lt;br /&amp;gt;&lt;br /&gt;
# su -&amp;lt;br /&amp;gt;&lt;br /&gt;
# cd /home/framp&amp;lt;br /&amp;gt;&lt;br /&gt;
# chmod 700 collectNWData.sh&amp;lt;br /&amp;gt;&lt;br /&gt;
# ./collectNWData.sh&amp;lt;br /&amp;gt;&lt;br /&gt;
# Falls typische Konfigurationsfehler entdeckt wurden diese selbständig beheben. &lt;br /&gt;
# Falls keine typischen Konfigurationsfehler gefunden wurden und die Fehlerbehebungshinweise nicht zum Erfolg geführt haben copy und paste des Inhalts von collectNWData.out in das Forum&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen werden WLAN keys aus iwconfig und den &amp;lt;code&amp;gt;ifcfg-''*''&amp;lt;/code&amp;gt; Dateien automatisch maskiert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Netzwerk|zurück zum Netzwerk]][[Category:TCP/IP]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25887</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25887"/>
		<updated>2008-08-02T16:03:38Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren ist [[image:Framp.jpg]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Zum linux-club kam ich da ich damals irgendein Linux suchte, dann SuSE 6.0 fand, seitdem bei SuSE geblieben bin, und im linux-club es primär um SuSE Distributionen geht.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips and Tricks&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ eine eMail schreiben].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25870</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25870"/>
		<updated>2008-07-29T16:11:30Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ eine eMail schreiben].&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25869</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25869"/>
		<updated>2008-07-29T16:10:42Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25868</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25868"/>
		<updated>2008-07-29T16:10:25Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25867</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25867"/>
		<updated>2008-07-29T16:09:44Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25866</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25866"/>
		<updated>2008-07-29T16:08:43Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-and-tricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25865</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25865"/>
		<updated>2008-07-29T16:08:23Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen.&lt;br /&gt;
&lt;br /&gt;
Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux-tips-andtricks.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25864</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25864"/>
		<updated>2008-07-29T16:07:18Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC und anderen Linux Foren:&lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25863</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25863"/>
		<updated>2008-07-29T16:06:50Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC &lt;br /&gt;
&lt;br /&gt;
[[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25862</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=25862"/>
		<updated>2008-07-29T16:06:23Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC (... und anderen LinuxForen): [[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=SquidGuard_als_Jugendschutzfilter&amp;diff=25336</id>
		<title>SquidGuard als Jugendschutzfilter</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=SquidGuard_als_Jugendschutzfilter&amp;diff=25336"/>
		<updated>2008-05-14T20:57:41Z</updated>

		<summary type="html">&lt;p&gt;Framp: Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wenn man, aus welchen Gründen aus immer, das Internet Filtern will, sollte man sich SquidGuard anschauen. Dieser Artikel soll einen Einstieg in eben dieses Programm bieten. Es wird vorausgesetzt, daß eingerichtet wurde Squid und funktionstüchtig ist.&lt;br /&gt;
Man sollte sich aber bei aller Filterei im klaren sein, daß man mit einer Blacklist nie alle &amp;quot;bösen&amp;quot; Inhalte rausfiltern kann. Dies ginge zwar mit einer Whitelist, man sollte sich dann aber bewußt sein sein, daß man dadurch das Netz zu sehr zensiert. Aus welchen Gründen man also auch immer SquidGuard einsetzen möchte sollte man nicht vergessen, daß die Vermittlung eines vernünftigen Umgangs mit dem Internet wirklungsvoller und auch nachhaltiger ist.&lt;br /&gt;
&lt;br /&gt;
=Blacklist=&lt;br /&gt;
Gehen wir davon aus, daß die Blacklist der gewünschte Weg ist. Man kann sich jetzt sicher selber was zusammenbasteln, einfacher ist es aber sicherlich, wenn man eine schon vorhandene übernimmt. Unter openSUSE kann man sich dafür einfach des openSUSE-Education_Projekts bedienen, welches im seinem Reposority ein entsprechendes Paket bereitstellt.&lt;br /&gt;
{{OpenSUSE|10.3|&lt;br /&gt;
http://download.opensuse.org/repositories/Education:/desktop/openSUSE_10.3/&lt;br /&gt;
}}&lt;br /&gt;
Dieses fügen wir in unseren [[Paketmanager]] der Wahl ein und installieren damit das Paket ''squidguard-blacklists''. Vorher muß eventuell noch die URL angepaß werden.&lt;br /&gt;
Falls man nicht openSUSE verwendet oder das Paket aus anderen Gründen nicht verwenden will, kann man auch direkt von der [http://www.squidguard.org/blacklists.html SquidGuard-Homepage] sich eine runterladen.&lt;br /&gt;
&lt;br /&gt;
=SquidGuard konfigurieren=&lt;br /&gt;
Jetzt geht es an die Konfiguration. Falls das rpm-Paket verwendet wurde kann man einfach die mitgelieferte ''/etc/squidGuard.conf.in'' unverändert übernehmen. Falls man Anpassungen vornehmen möchte, sollte man die Datei kopieren und beispielsweise in ''/etc/squidGuard.conf'' unbennen, da die Veränderungen bei einem Update womöglich überschrieben werden, was wohl nicht gewünscht sein sollte.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
logdir /var/log/squidGuard&lt;br /&gt;
dbhome /var/lib/squidGuard/db&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
dest ads {&lt;br /&gt;
	domainlist squidguard-blacklists/ads/domains&lt;br /&gt;
	urllist    squidguard-blacklists/ads/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        ads-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest aggressive {&lt;br /&gt;
	domainlist squidguard-blacklists/aggressive/domains&lt;br /&gt;
	urllist    squidguard-blacklists/aggressive/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        aggressive-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest audio-video {&lt;br /&gt;
	domainlist squidguard-blacklists/audio-video/domains&lt;br /&gt;
	urllist    squidguard-blacklists/audio-video/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        audio-video-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest drugs {&lt;br /&gt;
	domainlist squidguard-blacklists/drugs/domains&lt;br /&gt;
	urllist    squidguard-blacklists/drugs/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        drugs-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest gambling {&lt;br /&gt;
	domainlist squidguard-blacklists/gambling/domains&lt;br /&gt;
	urllist    squidguard-blacklists/gambling/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        gambling-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest hacking {&lt;br /&gt;
	domainlist squidguard-blacklists/hacking/domains&lt;br /&gt;
	urllist    squidguard-blacklists/hacking/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        hacking-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest mail {&lt;br /&gt;
	domainlist squidguard-blacklists/mail/domains&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        mail-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest porn {&lt;br /&gt;
	domainlist squidguard-blacklists/porn/domains&lt;br /&gt;
	urllist    squidguard-blacklists/porn/urls&lt;br /&gt;
	expressionlist squidguard-blacklists/porn/expressions&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        porn-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest proxy {&lt;br /&gt;
	domainlist squidguard-blacklists/proxy/domains&lt;br /&gt;
	urllist    squidguard-blacklists/proxy/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        proxy-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest violence {&lt;br /&gt;
	domainlist squidguard-blacklists/violence/domains&lt;br /&gt;
	urllist    squidguard-blacklists/violence/urls&lt;br /&gt;
	expressionlist squidguard-blacklists/porn/expressions&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        violence-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest warez {&lt;br /&gt;
	domainlist squidguard-blacklists/warez/domains&lt;br /&gt;
	urllist    squidguard-blacklists/warez/urls&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#	log        warez-block.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest good {&lt;br /&gt;
    domainlist custom/good/domains&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
dest bad {&lt;br /&gt;
    domainlist custom/bad/domains&lt;br /&gt;
#   enable next line to log blocked urls&lt;br /&gt;
#    log bad.log&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
acl {&lt;br /&gt;
&lt;br /&gt;
    default {&lt;br /&gt;
        pass good !bad !ads !aggressive !drugs !gambling !hacking !porn !proxy !violence !warez !in-addr all&lt;br /&gt;
#	redirect 302:http://localhost/verboten.html&lt;br /&gt;
#	redirect 302:http://localhost/cgi-bin/squidGuard-simple.cgi/?clientaddr=%a&amp;amp;clientname=%n&amp;amp;clientident=%i&amp;amp;srcclass=%s&amp;amp;targetclass=%t&amp;amp;url=%u&lt;br /&gt;
	redirect 302:http://localhost/cgi-bin/squidGuard-simple.cgi/?clientaddr=%a&amp;amp;clientname=%n&amp;amp;clientident=%i&amp;amp;srcclass=%s&amp;amp;targetclass=%t&lt;br /&gt;
#	redirect 302:http://localhost/cgi-bin/squidGuard.cgi/?clientaddr=%a&amp;amp;clientname=%n&amp;amp;clientident=%i&amp;amp;srcclass=%s&amp;amp;targetclass=%t&amp;amp;url=%u&lt;br /&gt;
&lt;br /&gt;
   }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Squid-Konfiguration anpassen=&lt;br /&gt;
Squid weiß natürlich noch nichts von der neuen Begebenheit. Daher müssen wir folgende Eintragung in der ''/etc/squid/squid.conf'' vornehmen:&lt;br /&gt;
 [...]&lt;br /&gt;
 redirect_program /usr/sbin/squidGuard -c /etc/squid/squidGuard.conf.ln&lt;br /&gt;
 [...]&lt;br /&gt;
&lt;br /&gt;
=Anpassung von AppArmor=&lt;br /&gt;
(hier fehlt noch was)&lt;br /&gt;
&lt;br /&gt;
=Neustart=&lt;br /&gt;
Anschließend müssen wir squid nur noch als root neustarten und die Veränderungen sollten sich dann bemerkbar machen. Unter openSUSE geht das mittels&lt;br /&gt;
 rcsquid restart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Weblinks=&lt;br /&gt;
* [http://www.pro-linux.de/work/server/www/squidguard.html Anleitung bei pro-linux.de]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Squid|Zurück zu Squid]]&lt;br /&gt;
[[Category:Squid]]&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24928</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24928"/>
		<updated>2008-04-17T17:34:13Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC: [[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ die Kontaktseite] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24927</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24927"/>
		<updated>2008-04-17T17:34:02Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC: [[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder über [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ &amp;quot;die Kontaktseite&amp;quot;] eine eMail schreiben.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
	<entry>
		<id>https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24926</id>
		<title>Benutzer:Framp</title>
		<link rel="alternate" type="text/html" href="https://linupedia.org/wiki/mediawiki/index.php?title=Benutzer:Framp&amp;diff=24926"/>
		<updated>2008-04-17T17:32:47Z</updated>

		<summary type="html">&lt;p&gt;Framp: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mein Avatar im LC: [[image:Framp.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wer wissen will wie ich zu Linux kam sollte [http://www.linux.framp.de/index.php/content/view/33/46/&amp;quot;Framp's Historie&amp;quot;] lesen. Weitere Linux Infos, Tips und meine Linux Config Files finden sich auf meiner kleinen Webseite [http://www.linux.framp.de/ &amp;quot;Framp's Linux Tips und Beispielkonfiguration&amp;quot;]. Kontakt kann jeder mit mir per [http://www.linux-club.de/privmsg.php?mode=post&amp;amp;u=4882 PN im LC] aufnehmen oder per eMail [http://www.linux-tips-and-tricks.de/index.php/component/option,com_contact/Itemid,3/ &amp;quot;die Kontaktseite&amp;quot;] benutzen.&lt;/div&gt;</summary>
		<author><name>Framp</name></author>
		
	</entry>
</feed>