群晖(Synology)下N2N的设置方法

      Synology N2N 是一个没有外网IP,远程访问群晖机器的一种可能途径。群晖本来有 quickconnect 了,我觉得也很好用。但是某些人还是会觉得他不够好用,毕竟大家都要用他那个带宽去访问,群晖难免会塞车;而且更重要的是,n2n貌似更安全 —— 开源,没有猫腻。而群晖不开源,数据经过群晖在各地建立的服务器又多了一个被监控的可能(其实多半是心理作用,我还是相信群晖的)。所以,Synology N2N 只能是 quickconnect 之外的一个补充、尝试。

     首先说说局限性,这里下载的n2n,主要用在群晖较高级别的机器上(例如 DS712+ 可以,而 DS212J 却不行),感兴趣的话可以试一试,大不了不能用,没有后遗症。


     下面说说安装方法:

首先,从 这里 去下载群晖上使用的文件,在电脑上解压,如果你的CPU是32位的就用 linux3目录里的,我的机器是群晖DS712+(且支持64位),就用 linux64目录里的(其实都可以试试,哪一个好用用哪一个);

其次,用 winScp 之类的软件,将edge、supernode 上传到 /usr/bin目录下,libcrypto.so.0.9.8 上传到 /lib64 下(32位CPU上传到 /lib 下),其属性全改为 0755

注:以下输入命令,是使用 putty 之类的来进行的,用户名是root,密码是群晖的登录密码(输入密码过程不可见),输完回车即可

然后,如果你要把此机器用作 supernode(超级节点),那么就比较简单,运行下面的命令即可(输入 supernode 或带 -h 参数查看帮助信息;可以两个版本的 supernode 同时运行,只需把另外一个改名即可):

supernode -l 82

如果你照上面的运行好了,针对 supernode,你还需打开大门,让别人可以连进来,此时需要在群晖的防火墙,路由器的端口映射里面把对应的端口打开,即上例中82端口(根据自己的来)。

如果你要把你的群晖机器用作edge(节点),那么运行下面的命令即可(输入 edge 或带 -h 参数查看帮助信息):

insmod /lib/modules/tun.ko
edge -f -a 10.0.0.1 -c yonghuming -k mima -l 180.175.223.217:82

其中,第一句不解释,因为我也不怎么懂呵呵;第二句前面的10.0.0.1,是群晖在 n2n 网络中的内网IP地址,需要自己修改,后面的 180.175.223.217:82 是有效的超级节点的信息。-f 参数,是让他注入内存工作,不显示。

那么怎么知道我们的 n2n 客户端是否正常工作呢?

对于 N2N_V1,如果你看到这样的开头信息,每分钟一次,那么就表示工作正常了。

Received REGISTER_ACK from remote peer ... ...

对于 N2N_V2,则显示这样的开头信息,每2分钟一次。

Rx REGISTER_SUPER_ACK myMAC= ... ...

如果没有这样的信息,就表示没有成功。特别强调一下,针对 N2N_V2,那个 -f 的参数正好与 V1的含义相反,所以,你反着用就行了:加 -f 表示不注入内存运行,可以看到N2N客户端的运行情况。

同样的,edge之间要能访问,也是需要设置的,请参考在一个路由器下的各个计算机之间的设置方法。

经过上面的操作,你的群晖n2n就算做好了。

如果你要终止上面的进程,可以用这样的格式:

killall -9 supernode
killall -9 edge

调试时,难免使用到 windows 客户端,请参考本站这篇文章吧:http://www.lucktu.com/archives/751.html

远程访问群晖管理页面,我用 Firefox 很难,用 google 的浏览器却较快。访问局域网网上邻居,也是可以的,就像真正的局域网一样。

本篇文章我最初发表在这里,http://www.gebi1.com/thread-245050-1-1.html,我这里是最新的,会有一些修正。


80%(4)

20%(1)
发表评论?

1 条评论。

  1. 隐藏运行代码上的密码的方法(修改上面的例句):
    N2N_KEY=mima edge -f -a 10.0.0.1 -c yonghuming -l 180.175.223.217:82

    而关于 -K (大写的)的用法,请参考这篇文章:
    https://linux.die.net/man/8/edge

    ———————-采摘如下————————-

    Key Schedule Files
    (See n2n_v2(7) for more details).

    The -K option reads a key schedule file.

    edge -d n2n0 -c mynetwork -K /path/to/file -u 99 -g 99 -m DE:AD:BE:EF:01:21 -a 192.168.254.5 -p 50001 -l 123.121.120.119:7654

    The key schedule file consists of line, one per key in the schedule. The purpose of key schedules is to encourage regular changing of the encryption keys used by a community. The file structure also allows for full binary keys to be specified as compared to the ASCII keys allowed by the single key injection. Each key line consists of the following:

    and are ASCII decimal values of the UNIX times during which the key is valid. is the index of the transform that applies to. is some text which is parsed by the transform module to derive the key for that line.

    Supported values are:

    2 = TwoFish
    has the form _. eg.

    1252327945 1252328305 2 602_3d7c7769b34b2a4812f8c0e9d87ce9

    This specifies security association number 602 and a 16-octet key of numeric value 0x3d7c7769b34b2a4812f8c0e9d87ce9. is a 32-bit unsigned integer which is used to identify the encryption key to the receiver. The SA number is sent unencrypted so the receiver may find the correct key from the key schedule. is up to 16 octets although shorter keys are allowed.
    3 = AES-CBC
    has the form _. Same rules as TwoFish.

发表评论

*