情境:美国各地的几台VPS服务器通过有线网状网连接到我的笔记本电脑。对于有线网状网,我使用的工具叫做innernet (https://github.com/tonarino/innernet)。
所以基本上就像我的笔记本电脑和vps服务器在同一个内部网络上一样。
VPS ip = 10.32.89.1
laptop ip = 10.32.90.1看起来VPS和膝上型计算机定义了这个虚拟接口(不确定这是否重要):
innernetVPS服务器有mysql容器runig (我不向主机公开3306端口)。在不将mysql端口安装到主机的情况下,我如何才能从我的笔记本电脑连接到那个被移植的mysql服务器呢?
推理:
我为什么要这样?
因为我不想让整个互联网和攻击者都能看到它(mysql服务器),但同时我想从我的笔记本电脑上轻松地访问mysql数据。
可能的解决办法:
这就是码头码头的目的吗?我是否需要在VPS上创建一个具有内部网络接口作为父级或其他功能的网络?然后把我的mysql容器附加到那个网络上?
我试过这个:
docker network create \
-d macvlan \
--attachable \
--subnet=172.40.110.0/24 \
--gateway=172.40.110.1 \
-o parent=innernet \
infranet2然后我尝试加入mysql容器到它:
docker network connect infranet2 mysql-server但我只知道一个错误:
root@vps:~$ sudo docker网络连接infranet2mysql-来自守护进程的服务器错误响应:未能创建macvlan端口:无效参数
发布于 2021-08-07 20:37:16
您可以做的是只在内部ip上公开您的端口(3306),通过wireguard (例如隧道ip )访问它(而不是默认情况下在所有ips (0.0.0.0/0)上公开它)。如果您的隧道ip为192.168.0.1,您将这样做:
docker run --name mysql-server \
-p 192.168.0.1:3306:3306 \
-e MYSQL_ROOT_PASSWORD=my-secret-pw \
-d mysql然后,您可以访问您的远程mysql服务器,但从互联网访问是不可能的。
https://serverfault.com/questions/1073750
复制相似问题