说明:Tinc与N2N、PeerVPN以及ZeroTier等属于一类,是一款轻量型的 GNU 协议下的开源软件,通过隧道以及加密技术在互联网点与点之间建立隧道。其实Tinc可以代替ZeroTier,虽然ZeroTier免费版也足够用,但用着ZeroTier的公共Moon/WEB面板,总感觉差了点意思。而Tinc就是全部资源都归自己管,并且可以像普通的网络设备那样,不需要去适配其他已经存在的软件。所以他就可以很安全的在点与点之间传输数据,相对安全。
tinc.jpg
官方网站:https://www.tinc-vpn.org/
源码地址:https://tinc-vpn.org/git/tinc
他还有其他几大的特点:
- 加密 / 认证 / 压缩
- 自动全网状路由
- 易于扩展网络节点
- 能够进行网络的桥接
- 跨平台支持
- IPv6 支持
安装
Tinc 在各个发行版的仓库中都可以找到,例如 Debian / Ubuntu / CentOS / macOS 等系统就可以通过下面的命令安装:
apt-get install tinc
yum install tinc
brew install tinc
其他平台下载:
Android:Tinc App ;IOS(需越狱):Cydia packages;Windows官方下载地址
配置
目录结构
/etc/tinc
└── dock
├── hosts
│ ├── Server
│ └── Client
├── rsa_key.priv
├── tinc.conf
├── tinc-down
└── tinc-up
/etc/tinc/dock
目录下的文件都属于dock
这个网络/etc/tinc/dock/hosts
目录是存放其他用户或者说是其他网络的public key
以及他们的 ip 地址rsa_key.priv
本网络的私钥tinc.conf
本网络的配置文件tinc-down
本网络关闭时执行的脚本tinc-up
本网络启动时执行的脚本
服务端配置
首先开启 Linux 转发,在/etc/sysctl.conf
设置net.ipv4.ip_forward = 1
,并通过sysctl -p
来应用配置。
修改tinc.conf
配置文件
Name = Server
Interface = tinc
Mode = switch
Compression=9
Cipher = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/dock/rsa_key.priv
Name
主机名称Interface
隧道所使用的网卡名称Mode
有三种模式,分别是 router
/ switch
/ hub
,相对应我们平时使用到的路由、交换机、集线器 (默认模式 router
)Compression
UDP 数据包压缩级别。可选有 0 (关闭),1 (fast zlib) 至 9 (best zlib),10 (fast lzo) 和 11 (best lzo)Cipher
加密类型。可选 aes-128-cbc
aes-256-cbc
等Digest
rsa 加密协议强度。可选 sha128
sha1
等PrivateKeyFile
服务器私钥的位置
修改tinc-up
和tinc-down
,用Windows
作为服务器无需这两个文件
tinc-up
#!/bin/shifconfig $INTERFACE <内网ip> netmask 255.255.255.0
tinc-down
#!/bin/shifconfig $INTERFACE down
添加执行权限
chmod +x tinc-*
在hosts
文件夹内添加节点配置文件
Subnet=10.1.3.1/32
Address=149.129.88.238
Port=57734
Subnet
宣告的路由地址Address
服务器的外网 IPPort
指定 tinc 连接端口(默认端口655
)
生成私钥和公钥
tincd -n dock -K4096
公钥自动添加到hosts
文件夹内的节点配置文件
客户端配置
客户端的tinc.conf
与服务器的参数基本上相同,只需要修改Name
在hosts
文件夹内添加新的节点配置文件
Subnet=10.1.3.2/32
tinc-up
和tinc-down
跟服务器配置基本一样,只需要修改tinc-up
的内网ip,Windows
客户端无需这两个文件
生成私钥和公钥
tincd -n dock -K4096
将服务端的节点配置文件放到客户端的hosts
文件夹内,并将客户端的节点配置文件放到服务端的hosts
文件夹内
运行
后台启动
Windows 端需要先安装虚拟网卡,在 tinc 的安装目录下有虚拟网卡的驱动安装包,安装完成后需要将虚拟网卡名称改为与tinc.conf
文件中的Interface
名称相同,并且手动设置虚拟网卡的 IP 地址和子网掩码,然后进入到tinc
的安装目录下再以管理员的身份运行,运行后会自动创建系统服务,需要停止的时候在 Windows 系统服务管理中停止服务
tincd -n dock
tincd.exe -n dock
停止运行,该命令在 Windows 端会停止运行并删除系统服务
tincd -n dock -k
tincd.exe -n dock -k
调试模式
tincd -n dock -D -d 3
tincd.exe -n dock -D -d 3
最后
抓包可以看出,我本地与服务器之间的连接已经数据传输是加密的,而如果你对数据的传输有兴趣的话,只需要将抓包的网卡设置成上面设置的网卡(tinc)即可,在 tinc 传输的数据已经是经过解密的了,因此抓包可以很好的复原传输的过程。
该文章在 2021/3/26 0:48:54 编辑过