Sign inSign up

zctmdc/n2n

By zctmdc

•Updated over 2 years ago

n2n 是一个 第二层对等 VPN,可轻松创建绕过中间防火墙的虚拟网络。

Image
6

10K+

zctmdc/n2n repository overview

⁠docker n2n

⁠二进制文件来源

此项目二进制文件来源于: https://github.com/lucktu/n2n⁠, 非常感谢

⁠关于

n2n⁠ 是一个 第二层对等 VPN,可轻松创建绕过中间防火墙的虚拟网络。

通过编译 ntop 团队⁠ 发布的 n2n,直连成功率高(仅局域网内不及), 且速度更快.

N2N 是通过 UDP 方式建立链接,如果某个网络禁用了 UDP,那么该网络下的设备就不适合使用本软件来加入这个虚拟局域网(用"blue's port scanner",选择 UDP 来扫描,扫出来的就是未被封的,正常情况下应该超级多)

为了开始使用 N2N,需要两个元素:

  1. supernode : 它允许 edge 节点链接和发现其他 edge 的超级节点。 它必须具有可在公网上公开端口。

  2. edge :将成为虚拟网络一部分的节点; 在 n2n 中的多个边缘节点之间共享的虚拟网络称为 community。

单个 supernode 节点可以中继多个 edge,而单个电脑可以同时连接多个 supernode。 边缘节点可以使用加密密钥对社区中的数据包进行加密。 n2n 尽可能在 edge 节点之间建立直接的 P2P 连接;如果不可能(通常是由于特殊的 NAT 设备),则超级节点也用于中继数据包。

⁠组网示意

组网示意

⁠连接原理

连接原理

⁠推荐标签

所有的通过脚本测试:docker-compose.test.yaml⁠ , compose-test.sh⁠ , docker-build-test.sh⁠

如果对应版本TAG上没有 sha256-xxx 签名,请尽量减少使用;因为这个版本测试 10 min 未通过。

签名

  • TAG 带前缀 build

    Dockerfile: Dockerfile.build.debian-11⁠

    该容器仅含 n2n 执行文件和相关环境

  • TAG 无前缀 build

    Dockerfile: Dockerfile.run⁠

    该容器含 n2n 执行文件、相关环境和环境变量读取脚本

⁠快速入门

⁠代码换行

通过以下符号分行,你可以分行输入你需要运行的代码

终端符号按键方法
bash\回车键上方
powershell`键盘 TAB 按钮上方
CMD^键盘 SHIFT+6
⁠快速测试
docker run --rm -ti \
  --privileged \
  zctmdc/n2n \
  edge -h
docker run --rm -ti \
 -p 10090:10090  \
 zctmdc/n2n \
 supernode -p 10090
  • 你可以直接运行命令

⁠MODE 模式

⁠SUPERNODE - 超级节点
docker run \
  -d --restart=always \
  --name=supernode_t2 \
  -e MODE="SUPERNODE" \
  -e SUPERNODE_PORT=10090 \
  -p 10090:10090/udp \
  zctmdc/n2n
⁠DHCPD - DHCP 服务端模式
docker run \
  -d --restart=always \
  --name n2n_edge_dhcpd_t2 \
  --privileged \
  --net=host \
  -e MODE="DHCPD" \
  -e EDGE_IP="10.21.22.1" \
  -e EDGE_COMMUNITY="n2n" \
  -e EDGE_KEY="test" \
  -e SUPERNODE_HOST=127.0.0.1 \
  -e SUPERNODE_PORT=10090 \
  -e EDGE_ENCRYPTION=A3 \
  -e EDGE_TUN=edge_dhcpd_t2 \
  zctmdc/n2n

如果你需要自定义 DHCPD 服务配置文件

-v path/to/dhcpd.conf:/n2n/conf/dhcpd.conf:ro
⁠DHCPC - DHCP 动态 IP 模式
docker run \
  -d --restart=always \
  --name n2n_edge_dhcpc_t2 \
  --privileged \
  --net=host \
  -e MODE="DHCPC" \
  -e EDGE_COMMUNITY="n2n" \
  -e EDGE_KEY="test" \
  -e SUPERNODE_HOST=127.0.0.1 \
  -e SUPERNODE_PORT=10090 \
  -e EDGE_ENCRYPTION=A3 \
  -e EDGE_TUN=edge_dhcpc_t2 \
  zctmdc/n2n
⁠STATIC - 静态 IP 模式
docker run \
  -d --restart=always \
  --name n2n_edge_static_t2 \
  --privileged \
  --net=host \
  -e MODE="STATIC" \
  -e EDGE_IP="10.21.22.23" \
  -e EDGE_COMMUNITY="n2n" \
  -e EDGE_KEY="test" \
  -e SUPERNODE_HOST=127.0.0.1 \
  -e SUPERNODE_PORT=10090 \
  -e EDGE_ENCRYPTION=A3 \
  -e EDGE_TUN=edge_static_t2 \
  zctmdc/n2n

⁠使用 docker compose 配置运行

see: <docker-compose.yaml>⁠

⁠环境变量介绍

变量名变量说明备注对应参数
MODE模式对应启动的模式SUPERNODE DHCPD DHCPC STATIC
SUPERNODE_PORT超级节点端口在 SUPERNODE/EDGE 中使用-l $SUPERNODE_PORT
SUPERNODE_HOST要连接的 N2N 超级节点IP/HOST-l $SUPERNODE_HOST:$SUPERNODE_PORT
EDGE_IP静态 IP在静态模式和 DHCPD 使用-a $EDGE_IP
EDGE_COMMUNITY组网名称在 EDGE 中使用-c $EDGE_COMMUNITY
EDGE_KEY组网密码在 EDGE 中使用-k $EDGE_KEY
EDGE_ENCRYPTION加密方式edge 间连接加密方式-A1 = disabled, -A2 = Twofish (default), -A3 or -A (deprecated) = AES-CBC, -A4 = ChaCha20, -A5 = Speck-CTR.
EDGE_TUN网卡名edge 使用的网卡名-d $EDGE_TUN
N2N_ARGS更多参数运行时附加的更多参数-v -f
USE_DEFALT_ARGS默认参数运行时附加的默认参数false / true :v1:-br , v2:-EfrA , v2s:--bfr -L auto , v3:-Efr -e auto

⁠更多帮助

更多帮助请参考 好运博客⁠ 中 N2N 新手向导及最新信息⁠ , N2N 支持参数版本一览表⁠

中文说明参考: 附加参数⁠ , 点对网⁠

更多节点请访问 N2N 中心节点⁠

更多 Docker 介绍请访问 docker-compose CLI 概述⁠ , Docker 运行参考⁠

⁠告诉我你在用

如果你使用正常了请点个赞 我的 docker 主页⁠ ,n2n 的 docker 项目页⁠ 和 我 github 的 docker 项目页⁠ 我将引起注意,不再随意的去更改和重命名空间/变量名

Tag summary

Content type

Image

Digest

sha256:c8ab30527…

Size

74.3 MB

Last updated

over 2 years ago

docker pull zctmdc/n2n