Situación: Varios servidores VPS en los EE. UU. se conectaron a mi computadora portátil a través de una red de malla Wireguard. Para la red de malla Wireguard estoy usando una herramienta llamada Innernet (https://github.com/tonarino/innernet).
Básicamente, es como si mi computadora portátil y mis servidores vps estuvieran en la misma red interna.
VPS ip = 10.32.89.1
laptop ip = 10.32.90.1
Parece que el VPS y la computadora portátil tienen esta interfaz virtual definida (no estoy seguro si esto importa):
innernet
El servidor VPS tiene ejecución de contenedor mysql (no expongo el puerto 3306 al host). ¿Cómo puedo conectarme a ese servidor MySQL acoplado desde mi computadora portátil sin montar el puerto MySQL en el host?
Razonamiento:
¿Por qué lo quiero así?
Porque no quiero que (el servidor MySQL) sea visible para todo Internet y, por lo tanto, para los atacantes, pero al mismo tiempo quiero acceder fácilmente a los datos de MySQL desde mi computadora portátil.
Solución posible:
¿Para eso sirve Docker Macvlan? ¿Necesito crear una red en VPS que tenga una interfaz interna como principal o algo así? y luego adjuntar mi contenedor mysql a esa red?
He probado esto:
docker network create \
-d macvlan \
--attachable \
--subnet=172.40.110.0/24 \
--gateway=172.40.110.1 \
-o parent=innernet \
infranet2
Y luego intenté unirle el contenedor MySQL:
docker network connect infranet2 mysql-server
Pero solo recibo un error:
root@vps:~$ sudo docker network connect infranet2mysql-server Respuesta de error del demonio: no se pudo crear el puerto macvlan: argumento no válido
Respuesta1
Lo que puede hacer es exponer su puerto (3306) solo en la IP interna, accesible a través de Wireguard, como la IP del túnel (en lugar de exponerlo en todas las IP (0.0.0.0/0), como sucede de forma predeterminada. ). Dado que la IP de su túnel es 192.168.0.1, así es como lo haría:
docker run --name mysql-server \
-p 192.168.0.1:3306:3306 \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-d mysql
Luego podrá acceder a su servidor MySQL remoto, pero el acceso desde Internet no sería posible.