说明
Tinc是一个轻量级的VPN(Virtual Private Network)软件,可以帮助用户建立一个加密的虚拟网络,实现对远程服务器的访问和管理。Tinc具有高度可扩展性、灵活性和安全性,支持多种操作系统和网络环境。本文将介绍Tinc的安装和配置方法,以及常用的操作命令和技巧。
1. Linux安装
sudo apt-get install tinc
讯享网
在CentOS和Fedora系统上,可以使用以下命令来安装Tinc:
讯享网sudo yum install tinc
在Arch Linux系统上,可以使用以下命令来安装Tinc:
sudo pacman -S tinc
在OpenSUSE系统上,可以使用以下命令来安装Tinc:
讯享网sudo zypper install tinc
2. 配置Tinc
2.1 创建配置文件
Tinc的配置文件位于/etc/tinc目录下,每个Tinc网络都有一个单独的目录,目录名为网络名。
其目录结构如下所示:
. └── ens33 ├── hosts │ ├── MasterA │ ├── MasterB │ ├── MasterC │ ├── NodeA │ ├── NodeB │ └── NodeC ├── rsa_key.priv ├── tinc.conf ├── tinc-down └── tinc-up
tinc.conf:该文件主要存放当前节点的配置,使用的虚拟网卡等。rsa_key.priv:该文件是私钥文件,由tincd工具生成。tinc-up:网络建立时需要执行的操作tinc-down:网络停止时需要执行的操作hosts文件夹:该文件夹存放当前网络所有节点的配置文件,我有六个节点,那么就有六个文件,文件名为节点名。节点名在tinc.conf中进行设置。
在本文中,我们将创建一个名为ens33的Tinc网络,因此需要创建一个名为ens33的目录:
讯享网sudo mkdir -p /etc/tinc/ens33
- 这个文件名可以随意取,文件名即最后生成的虚拟网卡名称,如果没有特别需求可以随便取。
- 此处我之所以使用是ens33作为网卡名,是因为我生产环境使用的腾讯云服务器,腾讯云服务器的网卡名称是eth0,而k8s集群calico等网络插件一般默认使用网卡eth.*|ens.*作为网络通信的网卡,所以为了方便配置我自己搭建一个名为ens33的虚拟网卡,这样就可以让集群网络配置更简单简单。
- 当然如果你的默认网卡是ens33,那么你可以使用其他名称,比如eth0、tinc0、myvpn等等。
- 这里的网卡名称请灵活处理。
在ens33目录下,需要创建以下三个文件:
sudo touch /etc/tinc/ens33/tinc.conf sudo touch /etc/tinc/ens33/tinc-up sudo touch /etc/tinc/ens33/tinc-down
然后需要根据自己需求创建hosts文件,这里我创建文件名为MasterA的文件,文件内容如下:
讯享网sudo vi /etc/tinc/ens33/hosts/MasterA
- 其他节点的hosts文件通过复制修改创建。
- 因为节点的文件里需要添加进公钥信息。
2.2 配置tinc.conf
在tinc.conf文件中,需要添加以下内容:
Name = MasterA Interface = ens33
Name:当前节点名称,告诉tinc当前节点对应hosts的配置文件是哪一个。Interface:虚拟网卡名称,这个名称就是我们在上面创建的当前网络的目录名称。
2.3 配置tinc-up
在tinc-up文件中,需要添加以下内容:
讯享网#!/bin/sh ifconfig $INTERFACE 10.10.10.1 netmask 255.255.255.0
INTERFACE:虚拟网卡名称,这里我直接使用变量$INTERFACE。IP地址:这里我使用的是10.10.10.1,这个IP地址是我自己随便取的,只要不和其他网络冲突即可。注意: 一个tinc网络中,所有节点的IP地址必须是同一个网段
2.4 配置tinc-down
在tinc-down文件中,需要添加以下内容:
#!/bin/sh ifconfig $INTERFACE down
2.5 配置hosts
masterA中的hosts文件内容如下:
讯享网Subnet=10.10.10.1/32 Address=124.220.166.88 Port=1655 ConnectTo = MasterB ConnectTo = MasterC ConnectTo = NodeA ConnectTo = NodeB ConnectTo = NodeC
Subnet:当前节点的IP地址,对应tinc-up中的IP地址。Address:当前节点的公网IP地址,这个地址必须是所有节点能连接到的地址,否则无法建立网络。- 关于
Address的地址需要在有公网IP的机器上配置,没有公网IP的机器不配置。 Port:Tinc服务所建立通信的端口号,默认是655,这里我修改成1655。ConnectTo:当前节点需要连接的节点,这里我需要连接所有节点,所以都写上。
2.6 生成私钥Tinc文件
在/etc/tinc目录下,注意修改网络的名称!执行以下命令:
cd /etc/tinc tincd -n ens33 -K 4096
-n:指定当前网络的名称,这里我使用的是ens33,请换成你自己的名称。-K:生成私钥文件,这里我使用的是4096位的密钥,可以根据自己的需求进行调整。- 执行命令后,按两次回车将自动在/etc/tinc/ens33文件夹下新增一个私钥文件:
rsa_key.priv,公钥信息则自动添加到了/etc/tinc/ens33/hosts/MasterA文件了。
2.7 创建全部节点的hosts文件
- 复制MasterA文件,修改文件名为MasterB、MasterC、NodeA、NodeB、NodeC…等。
- 在/etc/tinc/ens33/hosts目录下,创建MasterB、MasterC、NodeA、NodeB、NodeC等节点文件,文件内容和MasterA一样,只是Subnet和Address不同。
- 之所以复制创建是因为公钥信息是自动生成的。
例如masterB中的hosts文件内容如下,其他hosts文件类似:
讯享网Subnet=10.10.10.2/32 Port=1655 ConnectTo = MasterA ConnectTo = MasterC ConnectTo = NodeA ConnectTo = NodeB ConnectTo = NodeC -----BEGIN RSA PUBLIC KEY----- ...<此处省略>... -----END RSA PUBLIC KEY-----
2.8 启动Tinc服务
sudo chmod +x /etc/tinc/ens33/tinc-* sudo systemctl start tinc@ens33 sudo systemctl enable tinc@ens33 sudo cat >> /etc/systemd/system/tinc.service.wants/ << EOF WantedBy=multi-user.target EOF sudo systemctl enable tinc@ens33
sudo systemctl start tinc@ens33:启动Tinc服务,这里我使用的是ens33,请换成你自己的名称。sudo systemctl enable tinc@ens33:设置开机自启动。- 后面是修改开机自启BUG的命令,如果不执行,开机自启动可能会失败,可以先不执行,遇到了在执行。
3. 查看Tinc网络
3.1 查看Tinc网络状态
查看Tinc网络状态:
讯享网ip a | grep ens33 # ens33: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq state UNKNOWN group default qlen 500 # inet 10.10.10.3/24 scope global ens33 # 出现类似上面的信息,说明Tinc网络已经建立成功了。
4. 常见问题
4.1 使用yum等命令安装不了时,可使用rpm等方法进行安装
https://developer.aliyun.com/packageSearch?word=tinc
4.2 重启后服务没有自启动
请浏览2.8中的命令,执行后重启即可。
4.3 无法连接到其他节点,或启动失败
- 请检查tinc文件配置是否正确。
- 每个节点的
tinc-up和tinc.conf均需要修改为当前节点的配置。 tinc-up文件和tinc-down文件是否有执行权限。- 必须有一台机器有公网IP,进行数据分发。
- 请检查防火墙是否开放了Tinc服务的端口。云服务器需要在安全组中开放端口。
4.4 关于windows客户端和安卓等客户端的配置
windows客户端的配置,可以参考以下内容:
- Windows 操作系统,通过安装包安装好后,默认会安装到C:\Program Files (x86)\tinc目录。
- 右键用管理员权限打开tap-win64/addtap.bat 运行后,会在网络适配器中看到一个新的适配器,将其重命名为我们规划的名称,例如:ens33。
- 在tinc安装目录创建ens33文件夹,与Linux中的/etc/tinc/ens33文件夹差不多
- 修改
tinc-up文件名为tinc-up.bat,修改tinc-down文件名为tinc-down.bat - 管理员身份运行cmd,进入tinc安装目录,执行类似命令
tincd.exe --net=ens33,即可启动服务。
安卓客户端的配置,可以参考以下内容:
- 安卓客户端第三方下载地址:https://tincapp.pacien.org/
- 打开app,点击右上角扳手图标,然后在工具里选择
生成节点配置和秘钥 - 创建后,会自动在/storage/emulated/0/Android/data/org.pacien.tincapp/files目录下生成跟linux差不多的文件夹
- 修改配置文件后,返回Tinc App主页,点击网络名称即可连接该网络。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/75171.html