Tinc VPN是一个轻量型的GNU协议下的开源软件,通过隧道以及加密技术在互联网点与点之间创立隧道。VPN是IP层面上的,所以可以像普通的网络设备那样,不需要去适配其他已经存在的软件。所以他就可以很安全的在点与点之间传输数据,并不需要担心泄露。Tinc VPN还有其他几大的特点:
- 加密、认证和压缩
- NAT穿越
- 自动全网状路由
- 易于扩展网络节点
- 能够进行网络的桥接
- 跨平台支持和IPv6支持
官方网站:https://www.tinc-vpn.org/
源码地址:https://tinc-vpn.org/git/tinc
*提前放行端口或者关闭防火墙,关闭/禁止防火墙命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
安装服务
1.tinc在各个发行版的仓库中都可以找到,例如CentOS系统就可以通过下面的命令安装:
yum -y install tinc
#Debian/Ubuntu:
apt-get install tinc
#macOS:
brew install tinc --devel
#ArchLinux:
pacman -S tinc
2.tinc目录结构:
/etc/tinc
└── tincnet
├── hosts
│ ├── Server
│ └── Client
├── rsa_key.priv
├── tinc.conf
├── tinc-down
└── tinc-up
- /etc/tinc/tincnet:该网络的网络名,目录下的文件都属于tincnet这个网络,可以根据自己的情况修改名称.
- hosts:目录是存放其他用户或者说是其他网络的public key以及他们的ip地址.
- rsa_key.priv:本网络的私钥.
- tinc.conf:本网络的配置文件.
- tinc-down:本网络关闭时执行的脚本.
- tinc-up:本网络启动时执行的脚本.
客户端和服务端都需要手动新建相同的目录结构,Windows端无需新建tinc-up和tinc-down两个文件.
服务端配置
1.首先开启Linux转发,在/etc/sysctl.conf
新增net.ipv4.ip_forward = 1
,并通过sysctl -p
来应用配置.
2.按照上方tinc目录结构建好目录和文件,修改tinc.conf配置文件vi /etc/tinc/tincnet/tinc.conf
:
Name = Server
Interface = tinc
Mode = router
Compression=9
Cipher = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/tincnet/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:服务器私钥的位置.
3.Linux和MacOS修改tinc-up和tinc-down:
- 修改
tinc-up
:
vi /etc/tinc/tincnet/tinc-up
#!/bin/sh
ifconfig $INTERFACE <内网ip> netmask 255.255.255.0
- 修改
tinc-down
:
vi /etc/tinc/tincnet/tinc-down
#!/bin/shifconfig $INTERFACE down
4.运行命令添加执行权限:
chmod +x tinc-*
5.在hosts文件夹内新建在tinc.conf
设置的主机名称的节点配置文件:
vi /etc/tinc/tincnet/hosts/tinc.conf
Subnet=10.0.0.1/24
Address=x.x.x.x
Port=655
- Subnet:宣告的路由地址.
- Address:服务器的外网IP.
- Port:指定tinc连接端口(默认端口655).
6.使用命令生成私钥和公钥:
tincd -n tincnet -K4096
- 私钥生成在与
tinc.conf
配置文件相同的文件夹,生成的公钥会自动添加到hosts
文件夹内的节点配置文件里.
客户端配置
1.客户端的tinc.conf
与服务器的参数基本上相同,只需要修改Name
,和添加Connectto
需要连接的主机名称:
Name = Client
Connectto = Server1
Connectto = Server2
Interface = tinc
Mode = router
Compression=9
Cipher = aes-256-cbc
Digest = sha256
PrivateKeyFile=/etc/tinc/tincnet/rsa_key.priv
Name:客户端名称.
Connectto:服务端名称 (可同时使用多个).
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:客户端私钥的位置.
2.在hosts文件夹内新建在tinc.conf
设置的主机名称的节点配置文件:
Subnet=10.0.0.2/24
tinc-up
和tinc-down
跟服务器配置基本一样,只需要修改tinc-up
的内网ip,Windows客户端无需这两个文件.
3.使用命令生成私钥和公钥:
tincd -n tincnet -K4096
- 将服务端生成完公钥的节点配置文件放到
客户端的hosts
文件夹内,并将客户端生成完公钥的节点配置文件放到服务端的hosts
文件夹内.
运行
1.Windows端需要先安装虚拟网卡,在tinc的安装目录下有虚拟网卡的驱动安装包,安装完成后需要将虚拟网卡名称改为与tinc.conf文件中的Interface名称相同,并且手动设置虚拟网卡的IP地址和子网掩码,然后进入到tinc的安装目录下再以管理员的身份运行,运行后会自动创建系统服务,需要停止的时候在Windows系统服务管理中停止服务:
- Linux/MacOS:
tincd -n tincnet
- Windows(需要管理员权限):
tincd.exe -n tincnet
运行完后,使用ifconfig查看是否有tinc.conf设置的网卡名称,如果没有请检查tinc-up和tinc-down两个文件是否授予执行的权限;如果已经文件已经赋予权限还是没显示网卡,请使用调试模式运行查看问题.
2.停止运行,该命令在Windows端会停止运行并删除系统服务:
- Linux/MacOS:
tincd -n tincnet -k
- Windows(需要管理员权限):
tincd.exe -n tincnet -k
3.调试模式:
- Linux/MacOS:
tincd -n tincnet -D -d 3
- Windows:
tincd.exe -n tincnet -D -d 3
注意:调试模式时无法使用Ctrl+C停止运行,需要输入命令tinc -n tincnet -k才能停止运行.
2 comments
真棒!
看到你的文章,感觉很不错,想与你友情链接
网站名:电脑教程网
网站:https://dnjcw.com.cn/
同意的话给我发邮件Internetyewu@163.com