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

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

硬件情况:要建立 tinc ,你必须要有一台具有公网 IP 的计算机,并且要保证能实现端口转发(映射)到这台计算机。这里我们共有 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)。

我们的目标是:通过带有外网IP的搬瓦工,实现这 3 台机器之间的互通互联,实际上主要是为了实现没有公网IP的 212J 与 213J 之间的互通互联。实际上,在网络状况好的时候,212J 与 213J 可以直连通讯(它们之间的流量不通过搬瓦工,速度取决于彼此的最大上、下行带宽,这是最理想状态),不好的时候它们之间要通过搬瓦工 bwh1 来转发。

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

然后说说 tinc 的文件结构:以机器 bwh1 的情况为例,下面的每行最后一个名字代表文件,前面的是文件夹,假设我们要组建的局域网名字叫 hello,bwh1 上的文件结构如下

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 的文件夹

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

Name=bwh1
Interface=tun0
Mode=switch

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

ifconfig $INTERFACE down

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

ifconfig $INTERFACE 10.0.1.1 netmask 255.255.255.0

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

第五个文件为 bwh1(注意与第二个 tinc.conf 里定义的一致),其内容如下。注意内网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 主程序 tincd

apt-get install tinc

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

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

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

tincd -n hello -K4096

输入以下代码启动调试模式(可以通过 Ctrl+\ 来退出)

tincd -n hello -D --debug=3

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


100%(1)

0%(0)
1 2下一页

发表评论

*