Probleme mit SVDRP...

  • Hallo,


    Hab VDR installiert, aber ich kann nicht mit Telnet auf port 2001 zugreifen.
    Der Telnet Client meldet nur immer: "connection refused"
    Firewall mässig ist nichts installiert und in der svdrphosts.conf ist auch alles richtig..


    woran kann das liegen?


    Viele Grüße


    Andreas

  • bei mir hat ein neustart des Rechners geholfen.


    sonst prüfe nochmals die conf Datei !!!


    ich glaube in der inet.d muss der 2001 auch frei geschaltet sein ...


    grüsse
    tobias

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Zitat

    Original von Tobias
    ich glaube in der inet.d muss der 2001 auch frei geschaltet sein ...


    Nachdem dieses Gerücht hier immer wieder auftauch: No Sir!


    In der inetd.conf stehen nur Dienste, die vom inetd gestartet werden sollen wenn auf den betreffenden Port zugegriffen wird.
    Der VDR läuft aber schon, und lauscht automatisch auf Port 2001 (es sei denn es wird was anderes angegeben.


    Wer's nicht glauben mag kann es im Source nachlesen, ich zähle auch gerne die betreffenden Stellen auf :]

  • Zitat

    Original von frix
    nur um sicher zu gehen, hast du auch telnet installiert, bzw _läuft_ dein telnetd-server?


    Und um auch dieses Gerücht zu beenden:
    Man braucht auch keinen Telnetserver.


    VDR ist der Telnetserver!



    andrew:
    Poste doch bitte mal was VDR ausgibt (auch im Log) wenn er startet.


    Siehe Sourcecode, svdrp.c :

    Code
    cSVDRP::cSVDRP(int Port)
    :socket(Port)
    {
      PUTEhandler = NULL;
      numChars = 0;
      message = NULL;
      lastActivity = 0;
      isyslog("SVDRP listening on port %d", Port);
    }


    SVDRP wird auf 2001 (default) initialisiert und ausgegeben dass er dieses getan hat.


    Dies wird in interface.c aufgerufen:

    Code
    cInterface::cInterface(int SVDRPport)
    {
      open = 0;
      cols[0] = 0;
      width = height = 0;
      interrupted = false;
      SVDRP = NULL;
      if (SVDRPport)
         SVDRP = new cSVDRP(SVDRPport);
    }


    Was wiederum in vdr.c aufgerufen wird:

    Code
    // User interface:
    
    
      Interface = new cInterface(SVDRPport);


    Da gibts nix zu deuteln oder interpretieren, sorry Leute.

  • OK Thomas.... wieder was gelernt ;)

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Zitat

    Man braucht auch keinen Telnetserver.


    Das wusste ich nicht. Aber wie heisst es so schön:
    ein verlorener Tag ist der Tag, an dem man nichts dazugelernt hat.
    Thomas, you made my day :]


    Grüsse,
    frix

  • Beim starten von VDR und beim Versuch mit Telnet zu connecten wird folgendes ausgegeben:



    Jul 9 14:57:36 VDR vdr[425]: VDR version 1.2.1 started
    Jul 9 14:57:36 VDR vdr[425]: loading /video/setup.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/sources.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/diseqc.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/channels.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/timers.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/svdrphosts.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/ca.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/remote.conf
    Jul 9 14:57:36 VDR vdr[425]: loading /video/keymacros.conf
    Jul 9 14:57:37 VDR vdr[425]: found 1 video device
    Jul 9 14:57:37 VDR vdr[425]: setting primary device to 1
    Jul 9 14:57:37 VDR vdr[425]: SVDRP listening on port 2001
    Jul 9 14:57:37 VDR vdr[425]: switching to channel 24
    Jul 9 14:57:38 VDR kernel: ves1820.c: AFC (4) -26953Hz
    Jul 9 14:57:42 VDR vdr[425]: connect from 127.0.0.1, port 32770 - DENIED
    Jul 9 15:03:44 VDR vdr[425]: connect from 127.0.0.1, port 32771 - DENIED
    Jul 9 15:03:59 VDR vdr[425]: connect from 127.0.0.1, port 32773 - DENIED
    Jul 9 15:04:00 VDR vdr[425]: connect from 127.0.0.1, port 32776 - DENIED




    bei einem versuch von "telnet localhost 2001" in der console folgendes:


    Trying 127.0.0.1...
    Connected to VDR.
    Escape character is '^]'.
    Access denied!
    Connection closed by foreign host.



    und die config file sieht so aus:


    ....
    localhost
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)
    ....




    evtl. hilft das ja..


    Viele Grüße


    Andreas, der bestimmt nur nen saudummen Fehler gemacht hat

  • Um's nochmal deutlich zu machen:


    <Oberlehrer Mode an>
    :lehrer1


    Inetd ist ein Wrapper.


    Der lauscht auf dem ihm angegebenen Ports und startet bei Zugriff auf einem Ihn bekannten Port den betreffenden Dienst.


    Beispiel Telnet:


    Code
    # telnet        stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd


    "Wenn auf den Port "telnet" zugegriffen wird, Protokoll tcp, dann starte als User "root" das Programm "/usr/sbin/tcpd" welches "telnetd" starten soll".


    Aus der inetd manpage:


    Zitat

    It then listens for connections on certain internet sockets. When a con-
    nection is found on one of its sockets, it decides what service the sock-
    et corresponds to, and invokes a program to service the request. After
    the program is finished, it continues to listen on the socket (except in
    some cases which will be described below). Essentially, inetd allows
    running one daemon to invoke several others, reducing load on the system.


    Aus der telnetd manpage:


    Zitat

    Operation is as follows: whenever a request for service
    arrives, the inetd daemon is tricked into running the tcpd
    program instead of the desired server. tcpd logs the
    request and does some additional checks. When all is well,
    tcpd runs the appropriate server program and goes away.


    Port "telnet" ist übrigens in /etc/services definiert:

    Code
    telnet           23/tcp                 # Telnet
    telnet           23/udp                 # Telnet



    VDR und sein Port 2001 läuft dagegen unabhängig davon, und zwar permanent!


    <Oberlehrer Mode aus>


    Noch Fragen :rolleyes:

  • Code
    Jul 9 14:57:42 VDR vdr[425]: connect from 127.0.0.1, port 32770 - DENIED
    Jul 9 15:03:44 VDR vdr[425]: connect from 127.0.0.1, port 32771 - DENIED
    Jul 9 15:03:59 VDR vdr[425]: connect from 127.0.0.1, port 32773 - DENIED
    Jul 9 15:04:00 VDR vdr[425]: connect from 127.0.0.1, port 32776 - DENIED


    da passt was mit den Ports nicht.... allerdings weiß ich auch net warum da was auf diesen hohen ports ankommt wenn du explizit 2001 angibst :( :( :(

    :vdr1 VDR User #626:fans
    VDR II: YeongYang A106, Fusi D1522, Celeron 2GHz, Frontend per DVB-s FF, 2xDVB-c, ATRIC-IR, YaVDR 0.3a
    VDR III HDTV: Inter-Tech 2008V mit iMonLCD, Atric, ASRock Extreme3 770 AM3, AMD Sempron 140 1x 2.70GHz AM3, 1,5TB WD15EADS, 2TB WD20EARS, 2x4GB DDR3-1600, NVidia GT520 passiv, 3x DVB-c, YaVDR 0.5 @ Samsung PS-50B550

  • Zitat

    Original von Tobias
    da passt was mit den Ports nicht.... allerdings weiß ich auch net warum da was auf diesen hohen ports ankommt wenn du explizit 2001 angibst :( :( :(


    Ahhh :)
    Wir tauchen in die Geheimnisse von TCP/IP ein :D :D


    Wahnsinn zweimal Oberlehrer in einem Thread: :lehrer1


    2001 ist der Port auf dem VDR seine Verbindungen entgegennimmt.
    Irgendwohin muss er ja dann auch antworten, und dieser Port wird vom Verbindungsaufnehmenden Prozess im Protokoll mitverpackt.
    Diese Verbindungsaufnahme wird vom TCP/IP Stack gehandhabt, die überliegende Applikation kann da zwar Informationen abrufen, aber in der Regel nix dran ändern.


    In diesem Fall will also das Telnetprogramm, das Verbindung zum VDR aufnimmt, die Antworten auf Port 32770.
    Die Verbindungsaufnahme wird ihm aber verweigert, also versucht er's nochmal, diesmal einen Port höher - da wird solange aus einem Pool freier Ports genommen bis der Stack nicht benutzte wieder freigibt.



    Nochmal die Ausgabe des Clients:


    Zitat

    Trying 127.0.0.1...
    Connected to VDR.
    Escape character is '^]'.
    Access denied!
    Connection closed by foreign host.


    Alles bis zu "Escape character" gibt der Client aus, danach kommt die Ausgabe des Hosts - hier der VDR.
    Und das ist "Access denied", was sich mit dem deckt, was VDR in's Log schreibt: "connect from 127.0.0.1, port 32770 - DENIED"


    Die Verbindungsaufnahme als solches klappt also, nur der VDR verbietet sie!



    Schmeiss in der config doch mal den Hostnamen raus, ich denke mal VDR verträgt da nur IP-Adressen!

  • hi,
    das stimmt schon mit den ports.
    das was da steht sind ja die source-ports. das ist was ganz normales das dort so hohe zahlen stehen.


    @andreas:
    ich vermute mal das der fehler an der svdrphosts.conf liegt. der vdr erkennt die connection von localhost und verneint sie dann. kann es sein das du die config-file nicht an der richtigen stelle hast?
    Thomas: danke das du das endlich mal klargestellt hast. ich konnte mich zuvor mit meiner meinung das vdr keinen telnetd und/oder inetd braucht leider nicht durchsetzten.
    edit: verdammt, du warst wohl eine minute schneller als ich.

  • Ja, es liegt ziemlich sicher an der config, ich hab das oben noch geändert aber zu spät ;)


    Sie sollte so aussehen dass es geht:


    Code
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)


    Also OHNE das localhost als Hostname. NUR IP-Adressen!

  • hmm
    also die richtige file hab ich wohl schon editiert..


    im log steht ja:


    Jul 9 14:57:36 VDR vdr[425]: loading /video/svdrphosts.conf


    Und da steht das drin, was ich auch gepostet habe..


    Grüße


    Andreas

  • Wenn ich Dich richtig verstanden habe steht da drin:


    Code
    localhost
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)


    Damit es geht sollte aber drinstehen:


    Code
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)



    Nun musst Du nur noch den Unterschied finden und entsprechend umsetzen :]






    Mann was bin ich wieder fies heute :mua

  • jaja die kleinen Dinge im Leben ;D



    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)



    Grüße


    Andreas

  • Zitat

    Jetzt hab ich die config files alle nochmal überschrieben und geändert
    und jetzt gehts


    Aber warum kapier ich nicht..


    Dass kann ich ändern :]



    Hier Deine alte config:


    Code
    localhost
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)


    Und hier die Neue:

    Code
    127.0.0.1 # always accept localhost
    192.168.0.2
    #192.168.100.0/24 # any host on the local net
    #204.152.189.113 # a specific host
    #0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)



    Es fehlt die erste Zeile der alten Config, nämlich das "locahost".
    Damit konnte VDR nichts anfangen da es keine IP-Adresse ist.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!