tincVPN简明用法

2024-09-12
1.0.0
2774字, 约8分钟

本文主要介绍tincVPN简明用法,以便快速创建虚拟专用网络(VPN)。

一、背景

出门在外,随身携带的笔记本电脑如何访问家里的台式电脑,以获取其中一份重要的文件?

互联网上不同地点、不同网络环境中的设备,通过隧道和加密技术创建点对点专用网络,这就是VPN做的事。

tincVPNP2P VPN的一种实现方式,它具有开源(GNU)、加密压缩传输、低延迟、高带宽、可扩展等特点。

本文旨在帮助大家快速构建VPN网络,因而选中它的主要原因是:小众、小巧、安装简单、全平台适配。

二、网络拓扑

  • 图中所有设备都已经接入互联网,其中云服务器提供的公网IP可以被笔记本电脑台式电脑访问
  • 云服务器建议选择阿里云腾讯云等大型云服务提供商,购买最小配置的服务器即可
  • 公网域名为可选配置,如果没有申请和购买域名,填写IP地址即可
  • HahaVPN为专用网络名称,网络中设备掩码地址为255.255.255.0
  • 图中的公网IP和域名都非真实地址,实际组网中替换为真实地址即可

tincVPN网络拓扑

三、安装

1. Windows

  • 官网下载windows客户端后安装
  • 打开命令提示符(管理员),执行下述指令
cd /d "install_dir"     :: 进入安装目录
.\tap-win64\addtap.bat  :: 安装TAP-Win32网卡

2. Linux

yum install tinc # for redhat系
apt install tinc # for debian系

3. Mac

# 由于没有环境,未测试
brew install tinc --devel
brew cask install tuntap

四、配置

1. 目录结构

/etc/tinc/      # 此处为linux目录,windows为安装目录
└── HahaVPN/         # VPN网络名称, 网络内所有节点VPN名称需要一致
    ├── rsa_key.priv     # 节点私钥
    ├── tinc.conf        # 节点配置
    ├── tinc-up          # 节点启动脚本,Window平台不需要提供,配置TAP-Win32网卡即可
    ├── tinc-down        # 节点停止脚本,Window平台不需要提供,配置TAP-Win32网卡即可
    │
    └── hosts/           # 网络内节点配置
         ├── master_100     # 主节点,从master_100节点拷贝
         ├── slave_110      # 从节点1,从slave_110节点拷贝
         └── slave_120      # 从节点2,从slave_120节点拷贝

2. 启动脚本tinc-up

# IP地址不同节点按实际填写
CMD> cat tinc-up
#!/bin/bash
ifconfig $INTERFACE 192.168.10.xxx netmask 255.255.255.0

CMD> chmod 755 tinc-up

3. 停止脚本tinc-down

CMD> cat tinc-down
#!/bin/bash
ifconfig $INTERFACE down

CMD> chmod 755 tinc-down

4. 虚拟网卡TAP-Win32

  • Window平台不需要提供tinc-uptinc-down启停脚本,而要配置虚拟网卡TAP-Win32
  • 控制面板中打开更改适配器设置界面,设置网卡名称为HahaVPN
  • 如果网卡名称与虚拟网络名称不一致,需要额外在tinc.conf中指定Interface = xxxxx配置
  • 按需配置网卡地址: 192.168.10.xxx 掩码: 255.255.255.0

5. 主节点配置

# 指定节点名称
CMD> cat tinc.conf
Name = master_100

# 指定主节点公网地址和当前节点地址
CMD> cat hosts/master_100
Address=vpn.haha.com  # 或: 68.178.204.6  # 主节点独有
Subnet=192.168.10.100/32

# 生成密钥,会生成私钥文件,并在tinc.conf中指定私钥文件、在host/master_100中更新公钥
CMD> tincd -n HahaVPN -K4096

# 重要:需要将 主节点中 hosts/master_100 拷贝至 所有从节点 hosts 目录

6. 从节点配置

# 指定节点名称
CMD> cat tinc.conf
Name = slave_110
ConnectTo = master_100

# 指定主节点地址和当前节点地址
CMD> cat hosts/slave_110
Subnet=192.168.10.120/32

# 生成密钥,会生成私钥文件,并在tinc.conf中指定私钥文件、在host/slave_110中更新公钥
CMD> tincd -n HahaVPN -K4096   # for linux
CMD> .\tincd.exe -n HahaVPN -K4096  # for windows, 打开管理员cmd, 进入安装目录后(cd /d dir), 执行

# 重要:需要将 从节点中 hosts/slave_110 拷贝至 主节点 hosts 目录

五、启停管理

  • 一般先启动主节点,再启动从节点
  • 由于tinc可以管理多个虚拟网络,因而主服务启动虚拟网络启动是分开执行的

1. Linux


## 启动
systemctl start tinc          # 启动主服务
systemctl start tinc@HahaVPN  # 启动指定虚拟网络
## 停止
systemctl stop tinc
systemctl stop tinc@HahaVPN
## 开机自启
systemctl enable tinc
systemctl enable tinc@HahaVPN

2. Windows

:: 打开管理员cmd, 使用绝对路径执行
:: 启动 (自动部署为服务)
CMD> "%install dir%\tincd.exe" -n HahaVPN

:: 停止
CMD> "%install dir%\tincd.exe" -n HahaVPN -k

:: 开机自启
1. 打开windows中服务管理, 找到 "tinc.HahaVPN"
2. 调整"常规 -> 启动类型 -> 自动" 
3. 调整"恢复 -> 第x次失败 -> 重新启动服务", "恢复 -> 在此时间后重新启动服务 -> 5分钟"
4. 应用

3. 连通测试

# 三台设备互ping,ping通即可
ping 192.168.10.100
ping 192.168.10.110
ping 192.168.10.120

参考链接


上一篇: Docker简明用法

Comments

Contents