Jump to content

VPN Docker Plex, freigabe ins Internet


h3xx3r
Go to solution Solved by Mainfrezzer,

Recommended Posts

Hallo, ich hoffe ihr könnt mir helfen.

 

Ich versuche seit Tagen meinen im Docker laufenden Plex von außerhalb oder auch innerhalb meines VPN Netzwerk zu erreichen aber seit dem Update auf die neuste Unraid Stable und jetzt auch die 7 Beta 2 will es so garnicht mehr laufen.

 

unter Unraid im VPN Manager hatte ich den neuen Reiter "VPN getunnelter zugang für Docker" genau das möchte ich auch.

Grund ich habe Kabel internet mit dualstack und lasse meine Docker über den VPN der auf meinem 1und1 1€ Server mit IPV4 und IPV6 ins internet damit sie über meine Domain erreichbar sind.

 

Testweise habe ich im Unraid einen Firefox Docker am laufen um zu sehen ob ich über den VPN ins Internet komme, das funktioniert aber ich habe darüber keinen zugriff auf das VPN Netzwerk, der Plex ist darüber nicht erreichbar und im Plex Webinterface steht auch unter Fernzugriff "nicht außerhalb deines Netzwerkes erreichbar"

 

mit Routen und Iptables kenne ich mich leider nicht sonderlich gut aus also hatte ich beim rumexperimentieren auch keinen Erfolg.

 

zu meinem Aufbau:

Unraid 7 Beta 2 zu hause in einem Fritz Netzwerk 192.168.178.2, die VPN IP 10.8.0.2

[Interface]
PrivateKey=meinkey
Address=10.8.0.2
MTU=1500
PostUp=logger -t wireguard -- 'Tunnel WireGuard-wg0 started';/usr/local/emhttp/webGui/scripts/update_services
PostDown=logger -t wireguard -- 'Tunnel WireGuard-wg0 stopped';/usr/local/emhttp/webGui/scripts/update_services
PostUp=ip -4 route flush table 200
PostUp=ip -4 route add default via 10.8.0.2 dev wg0 table 200
PostUp=ip -4 route add 192.168.178.0/24 via 192.168.178.1 dev br0 table 200
PostDown=ip -4 route flush table 200
PostDown=ip -4 route add unreachable default table 200
PostDown=ip -4 route add 192.168.178.0/24 via 192.168.178.1 dev br0 table 200

[Peer]
PublicKey=meinkey
PresharedKey=meinkey
Endpoint=1und1serveripv4:51820
AllowedIPs=0.0.0.0/0
PersistentKeepalive=15

 

auf dem 1und1 Server läuft einfach nur wireguard mit web UI 

Server Interface Adress 10.8.0.0/24

 

Wireguard Clients Unraid ip 10.8.0.2, IP Allocation 10.8.0.0/32 und Allowd IPs 0.0.0.0/0

 

mit PostUp und PostDown habe ich natürlich schon alles mögliche versucht aber momentan ist es leer weil nichts funktioniert hat.

 

1und1 Server:

Route

root@localhost:~# ip route
default via 87.106.152.1 dev ens192 
10.8.0.0/24 dev wg0 proto kernel scope link src 10.8.0.0 
87.106.152.1 dev ens192 scope link

Iptables

root@localhost:~# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

ifconfig

root@localhost:~# ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 87.106.XXX.XXX  netmask 255.255.255.255  broadcast 87.106.XXX.XXX
        inet6 fe80::250:56ff:XXXX:XXXX  prefixlen 64  scopeid 0x20<link>
        inet6 2a01:239:XXXX:XXXX::1  prefixlen 128  scopeid 0x0<global>
        ether 00:50:56:18:f9:73  txqueuelen 1000  (Ethernet)
        RX packets 226707  bytes 161182025 (161.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 389226  bytes 271457521 (271.4 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 84  bytes 6112 (6.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84  bytes 6112 (6.1 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1500
        inet 10.8.0.0  netmask 255.255.255.0  destination 10.8.0.0
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 104072  bytes 12653308 (12.6 MB)
        RX errors 114  dropped 0  overruns 0  frame 114
        TX packets 124180  bytes 140222320 (140.2 MB)
        TX errors 12  dropped 335 overruns 0  carrier 0  collisions 0

 

Ziel auf Unraid VPN verbindung nur für Docker und die Docker sollen öffnetlich erreichbar sein über meine Domain und den Port außerdem sollen die VPN Clienten auch untereinander erreichbar sein.

Bei 1und1 gibt es die Möglichkeit über das Interface Portfreigaben zu machen also eine extra Firewall wird nicht benötigt und der Port für Plex ist auch freigegeben 32400 für TCP.

 

Ich hoffe ihr könnt mir helfen Vielen Dank

Link to comment

Kommt alles auf die Konfiguration vom 1&1 Server an. Das Wireguard-Interface dort muss selbstverständlich sämtliche Regeln beinhalten. Was, wie, wo mit welchem Paket passieren soll.
Für mich klingt das jetzt stark nach WG-Easy von der Beschreibung her, und das ist erstmal gut um "schell" nen ausgehenden Server bereit zu stellen. Wenn man Anfragen an den 1&1-VPN-Server weiterleiten möchte, zum Unraid-Server (bzw Plex-Container), muss man das ganze schon manuell konfigurieren.


Als Beispiel:

PreUp = iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 80 -j DNAT --to-destination 10.8.0.2:32400
PostDown= iptables -t nat -D PREROUTING -i ens192 -p tcp --dport 80 -j DNAT --to-destination 10.8.0.2:32400



Wobei ens192 das Interface vom 1&1 Server ist und --to-destination die VPN IP vom Unraid-Interface.
Wobei man bei dem Port drauf achten muss, wie der über Unraid weitergeleitet wird, weil sonst müsste man die WG-1-Docker-Bridge IP selbst anfragen um z.b. nativ zu Port, z.b. 172.31.202.2:32400


Man kann das ganze aber auch via Reverse Proxy lösen, was wahrscheinlich sinnvoller wäre in dem Fall hier.

Z.b. via NGINX-Container auf dem 1&1 Server laufen lassen, Anfragen von "Was-auch-immer.com" an die, ich nehme mal an, "10.8.0.2:32400" senden und dann hat sich das ganze auch gehabt. Da muss man dann nicht groß mit iptables rumdoktern.

Link to comment

@Mainfrezzer Danke das hat mir schon ein kleines bisschen geholfen.

 

Auf dem 1und1 Server noch einen Docker laufen lassen wird leider nichts der 1 euro Server hat nicht die Kapazitäten großartig was zu machen der hat schon nur noch sp 10 bis 20mb ram frei und ich möchte es lieber nicht riskieren dass er sonst instabil läuft.

 

Also ich habe es eingetragen und alles neu gestartet, der Plex ist vom VPN Netzwerk immer noch nicht erreichbar und auch nicht über meine Domain die auf dem 1und1 Server verknüpft ist aber ich denke mal das muss trotzdem drin stehen falls es endlich funktionieren sollte.

 

Ich glaube irgendwie es liegt an einer Konfiguration von Unraid, der Plex hat zwar die IP vom 1und1 Server, ist aber trotzdem weder im VPN Netzwerk erreichbar noch von außerhalb.

Wie bekomme ich denn heraus oder was müsste ich denn machen dass mein Plex Docker im VPN überhaupt erreichbar ist?

 

So sieht es auf Unraid aus

root@Media:~# ip route
default via 192.168.178.1 dev br0 proto dhcp src 192.168.178.2 metric 1011 mtu 1500 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 
172.31.200.0/24 dev br-e6df9975c01d proto kernel scope link src 172.31.200.1 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 
192.168.178.0/24 dev br0 proto dhcp scope link src 192.168.178.2 metric 1011 mtu 1500

 

Edited by h3xx3r
Link to comment

Welches Plex Template wird denn benutzt? Das von Binhex und Linuxserver haben HOST als Standard drin.

D.h. der Container muss dann statt auf Host, auf Custom: wg1 laufen. Dazu muss manuell noch ein Portmapping von 32400 auf 32400 angelegt werden (ansonsten muss man nämlich, wie oben erwähnt, die Docker Brücken IP nutzen)

Das wars dann schon.

Der Tunnel für Docker-Container zum Server
vpnsetting.thumb.PNG.ffdf82ba5ad2030f8cf68e1e465b4782.PNG

Container mit Portmapping und VPN-Tunnel-Netzwerk
vpnsetting.PNG.d233c59ef2c1318ae02dfa60b191a417.PNG

Test auf Funktion, lokal (10.0.0.2 ist die Lan Adresse vom Unraid-System bei mir):
vpnsetting.thumb.PNG.f3b8d0e21e254e0f5c247d4accddc6a1.PNG

Funktioniert.

Container kann das Internet erreichen

vpnsetting.PNG.25dddc1c25f939874ee3202873b9249e.PNG

Nun zur Einstellung am VPN-Server im Internet

vpnsetting.PNG.033b69cd163e87fc8033ad709beb7978.PNG


Endgültiger Test:
vpnsetting.thumb.PNG.ca85294c216bc1e3cdb6c937bb168438.PNG

Tada

Link to comment

Also ich benutze den Docker von Linuxserver und wie ich nun festgestellt habe ist da nicht mal ping implementiert 😕

Aber es zeigt mit unter Fernzugriff die IP von meinem 1und1 Server an.

 

Screenshot2024-09-2122_33_16.thumb.png.58e75d10e35a2112ecb46efdf77636fa.png

 

und in Unraid 

 

Screenshot2024-09-2122_27_04.png.40acc0e580323876ac5266f804ec2c72.png

 

wenn ich 

iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 32400 -j DNAT --to-destination 10.8.0.2:32400

 

in wg webinterface als PostUp eintrage ist der Server nicht erreichbar und leider auch nicht unter 10.8.0.2:32400 und das macht mich ja schon stutzig ich sehe den Fehler einfach nicht

 

hier nochmal den VPN Manger

 

Screenshot2024-09-2122_41_39.thumb.png.42826d20a169c4fd699a26ba7162ba67.png

Edited by h3xx3r
Link to comment

Mit was wurden denn die Konfigurationsdatei auf dem 1&1 Server erstellt?

 

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey =

# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1

# port forwarding

#Plex
PreUp = iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 32400 -j DNAT --to-destination 10.8.0.2:32400
PostDown = iptables -t nat -D PREROUTING -i ens192 -p tcp --dport 32400 -j DNAT --to-destination 10.8.0.2:32400

# packet masquerading
PreUp = iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE

[Peer]
PublicKey = 
AllowedIPs = 10.8.0.2/32


Sollte so ähnlich aussehen.
 

Edited by Mainfrezzer
Hab IPv6 Zeugs entfernt, da nicht nötig - Port angepasst
Link to comment

Ich benutze so eine Wireguard WebUI die generiert die Config.

Habe die jetzt über das Webinterface so einigermaßen angepasst an deine Vorgabe und sieht jetzt so aus:

 

# This file was generated using wireguard-ui (https://github.com/ngoduykhanh/wireguard-ui)
# Please don't modify it manually, otherwise your change might get replaced.

# Address updated at:     2024-09-21 21:31:34.490268771 +0000 UTC
# Private Key updated at: 2024-09-14 00:25:04.326634967 +0000 UTC
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = 
MTU = 1500
PostUp = sysctl -w net.ipv4.ip_forward=1;iptables -t nat -A PREROUTING -i ens192 -p tcp --dport 32400 -j DNAT --to-destination 10.8.0.2:32400;iptables -t nat -A POSTROUTING -o ens192 -j MASQUERADE
PreDown = 
PostDown = iptables -t nat -D PREROUTING -i ens192 -p tcp --dport 32400 -j DNAT --to-destination 10.8.0.2:32400;iptables -t nat -D POSTROUTING -o ens192 -j MASQUERADE
Table = 


# ID:           crijj3det91s4c5gt8lg
# Name:         unraid
# Email:        
# Telegram:     
# Created at:   2024-09-14 07:21:49.381322611 +0000 UTC
# Update at:    2024-09-20 23:21:38.856452553 +0000 UTC
[Peer]
PublicKey = 
PresharedKey = 
AllowedIPs = 10.8.0.2/32
PersistentKeepalive = 15

Der Unterschied ist bei dir heist es PreUp und ich habe nur die Möglichkeit für PostUp ich weiß nicht ob das einen Unterschied macht?

 

Der Bilderupload funktioniert grad nicht sonst würde ich von der Wireguard WebUi noch Bilder anhängen.

 

In Plex habe ich jetzt was entdeckt:

Nicht außerhalb deines Netzwerks verfügbar
Dein Server ist bei Plex angemeldet, aber außerhalb deines Netzwerks nicht verfügbar. Mehr dazu
Tipp: Es scheint, dass auf Geräten zwischen deinem Server und dem Internet „Jumbo-Frames“ aktiviert sind, was Probleme mit dem Fernzugriff verursachen kann. Deaktiviere „Jumbo-Frames“ auf mindestens einem Gerät und versuche es erneut.

 

Das werde ich jetzt mal genauer unter die Lupe nehmen.

 

Mit deinen Einstellungen läd sich die Seite zu Tode Domain:32400 es wird kurz grau wie der Seitenhintergrund von Plex und bricht irgendwann ab wie ein Timeout oder zu lange Antwortzeiten.

 

Screenshot2024-09-2123_02_50.png.b539a2fefd58454daf9534c150514cf0.pngScreenshot2024-09-2200_23_05.thumb.png.af522800cc86f92b302b6b17dea5b32e.pngScreenshot2024-09-2200_23_41.thumb.png.d045a8d35e13fc4814912f6ea933d439.png

 

 

 

Edited by h3xx3r
Link to comment

Soll ich dir mal was sagen?Jetzt gehts 😎

 

Habe grad schon mit 1450 bei beiden probiert und es ging nicht dachte schon daran liegt es nicht aber genau das wars!

Da kann man sich ja dumm und dämlich suchen....

Ich danke dir vielmals!!

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...