Mi sistema:
Local: Arch Linux
VPS: Linode uubuntu 20.04.1
Standard Wireguard Package on both ends
Entonces estoy usandoairdcppd, un programa para compartir archivos que utiliza 3 puertos en mi máquina local para transferir información de tráfico.
Ellos son:
23288/tcp
21500/udp
13875/tcp
Lo que quiero hacer es reenviar estos puertos al Wireguard de VPS para que parezca que los puertos se ejecutan en el lado del servidor y están abiertos al público.
Para lograr esto modifiqué la configuración de mi interfaz Wireguard de acuerdo con estas guías:
Entonces mi configuración ahora se ve así:
local:
[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
servidor:
[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
Como probablemente puedas ver, mi dirección interna de Wireguard para local es: 10.66.66.2
y para el servidor es10.66.66.1
Lo que sucede ahora es que el puerto local 23288
en la máquina local, que aparece como abierto sin estar conectado a VPN, también se muestra como abierto después de verificar con un verificador de puertos. Los otros tres puertos todavía están cerrados, pero eso no es una gran preocupación ya que el puerto principal utilizado está abierto y eso es suficiente para mis propósitos. Los otros puertos también se muestran cerrados incluso sin estar conectados a VPN.
No se utilizan firewalls a partir de ahora, permitiré todos los puertos involucrados después de que esto funcione.
El problema que surge es lo que sucede después de que los paquetes se envían a través de la VPN: no parece volver al local. Como puede ver, configuré las reglas para enviar todos los paquetes en esos 3 puertos a la máquina local. Pero por alguna razón no los recibo, ya que la aplicación airdc
no muestra lo que debería.
¿Hice algo mal al intentar "reenviar" el tráfico de esos puertos a la máquina local? ¿Es la forma correcta para que mi aplicación local reciba los paquetes? Si no es así, ¿cuál debería ser la forma correcta de configurar la configuración de protección de cables del VPS para que todo lo que se reenvíe a esos tres puertos se devuelva correctamente?
¡Gracias por buscar!
EDITAR: El puerto local que utilizo para acceder al servicio es http://localhost:5960, y me gustaría usarlo con la VPN para poder acceder a él también desde la web, así:https://vps.dirección.ip:5960, pero incluso si agregué una línea para reenviar el puerto local 5960 al servidor con la misma sintaxis anterior, todavía no funciona, ¿tal vez esta sea la clave para que todo funcione también?
Respuesta1
En su lugar, tendrá que reenviar los puertos desde el lado del VPS a la IP interna de la máquina local. Como lo haría en un enrutador en su casa a la dirección local de su PC. No conecte la máquina local al VPS.