N2N v3.0 Stable 稳定版更新日志(中文版)

N2N 2021/11/13

3.0 终于来了,简单翻译一下更新日志(原文点此

打个广告

EasyN2N 已加入对3.0的支持,简单易用(点此跳转

需要自建服务器,也可以参考这篇《CentOS 7 安装n2n v3.0.0 Stable

Bug侠注:对于新手,可以简单将边缘节点理解为客户端,超级节点则为服务端

3.0 更新日志

在过去的一年里,在各路网友和大佬们长期讨论与实践中,N2N的功能愈加丰富。根据现有的功能及完善程度,我们认为此刻有必要发布一个大版本更新,欢迎N2N 3.0吧!

从这个稳定版开始,n2n 3.x版本将进一步提升其功能的多样性,同时能够兼顾兼容性。为了达到这一目标,后续开发将主要集中在底层打孔协议之外的领域,包括但不限于连接处理、管理功能、编译平台及代码的优化。

新功能

  • 可以在多个超级节点之间进行负载平衡和故障转移(参考 doc/Federation.md)
  • 超级节点可以给边缘节点自动分配IP地址,类似于DHCP(边缘节点不带 -a 参数启动)
  • 可以通过正则表达式限制允许的组名称(根据 community.list )
  • 可以对指定的流量进行过滤,类似于防火墙
  • 加入对 TCP 支持 (-S2 参数),允许边缘节点通过 TCP 连接到超级节点,避免 UDP 屏蔽的情况(Windows 暂不可用)
  • 提供四种加密方式,分别是:Twofish、AES(默认)、ChaCha20、Speck-CTR
  • MAC和IP地址欺骗预防
  • 可以指定TAP网卡的跃点数(-x 参数,仅限 Windows 平台)
  • 可以通过多播进行本地peer的检测
  • 边缘节点标识符(-I 参数)可以更轻松地在管理日志中识别
  • 本机有多个网络环境的情况,可以将N2N通信端口绑定到本机指定的IP上(-p 参数)
  • 可以将首选的本地套接字通告给其他边缘节点,以获得更好的本地对等连接(-e 参数)
  • 可以对边缘节点进行用户名密码认证(-J -P 参数,doc/Authentication.md)
  • 管理日志可以输出json格式文本,便于后期处理调用,例如 .html 页面生成 (scripts/n2n-httpd) 或脚本控制 (scripts/n2n-ctl)
  • 代码重构编译平台相关代码等

改进

  • 提供边缘节点的故障恢复能力(比如超级节点短暂失联)
  • 修复数据压缩相关功能造成的内存泄露
  • 加密方面在特定的平台下可以使用硬件加速
  • 添加用于测试的框架(tools/test-*.c and tests/)
  • 优化管理端日志输出
  • 优化基准测试工具日志输出
  • 优化域名解析
  • 添加对环境变量(N2N_COMMUNITY、N2N_PASSWORD 和 N2N_FEDERATION)的支持
  • 通过新的 reload_communities 命令,使超级节点能够热加载管理端口通过 -c 参数提供的community.list文件
  • 在建立连接时发送无故ARP数据包
  • 优化说明文档及命令行帮助(-h 参数和 更为详细的 –help 参数)
  • 修复手册页面和配置文件的路径
  • 优化部分代码
本文标签:


11条评论

  • 十一 评论于 回复

    大佬,在sn上执行reload有遇到过这种问题吗
    [root ~]# n2n-ctl -t 5678 reload_communities
    Traceback (most recent call last):
    File “/usr/local/sbin/n2n-ctl”, line 301, in
    main()
    File “/usr/local/sbin/n2n-ctl”, line 292, in main
    result = func(rpc, args)
    File “/usr/local/sbin/n2n-ctl”, line 236, in subcmd_default
    rows = rpc.read(cmdline)
    File “/usr/local/sbin/n2n-ctl”, line 117, in read
    return self._call(‘r’, cmdline)
    File “/usr/local/sbin/n2n-ctl”, line 114, in _call
    return self._rx(tagstr)
    File “/usr/local/sbin/n2n-ctl”, line 94, in _rx
    raise error
    ValueError: Error: writeonly

  • yanagi 评论于 回复

    大佬,现在这个问题具体了一点,就是主机连接服务器自动获取ip地址后,查看用户列表提示错误,请稍后再试。请问有什么解决的头绪嘛

    • Bug侠 评论于 回复

      @yanagi
      获取不到是n2n自身的问题,偶发性的,目前原因未知

  • yanagi 评论于 回复

    您好大佬!我想问一下就是我自建的服务器,其他主机能ping通服务器,但是主机之间ping不通,windows防火墙也关了,请问可能是什么问题?感谢!

    • Bug侠 评论于 回复

      @yanagi
      可能的原因:
      1.大概率是防火墙
      2.IP冲突
      3.使用调试模式启动,分析日志

  • 木马木马 评论于 回复

    本机有多个网络环境的情况,可以将N2N通信端口绑定到本机指定的IP上(-p 参数)
    可以对边缘节点进行用户名密码认证(-J -P 参数,doc/Authentication.md)
    请教下,这三个参数怎么使用呢,比让边缘节点连接超级节点时的认证应当怎么操作呢

    • Bug侠 评论于 回复

      @木马木马
      1.参数-p,supernode运行时加 -p 12345,可以指定其监听到12345端口;edge端,比如本机有多线出口,可以使用 -p 10.0.0.1:12345,指定edge出口
      2.参数-J和-P请自行阅读相关文档:https://github.com/ntop/n2n/blob/dev/doc/Authentication.md

      • 木马木马 评论于 回复

        @Bug侠
        好的,谢谢。其实我想问的是在多网卡的服务器上能不能绑定指定的IP和端口

  • lucky 评论于 回复

    请问下windows怎么利用n2n?

    • Bug侠 评论于 回复

      @lucky
      利用N2N干嘛呢?EasyN2N就是为N2N而生的啊 :咧嘴:

  • lucktu 评论于 回复

    写的很不错,有空来转^_^

  • 评论(本站已开启评论回复邮件通知功能,请如实填写邮箱以便及时收到回复)关闭回复