N2N服务端的几种验证方式

N2N 2023/01/12

有一些朋友自建的N2N服务端(supernode),又不想服务端被公开连接,可以尝试以下几种方法

系统自带防火墙

这里说的防火墙可以是firewalld\ufw\iptables等,仅允许指定的IP访问服务端

但这个方法比较暴力,而且现在的家庭宽带大都是动态IP,不具有普适性

组名称白名单(community.list)

supernode支持启动时加载一个包含虚拟局域网小组名称的文件列表(记为community.list),格式为

#允许连接到supernode的组名称列表,一行一个,例如
bugxia
wenming6
#同时也支持正则形式的小组名称,例如bugxia00~bugxia19,可以这么表述
bugxia[0-1][0-9]
#另外还支持用户名\密码的验证形式,使用方法见后文
easyn2n
* bugxia h85UFJY3Hz7irnoiHBXjZo-lH9tga+Vl+5ANnDN5G68
* easyn2n Z3EHfiKHYEUJVpx9wcQVD2uVEGpT1wtNgRJLEhidPmu

启动supernode时,使用附加参数 -c 白名单文件路径 启动即可,如

supernode -p 18457 -c /root/community.list

启动后,客户端(edge)仅能使用白名单内包含的组名称进行连接

基于用户/密码的身份验证

除上述方法,supernode还支持用户名\密码的方法进行认证

该功能需要先通过N2N的密码工具(n2n-keygen),将允许连接的用户名密码进行加密

下载

Windows

n2n-keygen x64 for Windows:n2n-keygen.zip

Linux

通过源码自编译

加密

比如,用户名 bugxia,密码 testpassword

n2n-keygen bugxia testpassword

得到一串加密的字符串

#格式:*[空格]用户名[空格]密钥
* bugxia h85UFJY3Hz7irnoiHBXjZo-lH9tga+Vl+5ANnDN5G68

配置community.list

将上述字符串(完整格式,包含整行开头的*星号)以及自定义的小组名称保存到 community.list,格式如下:

bugxia
* bugxia h85UFJY3Hz7irnoiHBXjZo-lH9tga+Vl+5ANnDN5G68
* easyn2n Z3EHfiKHYEUJVpx9wcQVD2uVEGpT1wtNgRJLEhidPmu

上述配置中,bugxia 表示允许连接的小组名,后面的表示bugxia该小组下的允许使用的用户名及密钥

使用附加参数 -c 白名单文件路径 启动supernode

客户端

客户端这边将上述综合,小组名称必须使用community.list里指定的小组名

附加参数中添加 -I 用户名 、-J 密码-k 密码-A4或-A5 启动,如图

官方说明文档:https://github.com/ntop/n2n/blob/dev/doc/Authentication.md

本文标签:


10条评论

  • c.w.l 评论于 回复

    BUG侠你好啊!从你这里学到超多东西的。从为了和朋友异地组局玩游戏到零基础学Docker,把服务部署到docker上(啧啧啧,我真厉害(doge))。想请教一下linux有客户端可以用吗?Linux服务端运行了之后,如果我想共享服务端的某些资源给客户端,我可以怎么操作呢?盼答复,谢谢。

    • Bug侠 评论于 回复

      @c.w.l
      感谢支持~N2N Linux客户端程序:
      自编译:https://bugxia.com/2508.html
      预编译:https://github.com/lucktu/n2n/tree/master/Linux
      教程不用写了吧,一行命令就启动了
      https://bugxia.com/2396.html

      • c.w.l 评论于 回复

        @Bug侠
        非常感谢!很有用!还有一个问题就是edge怎么关掉? :笑哭: 我在centos7只能重启服务器去关。。囧

        • Bug侠 评论于 回复

          @c.w.l
          killall edge
          如果没装killall,用下面的安装
          yum install psmisc -y

          • c.w.l 评论于 回复

            @Bug侠
            好的好的!感谢啦

  • km 评论于 回复

    Bug侠下午好,请问文中提到的n2n-keygen在那里获取?在Windows能用吗?

    • Bug侠 评论于 回复

      @km
      已补充 n2n-keygen x64 for Windows :咧嘴:

    • Bug侠 评论于 回复

      @km
      我又回看了一下本文,发现有很多纰漏,现已纠正 :笑哭:

  • 123 评论于 回复

    手机版hin2n的Encrypt key如何使用?

    • Bug侠 评论于 回复

      @123
      手机端的Encrypt key 就是密码,附加参数 -k 参数

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