Kein SSH und telnet mehr - aber Webserver ^^

Lariel

Neuer User
Mitglied seit
20 Aug 2007
Beiträge
45
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ich hab mir auf meinen USB-Stick einen Apache gepackt. Der lief auch soweit, jetzt wollte ich ihn nur noch nach Rebootenvorgängen automatisch starten lassen. Da hab ich mir aus dem Thread ein Skript zusammengebastelt und es mit nvi in die /var/flash/debug.cfg geschrieben.
Code:
#!/bin/sh

while !(mount | grep -q /var/media/ftp); do
	sleep 15
done

ifconfig eth0:1 192.168.178.253 up
/var/media/ftp/USB-Pfad/apache/apache -f /var/media/ftp/USB-Pfad/apache/conf/apache.conf
done

done &
(Soweit ich das aus dem Kopf rekonstruieren kann.)

Jetzt startet der Webserver auch von alleine - aber ich bekomm bei Verbindungsversuchen per SSH und telnet ein "connection refused" und das ds-mod-Webinterface wird mir nicht mehr angezeigt.

1. Wie bekomme ich SSH, telnet, ds-mod-Interface wieder?
2. Wie bekomme ich es richtig hin, dass der Server automatisch startet?
 
Ein aus dem Kopf zitiertes Skript bringt fast gar nichts (auch wenn ich Dir gleich mal sagen kann, daß die zwei "Done-Zeilen" am Ende Deines Skripts schon mal falsch sind). Es könnte ja kleine Abweichungen geben, die das Verhalten komplett ändern. Vermutlich ist Dir ein Fehler passiert, der dafür sorgt, daß die Abarbeitung des Startvorgangs nicht abgeschlossen wird und deshalb einige Dienste nicht zur Verfügung stehen, weil sie erst gar nicht gestartet werden.

Deine Mission lautet nun: debug.cfg von Fehlern befreien.

Der Weg dorthin lautet:
  • entweder AVM-Recover-EXE verwenden und anschließend sämtliche Einstellungen von neuem vornehmen, danach wieder DS-Mod installieren und auch ihn konfigurieren - oder hast Du rechtzeitig mit einem Backup über DS-Mod-Oberfläche die Einstellungen gesichert? Dann ginge das Neueinstellen schneller.
  • oder die bessere Alternative verwenden, welche Dir Deine Einstellungen erhält und lediglich ein nochmaliges Firmware-Flashen notwendig macht: Nano-Shell in die FW einbauen. Das würde bei Dir helfen, denn auf die AVM-Weboberfläche kommst Du ja noch. Du schiebst also die mit Nano erweiterte Firmware per tools/push_firmware.sh oder, falls das noch geht, über AVM-Web auf die Box und startest dann über eine Nano-URL den Telnet- oder SSH-Server. Dann verbindest Du Dich wie gewohnt zur Box und editierst die debug.cfg (vorher Text raus kopieren und hier zitieren, damit ich sehe, was wirklich falsch war).
Wenn die Box erst mal wieder normal startet, sehen wir weiter.
 
@Alexander: Er kann doch auch telnet per Telefon aktivieren. Oder? Und von dort aus ssh&co. erstmal starten. Dann wird es nicht so umständlich. Aber dein Weg ist natürlich besser. Und mit debug.cfg bin ich auch gespant. Sichere es bitte, Lariel, und poste hier bevor du es leerst.

MfG
 
Das kann man probieren, aber es geht nicht immer.
 
Telefon hab ich noch keins dran. Ich bastel da jetzt mal die nanoshell rein. Welchen Befehl muss ich denn dann genau über den Browser schicken, um telnet zu aktivieren?

Die Zeile so in die fwmod_custom einbauen?
Code:
all() {
tar xjf ../../nano-shell.tar.bz2 -C filesystem/usr/www/all/cgi-bin/
}
 
Zuletzt bearbeitet:
Ja, wozu wiederholst Du die Anleitung? Ein Befehl zum Telnetd-Start steht außerdem in den Beispielen, ob Du den mit Port 2323 oder ohne Port (entspricht 23) angibst, kannst Du Dir aussuchen.
 
Ich wollte nur sicher gehen, eh ich mir die Box ganz zerschieße. Hätte ja sein können, dass da noch ein ; hin muss, so sicher bin ich in der Shellprogrammierung noch nicht.

debug.cfg:
Code:
#!/bin/sh

while !(mount | grep -q /var/media/ftp); do
sleep 15
done


ifconfig eth0:1 192.168.178.253 up
/var/media/ftp/uStor01/apache/apache -f /var/media/ftp/uStor01/apache/conf/apache.conf
done
done &

[hier folgen noch ganz viele Tildezeichen]
 
Heißt das, Du bist jetzt erfolgreich mittels Nano-Shell auf die Box gekommen? Ich nehme es mal an.

Code:
#!/bin/sh

[COLOR="Gray"]# Hier würde ich auf Nummer sicher gehen und genau den Pfad prüfen,
# von dem Du nachher auch Apache starten willst. Und jeweils 5 Sek. in der Warteschleife
# reichen auch aus.[/COLOR]
while !(mount | grep -q /var/media/ftp[COLOR="Blue"]/uStor01[/COLOR]); do
    sleep [COLOR="Blue"]5[/COLOR]
done

[COLOR="gray"]# Wozu brauchst Du ein zusätzliches virtuelles Netzwerk-Interface
# mit eigener IP? Hat das was mit Apache zu tun? Falls nicht, weglassen.[/COLOR]
ifconfig eth0:1 192.168.178.253 up

[COLOR="Gray"]# Hier mal ein "&" ans Ende des Befehls, um Apache im Hintergrund zu starten[/COLOR]
/var/media/ftp/uStor01/apache/apache \
    -f /var/media/ftp/uStor01/apache/conf/apache.conf [COLOR="Blue"]&

[COLOR="Gray"]# Und hier kein "done" oder irgendwelche Tilden mehr![/COLOR]
[/COLOR]

Blau hervorgehoben sind Änderungen gegenüber Deinem Skript, die Kommentare in grau kannst Du mit hinein schreiben, sie aber genausogut weglassen.
 
SSH und telnet laufen jetzt wieder. Super!
Aber mit dem Autostart vom Apache klappt's noch nicht. Ich hab das Skript nun genau wie's da steht angepasst.
Kein virtuelles Netzwerk mit eigener IP? 192.168.178.253 hab ich in die apache.conf eingetragen und 85 als Port und das dann in die Portweiterleitung geschrieben mit Port 80 an 85. 192.168.178.1 kann ich doch nicht nehmen, da das doch die IP vom Webinterface ist, oder?
 
Hm, das mit der virtuellen IP kann ich ja nicht riechen. ;-) Du hast ja die Konfiguration nicht zitiert. Evtl. solltest Du jetzt, nachdem das im Titel genannte Problem gelöst ist, mal im Apache+PHP-Thread nachlesen - oder besser noch, in der Apache-Dokumentation.
 
Naja, das Apache-Manual würde mir hier wohl nicht weiterhelfen. Ich bekomm den Apache ja per Konsoleneingabe zum Laufen, nur durch die debug.cfg gleich beim Starten nicht. ... Jetzt klappt's aber auf einmal. Ich hab nur "sleep" auf 7 erhöht und nochmal rebooten. Kann das wirklich daran liegen? Egal.

So wie ich das verstehe, brauche ich auf jeden Fall ein Virtuelles Netzwerk. Ich will die Webseiten, die der Apache ausgibt und den FTP nach außen hin freigeben. Wenn ich jetzt aber in der Portweiterleitung eingebe, dass ich 192.168.178.1 weiterleiten will, geht es nicht, weil der Port schon für das Webinterface reserviert ist (das ich natürlich auch noch behalten und nicht ins Internet freigeben möchte).

Jetzt hab ich einen FTP-Benutzer nach Wikivorlage anlegen lassen, indem ich das am Anfang der debug.cfg geschrieben habe. Läuft auch soweit, ich kann mich per FTP und 192.168.178.1 einloggen. Wie mach ich da aber jetzt ne Portweiterleitung für? 192.168.178.1 untersagt mir das Webinterface ja.
 
Ich kann mir nicht vorstellen, daß die 7 im sleep einen Unterschied macht, denn es wird ja so lange die Schleife ausgeführt, bis der Mount verfügbar ist. Es könnte höchstens problematisch sein, daß es eine Latenzzeit geben kann, bis das neue Netzwerk-Interface verfügbar ist, also sollte man auch hier einfach abwarten, bis die Schnittstelle verfügbar ist. Andernfalls kann sich ja Apache nicht an die Schnittstelle binden:

Code:
#!/bin/sh

[COLOR="gray"]# Virtuelle IP einrichten; warten, bis verfügbar[/COLOR]
ifconfig eth0:1 192.168.178.253 up
while !(ifconfig eth0:1 | grep -q '192.168.178.253'); do sleep 1; done

[COLOR="Gray"]# Warten, bis USB-Speicher verfügbar[/COLOR]
while !(mount | grep -q /var/media/ftp/uStor01); do sleep 5; done

[COLOR="Gray"]# Apache im Hintergrund starten[/COLOR]
/var/media/ftp/uStor01/apache/apache \
    -f /var/media/ftp/uStor01/apache/conf/apache.conf &
Die Alternative zur virtuellen IP wäre, direkt in /var/flash/ar7.cfg im Abschnitte forwardrules eine Portweiterleitung zu definieren:
Code:
    ...
    forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
        [B][COLOR="Blue"]"tcp 0.0.0.0:80 0.0.0.0:85",[/COLOR][/B]
        ...
        "tcp 0.0.0.0:5900 192.168.178.31:5900 0 # VNC";
    shaper = "globalshaper";
    ...
Das würde Dir das Erschaffen eines zusätzlichen Netzwerk-Interfaces ersparen, aber dafür könntest Du die Regel nicht in der Web-Oberfläche sehen und pflegen, also laß es ruhig so, wie Du es jetzt hast. Ich wollte es nur erwähnen, weil ich persönlich es lieber über ar7.cfg mache. P.S.: Die VNC-Regel am Ende soll nur ein Beispiel für etwas sein, das Du über Web eingerichtet hast, also eine "normale" Regel. Nach der letzten Regel muß ein Semikolon stehen, das ist auch wichtig.
 
Alles klar, jetzt bin ich schon wieder ein bißchen schlauer. :) So langsam hab ich raus, warum der Apache mal läuft und mal nicht. Es liegt am FTP. Der Standardbenutzer vom AVM-FTP, "ftpuser", muss vorhanden sein, da ich über diesen auch die Dateien des Apache auf den USB-Stick gebracht habe. Mal sehn, ob ich das mit weiteren FTP-Benutzern dennoch hinbekomme. Sonst melde ich mich noch mal. ;) Danke erst mal!
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.