Mein System:
Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends
Ich verwende alsoLuftdcppd, ein Filesharing-Programm, das drei Ports auf meinem lokalen Rechner nutzt, um Verkehrsinformationen zu übertragen.
Sie sind:
23288/tcp
21500/udp
13875/tcp
Ich möchte diese Ports an den VPS Wireguard weiterleiten, sodass es so aussieht, als würden die Ports auf der Serverseite ausgeführt und für die Öffentlichkeit geöffnet sein.
Um dies zu erreichen, habe ich meine Wireguard-Schnittstellenkonfiguration gemäß diesen Anleitungen geändert:
Meine Konfiguration sieht jetzt also so aus:
lokal:
[Interface]
PrivateKey = <my key>
Address = 10.66.66.2/32,fd42:42:42::2/128
DNS = 1.1.1.1,94.140.15.15
# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1
# port forwarding
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PreUp = iptables -t nat -A PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.1
PostDown = iptables -t nat -D PREROUTING -d local.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.1
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
Endpoint = vps.ip.address:49503
AllowedIPs = 0.0.0.0/0,::/0
Server:
[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
PrivateKey = <my key>
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PreUp = iptables -t nat -A PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 23288 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p udp --dport 21500 -j DNAT --to-destination 10.66.66.2
PostDown = iptables -t nat -D PREROUTING -d vps.ip.address -p tcp --dport 13875 -j DNAT --to-destination 10.66.66.2
### Client name
[Peer]
PublicKey = <my key>
PresharedKey = <my key>
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Wie Sie wahrscheinlich sehen können, lautet meine interne Wireguard-Adresse für lokal: 10.66.66.2
und für den Server:10.66.66.1
Was jetzt passiert, ist, dass der lokale Port 23288
auf dem lokalen Rechner, der ohne VPN als offen erscheint, nach der Überprüfung mit einem Port-Checker auch als offen angezeigt wird. Die anderen drei Ports sind immer noch geschlossen, aber das ist kein großes Problem, da der verwendete Hauptport offen ist und das für meine Zwecke gut genug ist. Die anderen Ports werden auch ohne VPN als geschlossen angezeigt.
Derzeit werden keine Firewalls verwendet. Ich werde alle beteiligten Ports zulassen, nachdem ich dies zum Laufen gebracht habe.
Das Problem besteht darin, dass die Pakete nach dem Senden über das VPN nicht mehr lokal ankommen. Wie Sie sehen, habe ich die Regeln so eingerichtet, dass alle Pakete über diese 3 Ports an den lokalen Computer zurückgesendet werden. Aber aus irgendeinem Grund bekomme ich sie nicht, da die App airdc
nicht das anzeigt, was sie sollte.
Habe ich etwas falsch gemacht, als ich versucht habe, den Datenverkehr dieser Ports an den lokalen Computer weiterzuleiten? Ist das der richtige Weg für meine lokale App, um die Pakete zurückzuerhalten? Wenn nicht, wie muss die VPS-Wireguard-Konfiguration richtig eingerichtet werden, damit alles, was über diese drei Ports weitergeleitet wird, ordnungsgemäß zurückgegeben wird?
Danke für's Nachsehen!
BEARBEITEN: Der lokale Port, den ich für den Zugriff auf den Dienst verwende, ist http://localhost:5960, und ich möchte diesen mit dem VPN verwenden, damit ich auch vom Internet aus darauf zugreifen kann, und zwar so:https://vps.ip.adresse:5960, aber selbst wenn ich eine Zeile zum Weiterleiten des lokalen Ports 5960 an den Server mit der gleichen Syntax wie oben hinzufüge, funktioniert es immer noch nicht. Vielleicht ist dies der Schlüssel, um das Ganze auch zum Laufen zu bringen?
Antwort1
Sie müssen stattdessen die Ports von der VPS-Seite an die interne IP des lokalen Computers weiterleiten. So, wie Sie es bei einem Router bei Ihnen zu Hause an die lokale Adresse Ihres PCs tun würden. Verbinden Sie den lokalen Computer nicht mit dem VPS.