2025年使用Tinc搭建虚拟局域网的详细安装与配置教程

使用Tinc搭建虚拟局域网的详细安装与配置教程说明 Tinc 是一个轻量级的 VPN Virtual Private Network 软件 可以帮助用户建立一个加密的虚拟网络 实现对远程服务器的访问和管理 Tinc 具有高度可扩展性 灵活性和安全性 支持多种操作系统和网络环境 本文将介绍 Tinc 的安装和配置方法 以及常用的操作命令和技巧 1

大家好,我是讯享网,很高兴认识大家。

说明

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 
  1. tinc.conf:该文件主要存放当前节点的配置,使用的虚拟网卡等。
  2. rsa_key.priv:该文件是私钥文件,由tincd工具生成。
  3. tinc-up:网络建立时需要执行的操作
  4. tinc-down:网络停止时需要执行的操作
  5. hosts文件夹:该文件夹存放当前网络所有节点的配置文件,我有六个节点,那么就有六个文件,文件名为节点名。节点名在tinc.conf中进行设置。

在本文中,我们将创建一个名为ens33的Tinc网络,因此需要创建一个名为ens33的目录:

讯享网sudo mkdir -p /etc/tinc/ens33 
  1. 这个文件名可以随意取,文件名即最后生成的虚拟网卡名称,如果没有特别需求可以随便取。
  2. 此处我之所以使用是ens33作为网卡名,是因为我生产环境使用的腾讯云服务器,腾讯云服务器的网卡名称是eth0,而k8s集群calico等网络插件一般默认使用网卡eth.*|ens.*作为网络通信的网卡,所以为了方便配置我自己搭建一个名为ens33的虚拟网卡,这样就可以让集群网络配置更简单简单。
  3. 当然如果你的默认网卡是ens33,那么你可以使用其他名称,比如eth0、tinc0、myvpn等等。
  4. 这里的网卡名称请灵活处理。

在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 
  1. 其他节点的hosts文件通过复制修改创建。
  2. 因为节点的文件里需要添加进公钥信息。

2.2 配置tinc.conf

在tinc.conf文件中,需要添加以下内容:


讯享网

Name = MasterA Interface = ens33 
  1. Name:当前节点名称,告诉tinc当前节点对应hosts的配置文件是哪一个。
  2. Interface:虚拟网卡名称,这个名称就是我们在上面创建的当前网络的目录名称。

2.3 配置tinc-up

在tinc-up文件中,需要添加以下内容:

讯享网#!/bin/sh ifconfig $INTERFACE 10.10.10.1 netmask 255.255.255.0 
  1. INTERFACE:虚拟网卡名称,这里我直接使用变量$INTERFACE。
  2. IP地址:这里我使用的是10.10.10.1,这个IP地址是我自己随便取的,只要不和其他网络冲突即可。
  3. 注意: 一个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 
  1. Subnet:当前节点的IP地址,对应tinc-up中的IP地址。
  2. Address:当前节点的公网IP地址,这个地址必须是所有节点能连接到的地址,否则无法建立网络。
  3. 关于Address的地址需要在有公网IP的机器上配置,没有公网IP的机器不配置。
  4. Port:Tinc服务所建立通信的端口号,默认是655,这里我修改成1655。
  5. ConnectTo:当前节点需要连接的节点,这里我需要连接所有节点,所以都写上。

2.6 生成私钥Tinc文件

在/etc/tinc目录下,注意修改网络的名称!执行以下命令:

cd /etc/tinc tincd -n ens33 -K 4096 
  1. -n:指定当前网络的名称,这里我使用的是ens33,请换成你自己的名称。
  2. -K:生成私钥文件,这里我使用的是4096位的密钥,可以根据自己的需求进行调整。
  3. 执行命令后,按两次回车将自动在/etc/tinc/ens33文件夹下新增一个私钥文件:rsa_key.priv,公钥信息则自动添加到了/etc/tinc/ens33/hosts/MasterA文件了。

2.7 创建全部节点的hosts文件

  1. 复制MasterA文件,修改文件名为MasterB、MasterC、NodeA、NodeB、NodeC…等。
  2. 在/etc/tinc/ens33/hosts目录下,创建MasterB、MasterC、NodeA、NodeB、NodeC等节点文件,文件内容和MasterA一样,只是Subnet和Address不同。
  3. 之所以复制创建是因为公钥信息是自动生成的。

例如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 
  1. sudo systemctl start tinc@ens33:启动Tinc服务,这里我使用的是ens33,请换成你自己的名称。
  2. sudo systemctl enable tinc@ens33:设置开机自启动。
  3. 后面是修改开机自启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 无法连接到其他节点,或启动失败

  1. 请检查tinc文件配置是否正确。
  2. 每个节点的tinc-up和tinc.conf 均需要修改为当前节点的配置。
  3. tinc-up文件和tinc-down文件是否有执行权限。
  4. 必须有一台机器有公网IP,进行数据分发。
  5. 请检查防火墙是否开放了Tinc服务的端口。云服务器需要在安全组中开放端口。

4.4 关于windows客户端和安卓等客户端的配置

windows客户端的配置,可以参考以下内容:

  1. Windows 操作系统,通过安装包安装好后,默认会安装到C:\Program Files (x86)\tinc目录。
  2. 右键用管理员权限打开tap-win64/addtap.bat 运行后,会在网络适配器中看到一个新的适配器,将其重命名为我们规划的名称,例如:ens33。
  3. 在tinc安装目录创建ens33文件夹,与Linux中的/etc/tinc/ens33文件夹差不多
  4. 修改tinc-up文件名为tinc-up.bat,修改tinc-down文件名为tinc-down.bat
  5. 管理员身份运行cmd,进入tinc安装目录,执行类似命令tincd.exe --net=ens33,即可启动服务。

安卓客户端的配置,可以参考以下内容:

  1. 安卓客户端第三方下载地址:https://tincapp.pacien.org/
  2. 打开app,点击右上角扳手图标,然后在工具里选择生成节点配置和秘钥
  3. 创建后,会自动在/storage/emulated/0/Android/data/org.pacien.tincapp/files目录下生成跟linux差不多的文件夹
  4. 修改配置文件后,返回Tinc App主页,点击网络名称即可连接该网络。
小讯
上一篇 2025-04-08 23:44
下一篇 2025-01-23 20:31

相关推荐

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