Halb gelöst: xineliboutput lässt kein connect von anderen (remote) hosts aus dem Netz zu

  • Moin zusammen,


    xineliboutput lässt kein connect von anderen hosts zu.

    Local auf dem VDR-Rechner, also auf 127.0.0.1 geht es, aber von einem anderen Host im lokalen Netz aus geht es nicht:


    Config auf dem VDR:


    Also eigentlich alles freigegeben, oder?

    Netstat zeigt zwar für den port 37890 listen 0.0.0.0:* aber eben nur von 127.0.0.1:37890 aus und nicht als 0.0.0.0:37890


    VDR-Log:

    Code
    1. Mar 11 15:39:19 vdr2 vdr: [6107] [xine..put] Binding server to 127.0.0.1:37890
    2. Mar 11 15:39:19 vdr2 vdr: [6107] [xine..put] Listening on port 37890
    3. Mar 11 15:39:19 vdr2 vdr: [6107] [xine..put] Listening for UDP broadcasts on port 37890


    Sollte VDR da nicht eher an 0.0.0.0:37890 binden?


    Oder wo kann man noch was einstellen, damit auch von einem entfernten Rechner im Netz mit vdr-sxfe zugegriffen werden kann?


    Danke für Tipps,

    Gruss,

    Bernd

  • Wie sieht die allowed_hosts.conf aus? https://projects.vdr-developer…utput.git/tree/README#n51

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wie sieht die allowed_hosts.conf aus? https://projects.vdr-developer…utput.git/tree/README#n51

    Siehe oben im Code ... habe auf "any" gestellt:


    Code
    1. root@vdr2:/etc/vdr/plugins# cat xineliboutput/allowed_hosts.conf
    2. #
    3. # allowed_hosts This file describes a number of host addresses that
    4. # are allowed to connect to the xineliboutput plugin
    5. # of the Video Disk Recorder (VDR) running on this system.
    6. # Syntax:
    7. #
    8. # IP-Address[/Netmask]
    9. #
    10. 0.0.0.0/0 # any host on any net (USE THIS WITH CARE!)

    Die svdrphosts steht auch auf 0.0.0.0


    Gruss,

    Bernd

  • Und die svdrphosts.conf ist auch angepasst? https://projects.vdr-developer…tput.git/tree/README#n121

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • tcpdump:

    Code
    1. root@vdr2:~# tcpdump -i eth0 -n -l port 37890
    2. tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    3. listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    4. 19:37:13.905783 IP 192.168.0.2.46762 > 192.168.0.201.37890: Flags [S], seq 765292401, win 29200, options [mss 1460,sackOK,TS val 66117198 ecr 0,nop,wscale 7], length 0
    5. 19:37:13.905831 IP 192.168.0.201.37890 > 192.168.0.2.46762: Flags [R.], seq 0, ack 765292402, win 0, length 0
    6. ^C
    7. 2 packets captured
    8. 2 packets received by filter

    Da kommt ein R (reject) ...


    Das würde erklären warum netstat:

    Code
    1. root@vdr2:~# netstat -tulpn | grep 37890
    2. tcp 0 0 127.0.0.1:37890 0.0.0.0:* LISTEN 2955/vdr
    3. udp 0 0 255.255.255.255:37890 0.0.0.0:* 2955/vdr

    evtl hier 127.0.0.1:37890 ausgibt.


    Im syslog steht ja auch:

    Code
    1. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Binding server to 127.0.0.1:37890
    2. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Listening on port 37890
    3. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Listening for UDP broadcasts on port 37890

    Also scheint der vdr bzw. das plugin sich nicht ans lokale Netzwerk zu binden, sondern nur an das loopback, trotz der config:

    Code
    1. --local=none
    2. --primary
    3. --remote=37890

    Kann man das Problem lösen? Wie bekommt man das plugin an 127.0.0.1 UND für das äußere Netz gebunden?

  • Bei mir steht in allen "allowed_hosts"-Dateien immer das hier drin und ich kann von allen LAN-/WLAN-Clients zugreifen; zB von Stand-PC 192.168.192.61 auf VDR 192.168.192.50:

    127.0.0.1 # always accept localhost

    192.168.0.0/16 # any host on the local net

    (der any-Eintrag ist bei mir auskommentiert)

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Bei mir steht in allen "allowed_hosts"-Dateien immer das hier drin und ich kann von allen LAN-/WLAN-Clients zugreifen; zB von Stand-PC 192.168.192.61 auf VDR 192.168.192.50:

    127.0.0.1 # always accept localhost

    192.168.0.0/16 # any host on the local net

    (der any-Eintrag ist bei mir auskommentiert)

    Habe ich schon alles ausprobiert, sowohl die beiden Zeilen, die Du hast, als auch die any-Zeile.

    Es funktioniert einfach nicht. Es wird kein connect aus dem lokalen Netzwerk zu gelassen.

    Der tcpdump zeigt, dass nach dem syn-Paket ein reject-Paket fliegt.

    Die iptables sind leer und alle auf default policy accept.


    Kannst Du mal schauen, was bei Dir die Ausgabe von netstat -tulpn | grep 37890 ergibt?


    Bekommst Du da eine Zeile mit: tcp 0 0 127.0.0.1:37890 0.0.0.0:* zurück

    oder eine Zeile mit: tcp 0 0 0.0.0.0:37890 0.0.0.0:*

    zurück?


    Da ich ein 127.0.0.1:37890 bekomme, zusammen mit der logmeldung im syslog, dass sich xine..put an 127.0.0.1:37890 bindet,

    ergibt für mich das Verständnis, dass trotz der plugin-Konfiguration --remote=37890 keine Bindung an das physikalische

    Netzwerkinterface erfolgt. Wenn jedoch bei Dir auch die Zeile 127.0.0.1:37890 erscheint, es bei Dir aber geht, muss der

    Teufel bei mir woanders stecken.


    Hat jamend noch eine Idee?


    Viele Grüße,

    Bernd

  • Strange - ich bekomm von dem Befehl sudo netstat -tulpn | grep 37890 überhaupt nichts zurück.

    sudo netstat -tulpn liefert etliche Verbindungen, aber keine mit dem Port 37890.


    Aber für Port 34890 kommt was:

    sudo netstat -tulpn | grep 34890

    tcp 0 0 0.0.0.0:34890 0.0.0.0:* LISTEN 21739/vdr

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • Dann steht bei Dir in der plugin config sicher --remote=34890, denn 37890 ist der default Wert.

    Aber Du hast die 0.0.0.0:34890 und da es bei Dir funktioniert und bei mir mit 127.0.0.1:37890 nicht, bin ich schon mal dicht dran.

    Kannst Du bei Dir mal nachsehen, was im syslog steht?


    Interessant wären diese Zeilen mit [xine..put]:

    Code
    1. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Binding server to 127.0.0.1:37890
    2. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Listening on port 37890
    3. Mar 11 18:48:57 vdr2 vdr: [3098] [xine..put] Listening for UDP broadcasts on port 37890


    Irgend jemand anderes eine Idee, warum trotz entsprechender config (siehen weiter oben), bei mir der connect aus dem Netzwerk nicht klappt?


    Gruss,

    Bernd

  • Sorry, sorry, sorry!

    Der Port 34890 ist bei mir offenbar für den vnsi-server - ich nutze xineliboutput gar nicht (mehr). :wand


    Bei dir steht im WebIf unter Einstellungen - System - Allgemein - Setup sicher: " vdr-sxfe@vdr-plugin-xineliboutput", oder?

    Ich verwende seit langem nur mehr "vdr-plugin-softhddevice" und das klappt seit dem Umstieg hervorragend.


    Sorry nochmal, dass ich mich überhaupt in dem Thread eingemischt habe!

    MyVDR (Hardwareliste) : yaVDR 0.6 - softhddevice-openglosd - epgd/epg2vdr - skindesigner estuary4vdr (adaptiert) - 1920x1080@50 Hz | kodi 17.1 - inputstream - amazon prime vod *broken*
    Aerocube M40 | 300W | ASRock H61M-GE | Intel G530 | Asus ENGT520 | 2 x TT-budget S2-3200 | ASRock Smart Remote (CIR) | 4 GB RAM | 3 TB HDD

  • So ich habe jetzt mit netfilter getrickst!


    Da laut netstat sich der vdr ums verrecken nur an 127.0.0.1:37890 gebunden hat, habe ich per:


    Code
    1. iptables -t nat -D PREROUTING -p tcp -d 192.168.0.201 --dport 37890 -j DNAT --to-destination 127.0.0.1

    erst mal alle tcp Pakete an port 37890 vom lokalen Netzwerkinterface auf das loopback device umgebogen.


    Damit dann der remote client auch die Pakete zurück bekommt habe ich unter /etc/sysctrl.d die Datei vdr.conf angelegt:

    Code
    1. #
    2. net.ipv4.conf.all.route_localnet = 1

    damit die Pakete vom loopback device auch wieder zurück geworfen werden.


    Damit kann ich dann auf dem remote Rechner per: vdr-sxfe xvdr://192.168.0.201:37890

    die Verbindung herstellen.


    Fertig!


    Nicht schön aber selten ;-)