如何通过 Docker 部署 n2n
如何通过 docker 部署 n2n
在以往,部署 n2n 往往需要通过 make 进行源码编译,或是通过包管理器下载安装。安装过程繁琐且难以迁移,配置也容易造成混乱
我在 docker hub 上找到了一个制作水平很高的 n2n v2.9 docker,仅仅只有 7 MB 且运行良好。下面介绍如何通过这个镜像实现 n2n 的 docker 部署。
镜像获取与测试
首先需要下载镜像,通过以下代码将镜像从 docker hub 下载到本地:
1 | docker push yingftf/n2n |
运行以下指令就能在不运行容器的情况下测试镜像是否可用及其 n2n 版本:
1 | docker run --rm --network host yingftf/n2n supernode -h |
n2n 的容器化部署
在 docker hub 页面上,作者介绍了通过映射卷操作配置文件部署的方法。但经过我的测试这个方法很不稳定,容器很可能无法启动。因此这里只介绍通过 docker 指令部署 n2n 的方法。
各位也可以参考 n2n 官方仓库文档。
配置 supernode
直接输入以下指令即可:
1 | docker run -d --restart=always --network host --name supernode yingftf/n2n supernode -p 8990 -f -v |
检查 docker ps
,发现名为 supernode
的容器处于运行状态则说明部署完成
配置 edge
即使是部署了 supernode 的主机,也必须部署一个 edge 。也就是说,这个主机会同时运行两个容器
在每一个将要部署 edge 的主机上输入以下指令即可:
1 | docker run -d --restart=always --cap-add=NET_ADMIN --cap-add=NET_RAW --device=/dev/net/tun --network host --name edge0 yingftf/n2n edge -a 10.10.2.1 -c mynetwork -k nic1234 -l {supernode 的公网 IP}:8990 -r -f |
检查 docker ps
,发现名为 edge0
的容器处于运行状态则说明部署完成。
检查 n2n 连接是否建立
在 supernode 主机(10.10.2.1)上检查:
1 | (base) [root@iz2zeid7airzi8dw94q5l4z ~]# ping 10.10.2.3 |
Ping 和 SSH 均能连接,说明 n2n 连接成功建立
然后在 edge 主机(10.10.2.3)执行同样操作:
1 | (env-3.7) (base) [root@localhost home]# ping 10.10.2.1 |
至此, n2n 的容器化部署和连接建立全部完成。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Alrisha!