linux netzwerk einstellungen ändern



  • thx für die schnelle antwort!
    also ich schilder mein prob nochmal genau:
    ich will für meinen vater ein prog schreiben, dass ihm ermögliht schnell seine IPs (SubNetMask, DHCP on/off) zu ändern. dafür habe ich ne QT-oberfläche erstellt, damit's auch ein bissl komfortabel ist!
    mein problem besteht darin, dass ifconfig in suse 9.1 anscheinend seine funktion verloren hat oder wer weiß was damit passiert ist!
    man konnte ja mal, um die IP zu ändern, folgende befehle eingaben

    //fährt netzwerk runter
    @tuxx: ifconfig eth0 down
    //ändert IP
    @tuxx: ifconfig eth0 10.10.10.10 netmask 255.255.255.0
    //und hochfahren
    @tuxx: ifconfig eth0 up
    

    aber dem ist leider nicht mehr so, dass heißt er ändert zwar noch die IPs aber da sich ifconfig nicht um die DNS server kümmert ist im netz surfen dann schlecht!
    deswegen ruft man normalerweise noch '/etc/rc.d/network restart' auf, dass auch die datei '/etc/resolv.conf' mit einbindet! nur leider bezieht dieser blöde befehl die im vorherigen post genannte datei mit ein, in der die IP usw. drin stehen, die aber nicht von ifconfig geändert wurden!
    INHALT von (bei mir) /etc/sysconfig/network/ifcfg-eth-id-00:0b:6a:1e:65:83

    BOOTPROTO='static'
    BROADCAST='10.10.10.255'
    IPADDR='10.10.10.10'
    MTU=''
    NETMASK='255.255.255.0'
    NETWORK='10.10.10.0'
    REMOTE_IPADDR=''
    STARTMODE='onboot'
    UNIQUE='8otl.a+wEHeXLrN1'
    _nm_name='bus-pci-0000:00:04.0'
    

    so und nu wollt ich fragen, ob einer ne lasse kennt, die mir dieses editieren abnimmt und mir das leben leichter macht!
    (1)zu 'route' hab ich aber auch noch ne frage: wie kann ich das alte default gateway rausnehmen, ohne zu wissen wie dessen IP addi war?
    (2)und gleich nochwas: wie kann ich - so wie es beim yast2 start der fall ist - den root einlog dialog einblenden lassen?!
    thx again



  • tazz schrieb:

    mein problem besteht darin, dass ifconfig in suse 9.1 anscheinend seine funktion verloren hat oder wer weiß was damit passiert ist!

    "Hat seine Funktion verloren" ist keine ausreichende Fehlerbeschreibung; was genau geht denn nicht?

    man konnte ja mal, um die IP zu ändern, folgende befehle eingaben

    Kann man immer noch.

    da sich ifconfig nicht um die DNS server kümmert ist im netz surfen dann schlecht!

    Die DNS-Server stehen üblicherweise in der /etc/resolv.conf.

    deswegen ruft man normalerweise noch '/etc/rc.d/network restart' auf, dass auch die datei '/etc/resolv.conf' mit einbindet!

    Nein, das bindet gar nix mit ein, das hast Du meines Erachtens falsch verstanden.

    so und nu wollt ich fragen, ob einer ne lasse kennt, die mir dieses editieren abnimmt und mir das leben leichter macht!

    Nein, kenne ich nicht, aber normalerweise haben Klickibunti-Distros doch Administrationstools, die einem diese Arbeit abnehmen.

    (1)zu 'route' hab ich aber auch noch ne frage: wie kann ich das alte default gateway rausnehmen, ohne zu wissen wie dessen IP addi war?

    route del default
    

    (2)und gleich nochwas: wie kann ich - so wie es beim yast2 start der fall ist - den root einlog dialog einblenden lassen?!

    Ich glaube die verwenden da irgendein sudo, ksudo oder so.



  • "Hat seine Funktion verloren" ist keine ausreichende Fehlerbeschreibung;

    was genau geht denn nicht?
    mein gott walter, du zweifelst ja echt mehr als ich:
    http://portal.suse.com/sdb/de/2002/03/mmj_network80.html
    einfach mal durchlesen...
    ich werd's jetzt nochmal mit 'ip' probieren, hoffe es hilft!
    auch wenn da steht, dass ifconfig bzw route noch (super) läuft, die nameserver sind nunmal nicht mehr erreichbar! erst nach einem /etc/rc.d/network restart! und was dann passiert schreib ich JETZT nicht NOCHMAL!

    deswegen ruft man normalerweise noch '/etc/rc.d/network restart' auf, dass auch die datei '/etc/resolv.conf' mit einbindet!

    Nein, das bindet gar nix mit ein, das hast Du meines Erachtens falsch verstanden.

    meinetwegen bindet es nichts mit ein, sondern es ließt die daten aus (man kann's auch übertreiben)

    Nein, kenne ich nicht, aber normalerweise haben Klickibunti-Distros doch Administrationstools, die einem diese Arbeit abnehmen.

    (1) ich will doch aber gerade so ein tool erstellen, welches mehrere profile "setzen" kann
    (2) Klickibunti-Distros ?!? nice, no comment
    (3) und mehr als - ich kenne keine solche klasse - oder so wollt ich dach gar nicht wissen! puh danke!

    also ehrlich, in sachen pingeligkeit und ignor/arroganz kann man's echt übertreiben!

    thx again



  • tazz schrieb:

    was genau geht denn nicht?
    mein gott walter, du zweifelst ja echt mehr als ich:

    Ich muss doch nachfragen, was nicht funktioniert; sonst kann ich ja wohl kaum helfen.

    auch wenn da steht, dass ifconfig bzw route noch (super) läuft, die nameserver sind nunmal nicht mehr erreichbar! erst nach einem /etc/rc.d/network restart! und was dann passiert schreib ich JETZT nicht NOCHMAL!

    Beruhig Dich mal, kein Grund sich künstlich aufzuregen.

    meinetwegen bindet es nichts mit ein, sondern es ließt die daten aus (man kann's auch übertreiben)

    Nein, normalerweise sollte es eben reichen, die IP mit ifconfig zu setzen und dann das Default-Gateway zu setzen; wenn Du dann gültige Nameserver in der resolv.conf hast, dann klappt alles.

    Nein, kenne ich nicht, aber normalerweise haben Klickibunti-Distros doch Administrationstools, die einem diese Arbeit abnehmen.

    (1) ich will doch aber gerade so ein tool erstellen, welches mehrere profile "setzen" kann

    Wozu, wenn es sowas schon gibt?

    (2) Klickibunti-Distros ?!? nice, no comment

    Das war nicht abwertend gemeint, aber ich suche nunmal ungerne neue Ausdrücke um Mandrake, SuSE und Co zusammenfassen zu können.

    (3) und mehr als - ich kenne keine solche klasse - oder so wollt ich dach gar nicht wissen! puh danke!

    Ich kenne einfach keine, hab ich doch geschrieben.

    also ehrlich, in sachen pingeligkeit und ignor/arroganz kann man's echt übertreiben!

    Hallo?
    Was soll denn das jetzt? Ich hab nur versucht, Dir zu helfen, aber wenns Dir lieber ist, kann ich das in Zukunft gerne unterlassen; ich will schließlich niemanden zu seinem Glück zwingen. Sags mir einfach, ja? 🙄



  • also

    Ich muss doch nachfragen, was nicht funktioniert; sonst kann ich ja wohl kaum helfen

    ich hab doch aber schon in meinen ersten posts beschrieben, was da nicht geht! ich kann mit ifconfig die IP ändern, dann funzen die DNS Server aber nicht (die wiklich richtig eingetragen sind), wenn ich dann /etc/rc.d/network restart ausführe (das bleibt unter suse nunmal nicht aus) ändert er die IP aber wieder auf den alten wert! sorry dass ich da etwas ungeduldig wurde, aber ich hab das jetzt schon zum dritten mal geschrieben...
    ich weiß dass es mit ifconfig alles laufen müsste! auf debian etc. mag das ja auch so sein, aber leider meinten die SuSE leute da was ändern zu müssen...
    und so sieht's nu mal aus und wenn's nicht geht, dann geht's nicht. und ich bin mir auch zu 99,9% sicher dass ich alles richtig mache, revidiere mich auch gern, wenn mir jemand was anderes beweist...

    Wozu, wenn es sowas schon gibt?

    ehrlich gesagt aus spaß an der freude, da ich mich noch nicht weiter mit sowas unter linux beschäftigt habe!
    okay vielleicht hab ich etwas übertrieben, sorry, aber ich wiederhole echt nicht gerne dinge, die ich vorher schon mal beschrieben habe!
    und ich hätt gern wieder ne antwort..
    thx



  • tazz schrieb:

    ich kann mit ifconfig die IP ändern, dann funzen die DNS Server aber nicht (die wiklich richtig eingetragen sind)

    Erreichst Du die DNS via "ping ip.des.dns.servers" auch nicht?

    sorry dass ich da etwas ungeduldig wurde, aber ich hab das jetzt schon zum dritten mal geschrieben...

    Schon ok, aber wenn das in einem Forum nicht verstanden wird, weil Du Dich zu unklar ausdrückst, musst Du es eben in Deinem eigenen Interesse nochmal genauer schreiben; schließlich willst Du ja eine Antwort auf Deine Frage.

    ich weiß dass es mit ifconfig alles laufen müsste! auf debian etc. mag das ja auch so sein, aber leider meinten die SuSE leute da was ändern zu müssen...

    Das sollte IMO unter SuSE trotzdem gehen, sieht stark so aus als hättest Du da irgendwas übersehen, aber mal abwarten.

    und wenn's nicht geht, dann geht's nicht

    Klar, aber "gehts nicht" is keine gute Fehlerbeschreibung, ich weiß noch immer nicht, ob Du Deine DNS-Server via Ping erreichst, ob der Fehler nur bei der Namensauflösung passiert, ob Du generell keine Internetverbindung hast, ob Dein ifconfig-Aufruf korrekt war, an was für einem Netzwerk Du sitzt, etcetc.

    ehrlich gesagt aus spaß an der freude, da ich mich noch nicht weiter mit sowas unter linux beschäftigt habe!

    Ok, das ist durchaus legitim.
    Ich würde das aber ein bisschen anders angehen, Dein Problem kannst Du mit wenigen Zeilen Shellscript lösen, dazu brauchst Du kein C++ (oder was auch immer Du verwendest)

    okay vielleicht hab ich etwas übertrieben, sorry, aber ich wiederhole echt nicht gerne dinge, die ich vorher schon mal beschrieben habe!

    Ich beschäftige mich auch nicht gerne damit, Leuten Antworten auf Fragen aus der Nase zu ziehen, die eigentlich schon bei der Fehlerbeschreibung beantwortet hätten werden sollen.
    Ich bitte Dich nur in Deinem eigenen Interesse, in Zukunft bei der Wahl Deines Umgangstons daran zu denken, dass wir uns hier in einem Forum befinden, in dem niemand für seine Hilfestellungen irgendwie bezahlt wird.
    Niemand hier ist verpflichtet, zu antworten und niemand antwortet gerne auf unfreundliche Posts, nix für ungut. 🙂



  • okay:
    (1)zu meiner konfiguration...
    ich gehe über nen fli4l router ins netz, der an unser kleines netzwerk 10/100Mbit/s angeschlossen ist!
    ich hab weiter keine probleme mit meinem netzwerk, es läuft alles wunderbar!
    nachdem ich ifconfig (das ganze prozedere wie schon oben beschrieben) ausgeführt habe, bin ich noch immer über ping erreichbar, auch kann ich meine nameserver immernoch anpingen, das ist alles überhaupt kein problem. wie gesagt, er löst lediglich die namen nicht mehr auf und es ist leider nun mal so! (ich ändere auch überhaupt nichts an der resolv.conf)
    aber mal kurz weiterüberlegt:
    auch wenn ich diese problem löse könnte, würde bei jedem neustart die netzwerkinformation wieder aus der /etc/sysconfig/network(ifcfg-eth0-(macaddresse) ausgelesen, da ja das netzwerkinitialisierungsskript gestartet wird und somit bei jedem neustart das profil erneut gesetzt werden müssen! (scheiß satz)
    zum skripten:
    ich weiß dass es bestimmt kein problem wäre sowas zu erstellen, aber ich hab nun mal spaß dran und außerdem ist es für meinen vater, dem würd's zwar nichts ausmachen ein skript zu starten aber mir ist es nunmal lieber es über ein eigenständiges prog zu lösen!
    nu weiß ich aber wirklich nicht mehr was ich noch (be)schreiben könnte 😉



  • Ich an Deiner Stelle würde das wirklich mit einem Shellscript lösen, mit sowas zB wärs bereits getan:

    #!/bin/sh
    
    if [ $# -ne 1 ]
    then
        echo "Usage: $0 NEW_IP_ADDRESS"
    else
        sed -i "s,^IPADDR='.*',IPADDR='$1',g" /etc/sysconfig/network/ifcfg-eth-id-00:0b:6a:1e:65:83
        /etc/rc.d/network restart
    fi
    


  • hey schönes script (hast du ne seite, wo die wichtigsten befehle erklärt sind, weil damit kenn ich mich nicht aus - wenn nicht dann such ich selber)
    da treten aber leider ein paar probleme auf:
    (1) der ordnername ist abhängig von der netzwerkkarte, da die mac addresse beinhaltet ist -> also kann ich's schlecht auf anderen pcs nutzen oder man müsste zuerst die mac von der jeweiligen netzkarte ermitteln...
    (2) ich müsst ja auch noch die anderen IPs bzw. masken ändern, sowie dhcp
    obwohl das ja auch mit einem leicht geändertem script funktionnieren müsste...
    FRAGE: ist es möglich diese befehle über die funktion

    system()
    

    aufzurufen?!
    das wäre, was mir jetzt erstmal einfällt...
    aso nochwas! wenn ich die IP schon ändere, müsste ich ja gleichzeitig auch gucken, ob die netzmaske denn überhaupt zutrifft und den broadcast neu setzen, der ja auch wieder abhängig von der IP ist!
    ich weiß nicht ob es vielleicht ein klacks für dich ist, dies zu schreiben, aber vom skripten hab ich keine ahnung, gut dein script ist mir noch verständlich, aber weiterführend die broadcast addresse von der IP abhängig zu machen - null plan! und ich will ja auch net, dass du mir das prog schreibst! notfalls werd ich die datei eben über c++ editieren...



  • tazz schrieb:

    hast du ne seite, wo die wichtigsten befehle erklärt sind, weil damit kenn ich mich nicht aus - wenn nicht dann such ich selber)

    Das ist eigentlich nur ganz wenig Shell und ein bisschen sed, aber schau einfach mal hier rein:
    http://www.tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html
    http://www.tldp.org/LDP/abs/html/
    Und bei IBM Developer Works gibts zu sed&awk auch was, oder Du googlest einfach, dazu hab ich keine bestimmten Ressourcen.

    (1) der ordnername ist abhängig von der netzwerkkarte, da die mac addresse beinhaltet ist -> also kann ich's schlecht auf anderen pcs nutzen oder man müsste zuerst die mac von der jeweiligen netzkarte ermitteln...

    Ich würde in der Tat vorher die MAC-Adresse ermitteln.
    Die einfachste Lösung für Computer mit nur einer Karte wäre natürlich, ifcfg-eth-id-00:0b:6a:1e:65:83 einfach durch ifcfg-eth-id-* zu ersetzen, aber sobald Du mehrere Ethernet-Karten in einem Rechner hast, funktioniert das nicht mehr gut.
    Darum folgende Vorgehensweise:

    • Script so erweitern, dass es nicht nur die neue IP-Adresse sondern auch noch das Interface, dessen Adresse geändert werden soll, als Parameter entgegennimmt.
    • Dann ungefähr so die MAC-Adresse herausfinden:
    ifconfig INTERFACE | grep HWaddr | sed -e 's/^.*HWaddr \(.*\)$/\1/'
    

    (Achtung, ungetestet und geht uU auch leichter, das war das erste was mir einfiel.)

    • Dann nur im passenden Configfile verändern, was Du verändern möchtest.

    ich müsst ja auch noch die anderen IPs bzw. masken ändern, sowie dhcp
    obwohl das ja auch mit einem leicht geändertem script funktionnieren müsste...

    Genau, das kannst Du ganz leicht ändern/ erweitern.

    FRAGE: ist es möglich diese befehle über die funktion

    system()
    

    aufzurufen?!

    Ja, theoretisch wohl schon, würde ich aber eher nicht machen.
    Machs entweder mit einem Shellscript, oder mit einer richtigen C++-Lösung, aber versuch nicht, das irgendwie zu verbinden.
    Natürlich wäre hier - wie bereits gesagt - das Shell-Script auf alle Fälle die bei weitem beste Wahl, aber tu, was Du nicht lassen kannst. *g*

    ich weiß nicht ob es vielleicht ein klacks für dich ist, dies zu schreiben,

    Eigentlich schon, schau mal, ob Du das mit meinen Quellen selbst hinbekommst, und wenn nicht, dann helfe ich nochmal nach.:)


Anmelden zum Antworten