主要分为Linux(Debian/Ubuntu)和Windows两者来进行记录
WIP
整体结构
主要分为Linux(Debian/Ubuntu)和Windows两者来进行记录
本次使用两台服务器组网
一台拥有公网IPv6地址的绿联NAS作为服务器
一台Windows 11 PC作为普通节点
主要分为Linux(Debian/Ubuntu)和Windows两者来进行记录
本次使用两台服务器组网
一台拥有公网IPv6地址的绿联NAS作为服务器
一台Windows 11 PC作为普通节点
graph LR Internet((Internet)) subgraph Public["🐧服务器节点"] A["名称:kaguya_nas 公网IP: 240b:10:0000:: 内网IP: 10.6.0.1 tinc监听端口: 10086"] end subgraph Private["🪟普通节点"] B["名称:node1 公网IP: 无 内网IP: 10.6.0.2"] end B -- "TCP/UDP 10086" --> Internet Internet -- "TCP/UDP 10086" --> A A -. "tinc VPN 隧道 10.6.0.1 ↔ 10.6.0.2" .- B
安装
Debian/Ubuntu
由于发行版源的收录和版本可能会有问题,采用限制最小的编译安装方式
下载源代码
从Tinc官方Github镜像仓库克隆源代码到Linux主机
git clone https://github.com/gsliepen/tinc.git
cd tinc
git checkout 1.1
截至笔者操作时,官方的默认分支为 1.1, 不进行checkout默认也是这个分支
编译环境准备
安装编译所需依赖
sudo apt install meson ninja-build pkg-config build-essential libssl-dev libncurses-dev libreadline-dev zlib1g-dev liblzo2-dev liblz4-dev texinfo diffutils procps socat netcat-openbsd
进行编译配置
meson setup builddir
编译安装
编译
meson compile -C builddir
安装
sudo meson install -C builddir
准备配置目录和文件
在合适的位置创建一个放置配置文件的目录
本文使用了
/usr/local/etc/tinc/myvpn文件夹
以下针对Linux主机的Tinc配置操作均在此文件夹下进行
(附)卸载方法
在tinc文件夹中执行卸载命令
sudo ninja -C builddir uninstall
Windows
本文使用的是WIndows 11,如有其他系统,部分安装流程需按照官方说明酌情调整
下载并安装Tinc
从Tinc官网下载Tinc安装程序
安装上述步骤下载的Tinc程序
默认安装位置应在
C:\Program Files\tinc
安装虚拟网卡
进入虚拟网卡目录并安装一个虚拟网卡
cd "C:\Program Files\tinc\tap-win64"
tapinstall.exe install OemWin2k.inf tap0901
正常的命令执行结果如下
Device node created. Install is complete when drivers are installed...
Updating drivers for tap0901 from C:\Program Files\tinc\tap-win64\OemWin2k.inf.
Drivers installed successfully.
修改虚拟网卡名称(可选)
前往网络与共享中心的适配器设置页面确认上述过程安装的虚拟网卡的默认名称
适配器设置页面进入步骤: 控制面板 -> 网络和 Internet -> 网络和共享中心 -> 更改适配器设置
从TAP-Win32 Adapter V9类型的适配器中找出刚才安装的虚拟网卡
如下图所示,找到安装的虚拟网卡
如果无法确认,可以在安装前确认一遍网卡列表,安装后再次确认一遍网卡列表,找出新安装的虚拟网卡

执行命令,修改默认的“以太网 2”(或者其他的什么名字,以确认结果为准)为易记的”TINC”
当然,也可以通过右键重命名的方式修改,效果是一样的
netsh interface set interface name="以太网 2" newname="TINC"
命令执行后再次确认,可注意到网卡名已经被修改

准备配置目录和文件
在合适的位置创建一个放置配置文件的目录
本文使用了` C:\Users\11363\Desktop\myvpn `文件夹
以下针对Windows主机的Tinc配置操作均在此文件夹下进行
(附)虚拟网卡卸载方法
在tap-win64目录下执行下面的命令确认需要卸载虚拟网卡的ID
tapinstall.exe hwids tap0901
得到的结果如下,找到目标网卡的ID为ROOT\NET\0002
C:\Program Files\tinc\tap-win64>tapinstall.exe hwids tap0901
ROOT\NET\0002
Name: TAP-Win32 Adapter V9
Hardware IDs:
tap0901
1 matching device(s) found.
执行下面的命令卸载该虚拟网卡
tapinstall.exe remove @ROOT\NET\0002
得到的结果如下,虚拟网卡成功被卸载
C:\Program Files\tinc\tap-win64>tapinstall.exe remove @ROOT\NET\0002
ROOT\NET\0002 : Removed
1 device(s) were removed.
配置连接
服务器端(Debian/Ubuntu)
此处的配置文件目录为
/usr/local/etc/tinc/myvpn
生成密钥对
执行下面的命令生成公钥和私钥
sudo /usr/local/sbin/tinc -n myvpn generate-ed25519-keys
编写tinc.conf配置文件
编辑tinc.conf配置文件为下列内容
Name = kaguya_nas
Port = 10086
Name字段的值为本节点的名称
Port字段的值为开放的端口(若无公网IP或无需接受其他节点的连接,则本字段不需要)
编写节点host文件
普通节点(Windows)
此处的配置文件目录为
C:\Users\11363\Desktop\myvpn
生成密钥对
执行下面的命令生成公钥和私钥
tinc.exe -n myvpn -c C:\Users\你的用户名\Desktop\myvpn generate-ed25519-keys
编写tinc.conf配置文件
编辑tinc.conf配置文件为下列内容
Name = node1
Port = 10086
Name字段的值为本节点的名称
Port字段的值为开放的端口(若无公网IP或无需接受其他节点的连接,则本字段不需要)
编写节点host文件
启动连接
服务器端
此处所指的“服务器端”,指拥有独立IP地址并可以接收外部连接的节点