官方N2N更新至2.6稳定版~

Linux, N2N, 折腾 2020/04/04

这两天又想起来折腾折腾N2N,发现N2N居然稳定版2.6了

https://github.com/ntop/n2n/releases

看看日志

增加了在supernode上指定允许社区(组)的白名单的功能
通过多播实现本地对等点发现
Windows编译修复和说明
MacOS编译修复和说明
支持多个edge节点的systemd服务管理
通过AES加密以提高安全性和吞吐量
添加基准测试工具以提高加密吞吐量
提高连接稳定性并建立P2P连接的机会
删除密钥计划支持以简化加密代码
整合n2n的meyerd分支中所做的更改
实现P2P与supernode通信的数据包统计信息
用哈希表替换对等链接列表,以在大型网络中更快地查找
自动向用户n2n投递
n2n版本改进
添加对ARM64构建的支持
在OpenWRT上构建n2n的说明和makefile文件
更多选项来控制MTU,P2P连接,TOS和日志详细程度
为n2n协议实现wireshark解剖器
在tuntap_linux中删除对system()的调用,改用netlink
实现n2n-decode实用程序以解码流量并将其转储到PCAP

搞起……

本文标签:


20条评论

  • alex 评论于 回复

    谁有编译好的 windows n2n v2.6 ?

  • null 评论于 回复

    谁了解帮忙告知一下。可以发邮件juvham@foxmail.com

  • null 评论于 回复

    你好,我更新到2.6现在两个edge之间相互ping不通。-v 模式可以看到对方ping过来包,但是没有响应。是还需要配置什么吗?

    • Bug侠 评论于 回复

      @null
      盲猜分析一下,确认有包过来,那说明N2N隧道是通的,但对方ping不通,说明你返回给对方的包,对方收不到,所以,1,要么是你这边被封锁了(防火墙什么的),2,要么就是对方阻断了(估计也是防火墙之类的)

  • 阿迟 评论于 回复

    请问有没有windows编译版本?想偷懒不想自己搭环境 :笑哭:

    • Bug侠 评论于 回复

      @阿迟
      有啊,https://github.com/lucktu/n2n/tree/master/Windows
      已经更新到2.7了

  • special 评论于 回复

    “添加对ARM64构建的支持”可以在树莓派4B上搞吗?

    • Bug侠 评论于 回复

      @special
      我手边是3B+,ARM32的Raspbian,ARM64系统没测试,很抱歉,不知道需要做什么修改
      你可以先试试直接编译看看
      ======
      git clone https://github.com/ntop/n2n.git
      cd n2n/
      ./autogen.sh
      ./configure
      make && make install

      • special 评论于 回复

        @Bug侠
        我还是个树莓派新手,不太会用Linux指令,看到N2N很感兴趣,想搞搞玩玩,但是,我今天为了编译折腾了3个小时,还是没编译出来。“./autogen.sh”,“./configure”这两个指令都不太懂。 :咧嘴:

        • Bug侠 评论于 回复

          @special
          好吧,没事,都是一步一步来的
          我这边也可以用apt-get install n2n来直接安装,但是版本比较低,是1.3.1的旧版本n2n
          上面我贴的命令是常规的编译步骤,可以编译出最新版2.6
          可能缺少一些编译环境(会报错),如gcc等,你可以先百度,如果还是没解决,可以把出错的日志贴这里,我们一起研究研究~~ :咧嘴:

          • special 评论于 回复

            @Bug侠
            我在网上搜到的方法是:
            sudo apt-get install subversion build-essential libssl-dev
            git clone https://github.com/meyerd/n2n.git
            cd n2n/n2n_v2
            mkdir build
            cd build
            cmake ..
            make
            sudo make install
            第一步我就安装不上,百度了,解决方法是换源,我就换了,之后更新源时又出了这个错误:The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY (一串密钥)。百度的都是ubuntu系统的解决。就先跳过了。
            直到cmake这步,我执行这一步显示:
            The CXX compiler identification is unknown
            Configuring incomplete, errors occurred。百度没找到解决办法。
            最后就先暂时放弃了(大一狗,还要上网课) :doge:

            • Bug侠 评论于 回复

              @special
              大一就是时间多,有空折腾~我当时也是的。
              只有这两行错误日志吗? GCC/G++环境装了没有,我看你贴的是编译分支n2n的,编译官方最新的2.6呢?

              • special 评论于 回复

                @Bug侠
                GCC/G++环境装了
                但是有问题,我尝试编译hello world,显示:
                pi@raspbian:~/c_test$ gcc -o hello hello.c
                hello.c:1:10: fatal error: stdio.h: No such file or directory
                #include
                ^~~~~~~~~
                compilation terminated.
                无法编译,在网上找方法:
                安装build-essential
                sudo apt-get install build-essential
                显示:Unable to locate package build-essential

                • Bug侠 评论于

                  @special
                  安装build-essential是对的,build-essential的问题估计是源导致的了~

              • special 评论于 回复

                @Bug侠
                这是cmake的错误信息:
                pi@raspbian:~/n2n/n2n_v2/build$ cmake ..
                — The C compiler identification is GNU 8.3.0
                — The CXX compiler identification is unknown
                — Check for working C compiler: /usr/bin/cc
                — Check for working C compiler: /usr/bin/cc — broken
                CMake Error at /usr/share/cmake-3.13/Modules/CMakeTestCCompiler.cmake:52 (message):
                The C compiler

                “/usr/bin/cc”

                is not able to compile a simple test program.

                It fails with the following output:

                Change Dir: /home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeTmp

                Run Build Command:”/usr/bin/make” “cmTC_af2a9/fast”
                /usr/bin/make -f CMakeFiles/cmTC_af2a9.dir/build.make CMakeFiles/cmTC_af2a9.dir/build
                make[1]: Entering directory ‘/home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeTmp’
                Building C object CMakeFiles/cmTC_af2a9.dir/testCCompiler.c.o
                /usr/bin/cc -o CMakeFiles/cmTC_af2a9.dir/testCCompiler.c.o -c /home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeTmp/testCCompiler.c
                Linking C executable cmTC_af2a9
                /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_af2a9.dir/link.txt –verbose=1
                /usr/bin/cc -rdynamic CMakeFiles/cmTC_af2a9.dir/testCCompiler.c.o -o cmTC_af2a9
                /usr/bin/ld: cannot find Scrt1.o: No such file or directory
                /usr/bin/ld: cannot find crti.o: No such file or directory
                /usr/bin/ld: cannot find -lc
                /usr/bin/ld: cannot find crtn.o: No such file or directory
                collect2: error: ld returned 1 exit status
                make[1]: *** [CMakeFiles/cmTC_af2a9.dir/build.make:87: cmTC_af2a9] Error 1
                make[1]: Leaving directory ‘/home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeTmp’
                make: *** [Makefile:121: cmTC_af2a9/fast] Error 2

                CMake will not be able to correctly generate this project.
                Call Stack (most recent call first):
                CMakeLists.txt:1 (project)

                CMake Error at CMakeLists.txt:1 (project):
                No CMAKE_CXX_COMPILER could be found.

                Tell CMake where to find the compiler by setting either the environment
                variable “CXX” or the CMake cache entry CMAKE_CXX_COMPILER to the full path
                to the compiler, or to the compiler name if it is in the PATH.

                — Configuring incomplete, errors occurred!
                See also “/home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeOutput.log”.
                See also “/home/pi/n2n/n2n_v2/build/CMakeFiles/CMakeError.log”.

                • Bug侠 评论于

                  @special
                  如果你能确保cmake、gcc等这些安装正确,那我猜测会不会和他的魔改有关系?因为我这边用3b+官方的raspbian测试了,是没问题的,正常编译。我看了一下这个系统的介绍,有这一段
                  ——
                  除外,在这次2.0正式版的发布中,我们重新定义和优化了我们自己的专门针对树莓派的交叉编译链工具和编译器,并使用自定义的编译工具重新构建了基础内核以及相关系统模块,大幅度的优化和提高了编译器的编译速度及效率(关于编译链工具及编译器,大家可以参考华为的方舟编译器,有异曲同工之处,我们的编译器主要针对C、C++、G++、ASM、NM、ld、CMAKE、Glib库等底层编译工具进行了优化:专门针对树莓派的ARM aarch64 A53及A72 的 ARM-v8a进行了定制的针对性优化,包括编译硬件架构的指令集等)

                • Bug侠 评论于

                  @special
                  没注意到关键的一句
                  No CMAKE_CXX_COMPILER could be found.
                  所以大概率还是gcc\gcc-c++没安装好导致的 :咧嘴:

          • special 评论于 回复

            @Bug侠
            再补充一下:
            我的是树莓派4B
            系统不是官方的,官方没有64位的,我贴一个我用的系统链接:
            https://www.oschina.net/p/debian-pi-aarch64
            我用的是“无桌面增强版” 支持3B+
            ps:谢谢,你能和我交流这方面的东西,很感谢。

          • special 评论于 回复

            @Bug侠
            我已经再我的树莓派4B上成功编译运行N2N了,谢谢博主 :咧嘴:

  • admlnos 评论于 回复

    快点搞起,等你文章

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