用 tinc 组建局域网其实也简单

上面的方法,意味着每增加一个客户端,就要在每一个机器的 hosts 目录增加一个文件,比较麻烦,下面介绍另外一个加入客户端的方法(在padvan上测试通过,V1.1pre14) 首先在服务器上,在 ssh 下运行下面的命令,其中 xyz 为被邀请者的机器名字。此时会自动在 /etc/tinc/hello/ 产生一个 invitations 的文件夹,里面有一个 key 文件和另外一个临时文件。

tinc -n hello invite xyz

得到一些信息,将如下语句复制给被邀请方,最好再指定一个内网 IP 给他(以免重复,假设为:10.0.1.4)

12.181.40.118/WOL4l5wX5MsWlaCxYHlmooUSboQG9Ky3C1uLZ2HVbfu1x19G

被邀请者在得到这个信息以后,首先要在自己的机器上安装好 tinc,然后在 ssh 下运行下面的语句(ubuntu16.04x64 对于 padavan 的邀请,表示不接受,它的版本是tinc v1.0.26,估计是因为默认的太老了)

tinc join 12.181.40.118/WOL4l5wX5MsWlaCxYHlmooUSboQG9Ky3C1uLZ2HVbfu1x19G

得到类似下面的信息即算成功了。同时会自动生成 /etc/tinc/hello/ 文件夹及相应文件,也会在服务器的 invitations 文件夹下删除当初的那个临时文件,并在 hosts 下生成 xyz 文件。

/opt/home/admin # tinc join 12.181.40.118/WOL4l5wX5MsWlaCxYHlmooUSboQG9Ky3C1uLZHVbfu1x19G
Connected to 12.181.40.118 port 655..........
...............+++++ p
...............+++++ q
Configuration stored in: /opt/etc/tinc/hell
Invitation succesfully accepted.

接着修改 tinc-up 和 hosts 下的 xyz 文件,在其中加入 IP 信息分别如下两句

ifconfig $INTERFACE 10.0.1.4 netmask 255.255.255.0
Subnet=10.0.1.4/32

最后启动被邀请者的 tinc,即可成功加入网络。 多服务器支持:上例中,如果 213j 也有外网IP,那么 212j 和 bwh1 两台机器的 tinc.conf 都可以增加一行这样的文字 ConnectTo=213j ,同时 /etc/tinc/hello/hosts/213j 这个文件里面还应该有这样的语句(参考bwh1)Address=116.181.40.23 (此IP地址为 213J 实际的外网IP地址或域名)。这就是多服务器的意思,当一个服务器挂了,另外一个服务器就会起到维护整个局域网的作用。做服务器的主机,某通讯端口必须要可以被外网访问,要设置好端口映射。本例中使用的是默认的端口 655(防火墙上 TCP 和 UDP 都要打开)。你也可以在 /etc/tinc/hello/hosts/bwh1 和 /etc/tinc/hello/tinc.conf 文件里增加一行  Port=1190 以改变成新的端口 1190,并且全部的机器都得有。本例中针对 bwh1 不需设置端口映射即可使用,实际上你可能要设置的,还有防火墙也必须放行。例如用群晖 213j 做服务器时,上级路由器要设置 655 端口映射到 213j,213j 上也要设置 655 端口通行才可以。 关于计算机重启本服务也跟着启动的问题,针对ubuntu,只要按照前面的方法设置好 nets.boot 就可以了。而针对群晖则需要把下面的语句加入到启动文件中(/etc/rc.local)。一般机器第一行不需要。

insmod /lib/modules/tun.ko
tincd -n hello

另外,在 padavan 下,启动 entware 环境后,也可以直接安装 tinc(安装的版本是 1.1pre14)安装方法如下

opkg update
opkg install tinc

安装好以后,上传修改好的配置文件(配置文件位置在 /opt/etc 下面),并修改部分文件的属性,然后再生成密码。只是产生密码的方式,需如下操作。

tinc -n hello generate-keys

启动、停止、重启、重新加载配置文件的方法如下:

tinc -n hello start
tinc -n hello stop
tinc -n hello restart
tinc -n hello reload

加入 padavan 的开机启动的方法为,放到“在路由器启动后执行”里,命令前要带上路径,好像一次不行,要运行两次才可以起来!我的方法是在前面运行一个 ps 命令来代替,真奇怪!我的是纯净版 padavan,是这样。也许你的没有这个问题。

ps | grep tinc
/opt/sbin/tincd -n hello

windows 的设置方法见

这个链接。其方法大概是说,先在服务器上发出邀请,然后在客户端(windows10)上加入即可。然而我的电脑是 windows7,安装目录 C:\Program Files\tinc 下面没有 tinc 这个主程序,只有 tincd 这个文件,而且我的程序是官方最新的 1.0.35,那就不能用这个方法,只能用首页 bwh1 的方法了,在 C:\Program Files\tinc 下面自建 hello 这个文件夹及其文件(所有命令是进入 C:\Program Files\tinc 运行)。 设置完成,如果以前没有安装虚拟网卡,要先进入 C:\Program Files\tinc\tap-win32,运行 addtap.bat 添加虚拟网卡(我机器上装有 n2n,可以直接用它的网卡,这一步就可以省掉了)。安装好后,先简单运行一下

tincd -n hello -D --debug=3

然后看看 “控制面板\网络和 Internet\网络连接” 中,哪一个网卡

(我的 n2n 下安装了多个虚拟网卡)随着 tincd 的启动而启动了,然后停掉上面的 tincd,设置这个网卡的 IP 为 10.0.1.5 和 子网掩码 255.255.255.0(设置 IP 地址的过程也可以参考上面 windows10 的方法设置)。然后使用下面的命令,正式后台运行 tinc 吧:

tincd -n hello

今日无意当中见到了 windows7 上的安装方法,但是我简单设置了下(没完全按该教程走),没有成功,不折腾了,等今后确实需要了再来。

我觉得这个 tinc 可以布置在 路由器 和 群晖 等 linux 类服务器上去,然后借鉴本站 n2n 里面的方法,组建 网对网 的局域网,而不仅仅是单个机器之间的联网(遗憾的是目前 ubuntu16.04 上安装的 tinc 是 1.0.26-1 的,它做服务器,被你被 padvan 所用,但反过来可以,padvan 上的 tinc 是 1.1pre17,不知道谁更新,也找不到合适的版本)。

——————————————————————————观后絮语—————————————————————————— 我觉得,TINC 与 N2N 属于一类,完全自主、完全开源,适合有强迫症的一族。我简单对比一下他们的特点吧(TINC 我用的不多,经验不足,仅做参考): 1、感觉 TINC 更成熟一些(2018-12-1),估计直连成功率和传输速度更好一些 2、TINC 的服务器私用,不能共享;N2N 可以共享,一个服务支持多个使用中,相互独立 3、N2N 设置更简单一些,一行代码走遍天下 4、也需正是因为它的一行代码,泄露了太多机密,N2N 可能没有 TINC 安全 自己觉得哪一个更适合自己就用哪一个吧! 更多资料:https://github.com/qmcclab/blog/blob/master/2013-09-20-a-mesh-network.md


71.88%(23)

28.13%(9)
上一页 1 2 3
发表评论?

6 条评论。

  1. 眼睛会了,手不会啊

  2. tinc也能实现多个子网同时开,相当于n2n的小组,只不过tinc不能匿名访问核心节点,即便是同时开多个tinc实例构建多个网,也需要其他节点受邀加入,而且作为核心节点的机器是不是还要加多个虚拟网卡呢,如果每一个网都要绑一个虚拟卡,会不会出问题

  3. 增加几点认识:
    1、新加入的主机,好像不需把新生成的hosts下文件拷贝到所有主机上去,只需拷贝到你要注册的服务器上去即可(以使能加入Tinc网络);
    2、一切设置好以后,可以简单的修改本机的Tinc内网IP地址,重新启动后也能正常工作。

  4. 请问群晖怎么安装tinc

发表评论

*