Dies ist eine mobil optimierte Seite, die schnell lädt. Wenn Sie die Seite ohne Optimierung laden möchten, dann klicken Sie auf diesen Text.

Stalker Portal Manager

tem_invictus

Elite Hacker
Premium
Registriert
18. Februar 2017
Beiträge
1.822
Lösungen
3
Reaktionspunkte
1.644
Punkte
1.970
Moin zusammen,
aus Neugierde und Interesse mehr zu verstehen, wie die ganze Stalker Geschichte funktioniert, habe ich mir ein eigenes Stalker Portal gebaut. Das ist natürlich deutlich inspiriert von @clever999 und @salidos, ist aber schlanker aufgebaut. Und auch Dankeschön an beide, bei Fragen immer geholfen.

Kurz zusammengefasst könnt ihr Portale hinzufügen, Kategorien auswählen und euch daraus eine Playlist erstellen lassen. Diese erstellte Playlist verweist auf einen nginx Webserver, welcher dann eine passende MAC auswählt und dem Player den passenden Link zurück sendet.

Getestet habe ich die ganze Sache auf einer Ubuntu VM. Ich bin kein Sicherheitsexperte, die ganze Sache gehört somit nicht auf öffentliche Server, sondern ins eigene Heimnetz. Am besten noch in Verbindung mit einem VPN, aber das kann jeder halten, wie er möchte.

Zum Starten das Archiv auf den Server kopieren, entpacken und das Hauptskript ausführen:
Code:
unzip portal-manager-tem_invictus.zip
cd portal-manager-tem_invictus/
./main.sh

Nginx-Konfiguration
Der nginx‑Webserver kann über den Menüpunkt „3. Proxy Settings“ automatisch installiert und konfiguriert werden. Dabei werden die benötigten Konfigurationsdateien erstellt bzw. angepasst. Diese Option sollte nur verwendet werden, wenn die VM ausschließlich für diesen Zweck genutzt wird. Erfahrene Nutzer können die notwendigen Anpassungen auch manuell vornehmen und die Konfiguration in eine bestehende nginx‑Installation integrieren.

Grundablauf
  1. „3. Set Proxy Hostname“
    • Zuerst den Proxy‑Hostname setzen.
    • Dieser Wert wird später zur Erstellung der Playlist verwendet.
  2. „1. Add new portal“
    • Neues Portal anlegen (Name, URL usw.).
    • Die Eingaben sind weitgehend selbsterklärend.
  3. „2. Edit Portal“
    • Das gewünschte Portal auswählen und bei Bedarf anpassen.
Portal-Menü – empfohlene Reihenfolge

Im „Portal Menu“ empfiehlt sich folgender Ablauf:
  1. „3. Select Categories“
    • Zuerst die gewünschten Kategorien auswählen.
    • Andere Funktionen hängen von dieser Auswahl ab.
  2. „6. Add MAC address“
    • Pro Zeile eine MAC‑Adresse eintragen.
    • Doppelte Einträge werden automatisch entfernt.
    • Ungültige MAC‑Formate werden verworfen.
  3. „7. Check MACs“
    • Führt verschiedene Prüfungen gegen das Portal durch:
      • Gültigkeit der MAC‑Adresse
      • Ablaufdatum der MAC
      • Anzahl der für diese MAC freigeschalteten Kategorien
      • Abgleich, ob die ausgewählten Kategorien für diese MAC verfügbar sind
  4. „5. Generate M3u“
    • Erstellt die Playlist (.m3u) mit den zuvor ausgewählten Kategorien.
Wichtig:
„7. Check MACs“ muss immer ausgeführt werden, sobald neue MAC‑Adressen hinzugefügt oder Kategorien geändert wurden.
Hintergrund: Beim Aufruf eines Kanals prüft das Skript, ob
  • die MAC noch gültig ist (Ablaufdatum) und
  • die Kategorie für diese MAC freigeschaltet ist.
Alle ausgewählten Kategorien müssen für die jeweilige MAC verfügbar sein. Ist auch nur eine der gewählten Kategorien für diese MAC nicht verfügbar, wird diese Kategorie ausgeschlossen.

Playlist abrufen

Nach der Generierung kann die Playlist auf zwei Arten genutzt werden:
  • Direkt vom Server-Dateisystem, z.B. aus
    /var/www/stalker/PORTAL/
    Die Dateien heißen:
    proxy_PORTAL.m3u
    (wobei PORTAL durch den jeweiligen Portalnamen ersetzt wird).
  • Per HTTP-Aufruf, z.B. in VLC:
Beispiel:

Webinterface

Es gibt eine simple Website, die über aufgerufen werden kann.


Du musst Regestriert sein, um das angehängte Bild zusehen.

Du musst Regestriert sein, um das angehängte Bild zusehen.

Du musst Regestriert sein, um das angehängte Bild zusehen.

Du musst Regestriert sein, um das angehängte Bild zusehen.
VERSION:

  • 1.0
    • base version
  • 1.1
    • kleine Anpassung an den Scripten
    • "7. Check MACs" kann man jetzt auswählen, ob "All MACs" oder "Only new MACs". Bei "Only new MACs", werden nur MACs geprüft, die vorher noch nicht geprüft worden sind. Sprich, wenn man neue MACs hinzufügt müssen nicht alle alten noch mal den Check durchlaufen.
  • 1.2
    • hatte den check nach Doppelten MACs beim hinzufügen neuer MACs kaputt gemacht in der letzten Version. fixed
    • außerdem hatte ich auch die Anzeige der MAC Adressen im Portal Menu zerstört. fixed
  • 1.3
    • Skripte laufen jetzt größtenteils ohne "sudo" Rechte, was die Sache sicherer macht. Um dies zu erreichen, wird der User zur Gruppe www-data hinzugefügt. Das wird durch das main.sh Script beim Start gecheckt.
  • 1.4
    • noch mal an den Berechtigungen rumgebastelt, sollte jetzt noch mal "besser" sein
    • iptv_proxy.sh Script angepasst. Es wird jetzt ein Logfile geschrieben, um besser zu verstehen, was das Portal an Rückmeldung gibt. Außerdem die Überprüfung der Stream Links ausgebaut. Einen gültigen Stream Link bekommt man jetzt mit deutlich höherer Wahrscheinlichkeit.
  • 1.41
    • vergessen was vom testen rauszunehmen, wodurch bei einigen Portalen nicht mehr alles funktioniert. fixed
  • 1.5
    • main.sh Script checkt am Anfang wieder die benötigten Pakete und fragt, ob diese installiert werden sollen, wenn nicht vorhanden
  • 1.6
    • ein paar kleinere Anpassung, wo ich schon wieder vergessen habe, was es genau war
    • das iptv_proxy.sh Script angepasst. Bisher hat das script so lange zufällig MAC Adressen ausgewählt, bis es eine funktionierende hat. Das kann zu Situationen führen, wo so viele Adressen probiert werden, bis man vom server gesperrt wird. Jetzt werden Standardmäßig nur 5 MAC Adressen probiert. Im Menü gibt es eine neue Option "Proxy Script Setup", hier kann man diesen Wert (Max MAC Attempts per request) abändern.
      Außerdem neu, es wird pro MAC Adresse eine Art Statistik angelegt in der Datei "mac_stats.txt. Hier wird festgehalten, bei wie vielen Anfragen eine MAC benutzt wurde und wie viele davon erfolgreich waren. Daraus wird ein Wert ermittelt und "erfolgreiche" MACs werden bevorzugt benutzt. Dazu kann man einstellen, ab wann dieser Wert benutzt werden soll. Standardmäßig erst wenn eine MAC für mindestens 10 Anfragen genutzt wurde. Auch diesen Wert (Min Stats Attempts Threshold) kann man ändern unter "Proxy Script Setup".
  • 1.7
    • ein paar Optische Anpassungen. (am besten die Datei dialogrc_custom löschen)
    • neue Option, um ein paar System Informationen anzuzeigen
    • neue Option, Portal Statistiken anzuzeigen
    • neue Option, pro Portal kann man sich ansehen, wie "erfolgreich" eine MAC Adresse ist
  • 1.8
    • Wieder ein paar optische Anpassungen. Vor allem Portal Info mit mehr Informationen ausgestattet.
    • Das erstellen der m3u Playlist angepasst. Zum einem ist die Erstellung jetzt schneller, da immer 5 Kanäle parallel abgefragt werden.
      Manche Portale antworten anders auf die Kanal Abfrage, so dass die Erstellung manchmal nicht klappt. Eine Überprüfung hinzugefügt, die jetzt hoffentlich immer erkennt, wie die Daten vom Portal bereitgestellt werden und darauf reagiert.
  • 1.81
    • Portal Info Anzeige korrigiert
  • 1.82
    • wenn keine Kanäle gefunden werden, wird keine Playlist mehr erstellt
  • 1.90
    • hier und da Bugs entfernt, kann mich aber nicht an alle erinnern
    • VOD hinzugefügt
      • Man kann sich jetzt pro Portal auch M3U Listen für VOD Inhalte erstellen lassen. Ich habe das nur rudimentär mit 2 Portalen getestet. Die VOD M3U ist dann erreichbar unter " "
    • Ablaufdatum
      • es gibt wohl Portale die ein hartes Limit haben, was Anfragen zu verschiedenen MACs und deren Ablaufdatum haben. Beim erstellen von einem Portal, wird man jetzt nach einem "MAC check delay" gefragt. Hier muss man ausprobieren, wie tief man damit gehen kann. Bei vielen Portalen ist auch 0 kein Problem.
      • um das für vorhandene Portale zu aktiveren, entweder einmal Portal löschen und neu hinzufügen oder die eigene "portals.list" anpassen. Und zwar ganz am Ende, hinter der MAC, folgendes einfügen "|1" (die 1 würde hier jetzt für 1 Sekunde Delay stehen)
      • wenn vom Portal keine Infos zum Ablaufdatum kommt, wird die MAC jetzt trotzdem berücksichtigt, solange weiterhin die Kategorie verfügbar ist
    • Routing durch ein bestimmtes Netzwerkinterface
      • ACHTUNG -> die Funktion funktioniert zwar, aber ob dann wirklich alles sauber durch das bestimmte Interface läuft, garantiere ich nicht
      • im gleichen Ordner, wie das Script eine Datei erstellen "vpn_interface.conf". Hier dann einfach sein gewünschtes Netzwerk Interface reinschreiben
      • die Funktion ist völlig optional, man kann die Datei auch einfach weglassen oder leer lassen
  • 1.91
    • XMLTV Funktion hinzugefügt.
      • Live TV M3U wird jetzt mit tvg-id="" und tvg-chno="" erstellt, wenn die Daten beim Portal vorhanden sind
      • VOD M3U wird jetzt mit vg-logo="" erstellt, wenn die Daten beim Portal vorhanden sind
  • 2.00
    • alle scripts noch mal angepasst und aufgeräumt
    • simples Webinterface hinzugefügt
      • aufrufbar über den eingestellten Proxy Hostname (Beispiel )
  • 2.01
    • kleiner hotfix
  • 2.10
    • kleine Anpassungen Log Ausgabe
    • Für die Auswahl der MACs stehen jetzt drei Verschiedene Verfahren zur Auswahl, diese werden automatisch vom iptv_proxy.sh ausgewählt. Diese sind aufgeteilt in Q > B > R. Um die Systemlast zu mindern, wurde dafür ein kleines Python helper script erstellt.
      • Q = Qualifizierte MACs, die sowohl die Schwellenwerte für die Anzahl der Versuche als auch für die Erfolgsquote erfüllen; sie werden nach der Quote absteigend sortiert und zuerst ausgegeben.
      • B = Best-Effort-MACs: Sobald keine Q-Einträge mehr vorhanden sind (Schwellenwerte nicht erreicht), versucht der Proxy diese nach Erfolgsquote geordnete B-Liste als Fallback, bevor er auf die reine Zufallsliste zurückgreift.
      • R = Zufällige Fallback-MACs, denen entweder Statistiken fehlen oder die die Schwellenwerte nicht erreicht haben; sie werden dennoch ausgegeben, damit der Proxy sie gemischt anhängen kann, wenn keine qualifizierten MACs funktionieren.
    • iptv_proxy.sh sammelt die Q-Zeilen und mischt sie pro Anfrage. Wenn die Q-Liste leer ist, aber B-Einträge vorhanden sind, behandelt es diese als geordnete Liste. Unabhängig davon werden R-Zeilen immer gemischt und nach dem priorisierten Satz angehängt, wodurch sichergestellt wird, dass jede Anfrage zuerst die besten MACs ausprobiert, aber dennoch über einen deterministischen Fallback-Pfad verfügt.
    • "3. Proxy Settings" -> "4. Proxy Script Setup" ->
      • "Min Stats Attempts Threshold", hier wird ein Minimum festgelegt, ab wie vielen Abfragen die Statistik rangezogen wird.
      • "Min Success Rate (0-1)", hier wird in Prozent angegeben, wie erfolgreich eine MAC sein soll, um berücksichtigt zu werden. (z.B. 0.8 = 80%)
  • 2.20
    • Anpassungen an der stats website
    • div. Scripte noch mal angepasst und mögliche Fehler Quellen beseitigt
    • die Auswahl der MAC Adresse angepasst
      • die Änderungen in der letzten Version konnten dazu führen, dass sich Clients gegenseitig aus dem Stream werfen, da dieselbe MAC für jede Anfrage genommen wurde. Hier einige Funktionen eingebaut, die das verhindern sollten
  • 2.21
    • Berechtigungen werden jetzt vom main.sh script "besser" geprüft und ggf. angepasst
    • "Configure Nginx for Proxy" fixed
      • hier waren Fehler drin
      • Logging verbessert, damit man direkt sieht, wenn es Fehler in der Ausführung gibt
    • "Proxy Script Setup" überarbeitet und mehr Einstellmöglichkeiten hinzugefügt
      • über "MAC Cooldown seconds" kann man die Zeit einstellen, wie lange MACs nach einem Erfolg gesperrt werden sollen. Mit 0 Sekunden deaktiviert man die Funktion
    • "MAC Usage Stats" hat eine neue Funktion "Remove Low Success MACs"
      • hiermit kann man MACs aus seiner Liste (pro Portal) entfernen, die nicht gut genug performen
      • man kann angeben, mit welcher Erfolgsquote und wie vielen Versuchen eine MAC entfernt werden soll
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
Also, Server läuft soweit, aber es kommt im Portal Menu unter "3. Select Categories" nichts an.
Muss dazu sagen, dass ich mich mit nginx bisher noch nicht beschäftigt habe. Finde keine nginx.conf auf den Server?
Folgende Ordner durchsucht: /usr/local/nginx/conf, /etc/nginx oder /usr/local/etc/nginx
Muss man die erst selber anlegen?
 
systemctl status nginx

Dann siehste, ob überhaupt installiert und damit Laufen.
 
Zuletzt bearbeitet:
Habe es noch nicht ausprobiert, aber laut script sollte die conf dort sein:
/etc/nginx/sites-available/iptv_proxy
 
@salidos
Ist installiert und läuft.
* nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-04-24 10:35:49 UTC; 1min 34s ago
Docs: man:nginx(8)
Process: 273 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 279 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 287 (nginx)
Tasks: 2 (limit: 18737)
Memory: 3.2M (peak: 3.4M)
CPU: 9ms
CGroup: /system.slice/nginx.service
|-287 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
`-289 "nginx: worker process"

Apr 24 10:35:49 invictus systemd[1]: Starting nginx.service - A high performance web server and a reverse proxy server...
Apr 24 10:35:49 invictus systemd[1]: Started nginx.service - A high performance web server and a reverse proxy server.

@seppfx
Nein, die fehlt unter /etc/nginx/sites-available/iptv_proxy und auch sonst auf dem Server nicht zu finden.
 
Komisch, bei mir ist sie da.
Du musst Regestriert sein, um das angehängte Bild zusehen.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
@remz , also "3. Select Categories" hat erstmal noch gar nichts mit nginx zu tun. nginx kommt erst ins spiel, wenn du Kanäle aufrufen willst.
Das Portal funktioniert aber?

Hast du "4. Configure Nginx Proxy" ausgeführt?
 
Habe es noch mal neu in einer VM aufgesetzt.
Wenn du den Stalker Portal Manager von dir meinst, ja.
Bleibe aber bei 3. Select Categories hängen, liest da nichts ein.
Habe da jetzt schon einige Portale getestet, immer die gleichen Fehlermeldungen.
Unter /var/www/stalker/von mir angegebenes Portal sind macs.txt, config, macs_info.txt vorhanden, bekomme aber immer Fehlermeldungen (siehe Spoiler).
An den Portal oder macs die eingetragen habe kann es nicht liegen, da diese in andere Manager wie von salidos oder xtreammulti laufen.

4. Configure Nginx Proxy ja, habe ich.

Du musst Regestriert sein, um das angehängte Bild zusehen.

Du musst Regestriert sein, um das angehängte Bild zusehen.

Du musst Regestriert sein, um das angehängte Bild zusehen.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Zuletzt bearbeitet:
Also die Software bekommt kein Handshake mit dem Server hin, somit können die Kategorien nicht abgerufen werden.
Wenn du magst, schick mir mal das Portal und ein paar MACs, dann schaue ich mal.

Oder probier mal selber eine andere MAC. Für das abrufen der Kategorien wird immer die eine genommen, die man bei den Portal Daten einträgt.
 
Update auf 1.1
  • kleine Anpassung an den Scripten
  • "7. Check MACs" kann man jetzt auswählen, ob "All MACs" oder "Only new MACs". Bei "Only new MACs", werden nur MACs geprüft, die vorher noch nicht geprüft worden sind. Sprich, wenn man neue MACs hinzufügt müssen nicht alle alten noch mal den Check durchlaufen.
 
UPDATE auf 1.2
  • hatte den check nach Doppelten MACs beim hinzufügen neuer MACs kaputt gemacht in der letzten Version. fixed
  • außerdem hatte ich auch die Anzeige der MAC Adressen im Portal Menu zerstört. fixed

Zum Update könnt ihr einfach die Daten überschreiben. Wichtig nur die Daten aus "/var/www/stalker" nicht löschen und im Script Ordner, "portals.list" und "proxy_server.conf" nicht löschen.
 
Zuletzt bearbeitet:
UPDATE auf 1.3
  • Skripte laufen jetzt größtenteils ohne "sudo" Rechte, was die Sache sicherer macht. Um dies zu erreichen, wird der User zur Gruppe www-data hinzugefügt. Das wird durch das main.sh Script beim Start gecheckt.
 
ich wollte das mal testen auf einem Pi3 mit ubuntu
immer wenn ich ein Portal erstelle kriege ich eine Fehlermeldung "Fehler beim schreiben o.ä."
muss ich das als Root ausführen?
 
Eigentlich fragt das Script, wenn es sudo Rechte braucht. Aber probier doch mal "sudo ./main.sh" und berichte mal bitte.
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…