mgutt

Moderators
  • Content Count

    4024
  • Joined

  • Last visited

  • Days Won

    35

Posts posted by mgutt

  1. As my son should be able to start / stop a Minecraft container without getting access to the Unraid WebGUI, I came up with this script.

     

    Manual

    1. Install User Scripts Plugin
    2. Add script and set container name, secret key and port
    3. define custom cron */1 * * * * image.png.93ccc70d22431e5abd58994328755622.png
    4. open an URL that points to your unraid server and attach the secret to the URL for example http://10.0.0.10:8080/?my_secret
    5. reload the page multiple times for several seconds (this needs to be done within a 10 second time frame)

     

    Notes

    • Calling the API URL does not return any feedback to the user. 
    • Because of the custom cron, the timeout between starting and stopping a container is 1 minute.
    • I don't know why, but it does not work with the server alias http://tower/login?your_secret. You have to call an ip address.
    • You can't choose a port which isn't permanently open. As an example the Minecraft WebUI is accessible through http://10.0.0.10:9011, but the port 9011 is only open as long the Minecraft container is running. This means setting the port to 9011 and calling http://10.0.0.10:9011/?your_secret multiple times would stop the Minecraft container, but you wouldn't be able to start it by this URL again.

     

    Donate? 🤗

     

    Script

    #!/bin/bash
    # #####################################
    # Script:      Container Start/Stop API
    # Description: Starts or stops a container by opening an URL twice
    # Author:      Marc Gutt
    # ######### Settings ##################
    
    # name of the container that should be started / stopped
    container_name="minecraft"
    
    # the secret word of your API URL like http://10.0.0.10:8080/?my_secret
    secret="your_secret"
    
    # set API port
    port=8080
    
    # #####################################
    # 
    # ######### Script ####################
    # make script race condition safe
    if [[ -d "/tmp/${0///}" ]] || ! mkdir "/tmp/${0///}"; then exit 1; fi; trap 'rmdir "/tmp/${0///}"' EXIT;
    # check for first http://<ip_address>/?container_name request
    if timeout 1800 tcpdump -w - -i any port ${port} and -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' | grep -q "?${secret}"; then
        echo "First API call (wait)"
        sleep 1
        # check for second http://<ip_address>/?container_name request
        if timeout 10 tcpdump -w - -i any port ${port} and -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420' | grep -q "?${secret}"; then
            echo "Second API call (action)"
            # check if container exists
            if docker container inspect ${container_name} > /dev/null 2>&1; then
                # start or stop container depending on its state
                if [ "$( docker container inspect -f '{{.State.Running}}' ${container_name} )" == "true" ]; then
                    echo "Start container..."
                    docker stop ${container_name}
                else
                    echo "Stop container..."
                    docker start ${container_name}
                fi
            else
                echo "Container ${container_name} does not exist!"
            fi
        else
            echo "No second API call within 10 seconds!"
        fi
    else
        echo "API timeout"
    fi
    

     

     

  2. 3 hours ago, guybrush2012 said:

    Bestimmt nur über console stimms?

    Jo.

     

    So habe ich das gemacht:

    docker network create --subnet=172.19.0.0/24 npm

     

    Beim NPM dann noch das, damit der mit dem Netz npm kommunizieren kann:

    IMG_20210623_015507.jpg.c0ab04593e4856dfa0f6288a38694317.jpg

     

    Allerdings hänge ich da noch wie gesagt wegen der Vergabe der IPv6 fest. Im Moment aktualisiere ich die von Hand, wenn mein Anschluss eine neue IPv6 bekommen hat. ^^

  3. 4 hours ago, mobilfunk-maier said:

    MTU steht auf 1500, ist default so eingestellt

    Das dürfte zu viel sein.

     

    4 hours ago, mobilfunk-maier said:

    Weder noch, bisher nur mit Speedtest, Webtraffic probiert und die Probleme festgestellt

    Wird denn der gesamte Internettraffic nach Aufbau des Tunnels über den Server geroutet?! Ich wäre jetzt nur davon ausgegangen, dass Zugriffe auf die Server IP durch den Tunnel gehen und der Rest weiter direkt ins Internet geht.

     

    4 hours ago, mobilfunk-maier said:

    Beide Richtungen? Wie meinst du das?

    Naja, ein simpler Upload zum und Download vom Server?

     

     

  4. 3 hours ago, skyhill2003 said:

    Ist dieser Lizenzschlüssel an meinem Unraid Konto gebunden oder muss ich denn sicher vermerken?

    Welches Konto? Hier im Forum? Nein. Du hast per E-Mail einen Aktivierungslink bekommen und auf dem Stick wurde dadurch eine blabla.key Datei generiert. Die musst du sicher aufbewahren.

  5. Ich nutze den ich777/minecraftbasicserver Container. Der Operator soll nun in der Lage sein diesen Container zu stoppen und zu starten.

     

    Bisher ist mir nur eingefallen, dass man per tcpdump den Traffic auf einem Port X überwachen könnte. Ich würde also zB http://tower:1234 überwachen, der von sonst keinem Dienst in Verwendung ist und sobald der User diese URL aufruft, geht stoppt oder startet der Container, je nach dessen Status.

     

    Oder gibt es vielleicht sogar eine Möglichkeit mit einer separaten GUI? Oder noch andere Ideen?

  6. Am besten auf Host access verzichten. Wozu brauchen Container auch feste IPs aus deinem Netz und müssen miteinander kommunizieren können?

     

    Ich habe zb ein Netz mit eigener IP Range erstellt und die Container dort hinzugefügt. Dadurch haben die feste IP Adressen im Bereich 172.19.0.x

    Screenshot_2021-06-22-21-15-30-799_com.android.chrome.thumb.jpg.05d6b48b33b830c958d9ed65a0dd04bf.jpg

    • Like 1
  7. 52 minutes ago, Bigbrother said:

    WD_BLACK SN750 NVMe wegen des Kühlkörpers

    Völlig überteuert die mit Kühlkörper. 90 bis 110 €. Mehr solltest du nicht pro TB ausgeben. Ein kleiner Windzug vom CPU Kühler oder den Gehäuselüftern reicht in der Regel. Wenn nicht gibt es sehr günstige Alu/Kupferkühler zum Aufkleben.

  8. 4 hours ago, Bigbrother said:

    Das WU4 scheint es ja nirgendwo mehr zu geben

    Ich habe noch zwei Stück. Wenn der Großhändler wieder normale Preise anbietet, könnte ich auch wieder was nachbestellen.

     

    4 hours ago, Bigbrother said:

    Der i3-9100 ist im Moment Höhenflug, gibt es da noch Alternativen mit iGPU im Hinblick auf Energieverbrauch? 

    Du kannst auch einen gebrauchten i3-8100 / 8300 oder 8350K nehmen. Den i3-9300 gab es auch eine Zeit lang für weniger als den 9100. Vom Verbrauch geben die sich alle nichts. Kannst auch einen Xeon nehmen (E-21xxG oder E-22xxG). Da du von keinen VMs gesprochen hast, ginge sogar ein Pentium Gold G5xxx. Ich habe die Tage erst einen gebraucht für meine ich 35 € gekauft.

     

    4 hours ago, Bigbrother said:
    • Western Digital WD_BLACK SN750 NVMe SSD 1TB, M.2, Kühlkörper

    Oder Crucial P5 oder Samsung Evo oder Samsung Evo Plus. Einfach das was gerade im Angebot ist.

     

    2 hours ago, Ford Prefect said:

    Ausser vielleicht der 10100E - @mgutt gibt es von dort was Neues

    Leider kein Update. Der Großhändler setzt auch überzogene Preise beim W480M an😤

    • Thanks 1
  9. 1 hour ago, guybrush2012 said:

    ist es normal das dann Unraid in der Fritzbox zwei mal auftaucht?

    Nein. Entweder lange warten oder die Fritz!Box neu starten. Die ist da recht eigen. Was ich auch häufig mache ist über die Netzwerkeinstellungen den DHCP Bereich ändern, so dass die letzte IP eine Stelle mehr oder weniger erhält. Dadurch werden die Namen auch zurückgesetzt 😉

    1648349398_2021-06-2214_23_17.png.8e1cd2e9d6d5e35be8a4ec0b544f0118.png

     

    Wenn die Liste passt, wird er den doppelten Eintrag nach unten verfrachten. Dann direkt den "Entfernen" Button anklicken und mal alles rauswerfen, was eh nicht verbunden ist:

    image.png.6c7fff16fb80c61c9d0b20ddb6a073ec.png

     

    Das kommt auch immer wieder vor, wenn man Containern feste IP-Adressen zuweist (br0). Diese Sachen hängen aber mit der Fritz!Box zusammen. Hat jetzt nichts mit Unraid zu tun. Die kommt da einfach mal durcheinander. 

  10. 47 minutes ago, Anym001 said:

    Scheint zu funktionieren. 

    Ohne diese "Einschränkung" wechselt er auf hpet. 

    Mit "Einschränkung" bleibt er bei tsc. 

    Dh jetzt geht bei dir C10?

     

    48 minutes ago, Anym001 said:

    Also please provide the output of lscpi -nn | grep Host

    Da ist ein Dreher drin. Das Kommando muss so heißen:

    lspci -nn | grep Host

     

    48 minutes ago, Anym001 said:

    Wie finde ich die Kernel Version raus? 

    so:

    uname -a

     

  11. Wer viele Nutzer hat, verwendet normalerweise Active Directory. Dh bei Settings -> SMB -> nicht Yes, sondern Yes Active Directory auswählen. Dann haben alle Ordner Rechte, die für den jeweiligen Nutzer gelten. Verwaltet wird das dann denke ich über einen Windows Admin User. Allerdings nutze ich das nicht, daher bin ich aber der Stelle raus.

     

    Mittlerweile gehen denke ich die meisten hin und arbeiten mit einer Cloud. Also zB Nextcloud. Dort hast du dann das Nutzer-Management über die WebUI und die Rechner synchronisieren ihre Dateien automatisch auf den Server. Du machst dich damit auch unabhängiger vom Betriebsystem und kannst auch unterwegs mit deinen Dateien arbeiten (musst du aber nicht, du kannst es auch rein lokal betreiben).

     

     

  12. 37 minutes ago, mobilfunk-maier said:

    für mich ist die iP die von no-ip kommt halt immer dieselbe, das meinte ich damit.

    Dann stimmt was nicht beim Aktualisieren der IP. Dann würde ich in der Fritz!Box einen anderen Dienst hinterlegen, wenn das unzuverlässig ist.

     

    37 minutes ago, mobilfunk-maier said:

    Ich hab jetzt die no-iP Domain/ip in der WireGuard Verbindung in Unraid hinterlegt und bekomme dasselbe Ergebnis

    Was logisch ist, weil die DDNS damit nichts zu tun hat.

     

    37 minutes ago, mobilfunk-maier said:

    CPU-Auslastung während Speedtest in Unraid ohne krasse Veränderungen.

    Wer ist der Client und wie ist dessen Auslastung? Gilt das auch für andere Clients?

     

    Hast du die Geschwindigkeitsprobleme in beide Richtungen?

     

    Womit überträgst du überhaupt Dateien? SMB? Schon mal unverschlüsseltes FTP probiert (verursacht die geringste CPU Last)?

     

    Hat dein Provider evtl die Wireguard Ports gedrosselt? Teste mal Port 53 (DNS), 123 (Zeitserver), 500 (Schlüsseltausch) oder 563 (Zeitserver, verschlüsselt). Diese standardisierten Ports sind in der Regel "unangetastet".

     

    Steht die MTU auf automatic? Häufig ist eine falsche MTU Ursache für eine schlechte Übertragungsrate. Am besten mal beim Server und beim Client als festen MTU Wert 1420 ausprobieren.

    • Like 1