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

一直以来用n2n习惯了,觉得非常简单,一行代码就全搞定了。偶尔也尝试过 tinc 的布置,但是一看教程,都是代码帝,跟着跟着就跟丢了,失败了,也就兴趣全没了。这几天比较闲,受朋友们推荐,说这玩意儿好,有人在维护,稳定,又比较容易直连,。。。所以,为了弄清事实真相,那就必须亲自尝试一番。我是先配置通过了,然后删除以前的配置,再重新开始新的尝试,边实践边写下此教程的。你可以完全照搬里面的代码,走通了后再修改成自己的。

硬件情况及约定:要建立 tinc ,你必须要有一台具有公网 IP 的计算机(作服务器),并且要保证能实现端口转发(映射)到这台计算机(默认端口为 655)。这里我们共有 3 台机器:一台是装有 ubuntu-16.04-x86_64 的搬瓦工,我们给它取名 bwh1(其外网IP为12.181.40.118,tinc内网IP为10.0.1.1,它可以做服务器);一台带 linux 精简系统的群晖 212j(tinc内网IP为10.0.1.2);另外一台是群晖 213j(tinc内网IP为10.0.1.3)。三台机器的名字分别为 bwh1、212j、213j 如下。以#开头的是注释,#及后面的内容都可以删除,下同。

bwh1 10.0.1.1 12.181.40.118    # 做服务器
212j 10.0.1.2                  # 没有外网IP,一般机器
213j 10.0.1.3                  # 一样,一般机器

我们的目标是:通过带有外网IP的搬瓦工,实现这 3 台机器之间的互通互联,其实主要是为了实现没有公网IP的 212J 与 213J 之间的互通互联。实际上,在网络状况好的时候,212J 与 213J 可以直连通讯,不好的时候它们之间要通过搬瓦工 bwh1 来转发。

软件情况:请准备 winscp、putty、EditPlus,有了它们,我们就可以脱离代码帝,实现复制粘贴再加简单修改就可以了。

然后说说 tinc 的文件结构:以 bwh1 为例,下面的每行最后一个名字代表一个文件,前面的都是文件夹,假设我们要组建的局域网名字叫 hello,bwh1 上的文件结构如下(windows7 的都在 C:\Program Files\tinc 下)

etc__tinc__nets.boot               #(1)
       |___hello__rsa_key.priv     # 这个文件是后面使用命令自动产生的,不是手工编辑出来的
             |____tinc.conf        #(2)
             |____tinc-up          #(3)
             |____tinc-down        #(4)
             |____hosts____bwh1    #(5)此文件夹下最初只有这一个,但最后其他机器的也需放入
usr__sbin__tincd                   # 主程序,也不是手工编辑出来的

在后面标注了 1、2、3、4、5 的文件,都可以用 EditPlus 在本地计算机上产生,然后使用 winscp 上传到对应的机器上去即可。rsa_key.priv 是使用命令自动建立的,在生成这个文件的同时,bwh1 这个文件也会被追加 key 代码。

打开EditPlus,选择 文件--新建--标准文本,粘贴一些文本以后,再选择 文件--另存为,填写对应文件名,保存类型 All files (*.*)。第一个文件为 nets.boot,其中内容如下(填入局域网的名字hello)

##This file contains all names of the networks to be started on system startup.
hello

在本地按照上面的目录结构,我们来创建一个 tinc 的文件夹,在该文件夹下,我们放入第一个文件 nets.boot,然后在 tinc 文件夹下再创建一个 hello 的文件夹(局域网名字是什么就用什么文件夹名,本例为 hello)

使用 EditPlus 创建第二个文件 tinc.conf,其内容为(下面的 tun0,为网卡名,任意的英文数字皆可)

Name=bwh1
Interface=tun0
Mode=switch

第三个文件为tinc-down,其内容为

ifconfig $INTERFACE down

第四个文件为tinc-up,其内容为(内网 IP 地址按照上面的约定来,为 10.0.1.1)

ifconfig $INTERFACE 10.0.1.1 netmask 255.255.255.0

在 hello 文件夹下再创建 hosts 文件夹

第五个文件为 bwh1,其内容如下。tinc内网 IP 地址是 10.0.1.1,外网IP地址是 12.181.40.118(可以用域名),放入 hosts 文件夹下(不做服务器的机器没有第一行)

Address=12.181.40.118
Subnet=10.0.1.1/32

第一台机器 bwh1 的文件就这样创建好了。我们现在使用 putty 软件来登录 bwh1,先使用下面的命令来安装 tinc

apt-get install tinc

没什么出错就算安装好了(成功后显示的代码我就不贴了)。可以(用 winscp 软件)在 /usr/sbin/ 下看到 tincd 这个文件

然后用 winscp 软件把刚才创建的 tinc 目录带文件全部上传到 bwh1 的 etc 目录下面去,并修改 tinc-up 和 tinc-down 的文件属性为 0755(鼠标放文件上,按右键,选属性,即可修改)。至此,bwh1 前期工作算是准备好了,以后也可以在 winscp 窗口下按右键弹出 编辑 对某些文件进行修改。

输入以下代码回车回车再回车,密码文件就自动生成好了。这时你打开 /etc/tinc/hello 文件夹,会看到多了一个 rsa_key.priv 文件(属性为0600),再以编辑的方式打开 /etc/tinc/hello/hosts/bwh1(属性为0666),会发现文件的后面多了一些 key 代码,把这个新的 bwh1 文件下载到本地的 目录 A 下备用。

tincd -n hello -K4096

在 putty 中输入以下代码启动调试模式(可以通过 Ctrl+\ 来终止)

tincd -n hello -D --debug=3

看到一个 Ready 结尾的代码就算启动好了,将 putty 这个调试界面保持在这里不动


80%(8)

20%(2)
1 2 3下一页
发表评论?

2 条评论。

  1. 请问群晖怎么安装tinc

发表评论

*