Tinc Vpn部署

一基础

1.1.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-do

  • 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:服务器私钥的位置.

二 规划准备

名称

详情

备注

服务端

配置公网地址
端口:12345

虚拟地址:192.168.0.1

虚拟网卡名称:dock

服务端名称;server

客户端

端口:955

虚拟地址:192.168.0.2

虚拟网卡名称:dock

客户端名称:client01

三 服务端部署

3.1.tinc在各个发行版的仓库中都可以找到

例如CentOS系统就可以通过下面的命令安装:

#centos
yum -y install tinc

#Debian/Ubuntu:
apt-get install tinc

#macOS:
brew install tinc --devel

3.2 创建目录

mkdir -p /etc/tinc/dock/hosts
cd /etc/tinc/dock

3.3 主配置 tinc.conf

cat >/etc/tinc/dock/tinc.conf << "EOF"
Name=dockserver
Interface=dock
AddressFamily = ipv4
Mode=switch
TCPOnly=yes
Port=12345
PrivateKeyFile=/etc/tinc/dock/rsa_key.priv
EOF

3.4 配置 启动文件 tinc-up

cat > /etc/tinc/dock/tinc-up << "EOF"
#!/bin/sh
ifconfig $INTERFACE 192.168.0.1 netmask 255.255.255.0
EOF

3.5 配置关闭文件tinc-down

cat > /etc/tinc/dock/tinc-down << "EOF"
#!/bin/sh
ifconfig $INTERFACE down
EOF

3.6 配置网络信息 Service 配置 dockserver

其中 Address 为服务端的出口公网 IP 地址

cat >/etc/tinc/dock/hosts/dockserver << "EOF"
Compression=9
Subnet=192.168.0.1/32
Address=47.93.25.37
Port=54321
EOF

3.7 添加文件执行权限

chmod 755 /etc/tinc/dock/{tinc-down,tinc-up}

3.8 服务端生成 key

dock就是配置文件tinc.cnf参数Interface=dock,也就是虚拟网卡名称

cd /etc/tinc/
tincd -n dock -K
Generating 2048 bits keys:
...............................................+++ p
............................................................+++ q
Done.
Please enter a file to save private RSA key to [/etc/tinc/vpn/rsa_key.priv]:
Please enter a file to save public RSA key to [/etc/tinc/vpn/hosts/vpnserver]:

四 客户端配置-(跟服务端前几个步骤一样)

4.1 tinc在各个发行版的仓库中都可以找到

例如CentOS系统就可以通过下面的命令安装:

#centos
yum -y install tinc

#Debian/Ubuntu:
sudo add-apt-repository universe
sudo apt update
apt-get install tinc

#macOS:
brew install tinc --devel

#redhat 8
sudo curl -O https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install -y  epel-release-latest-8.noarch.rpm
sudo dnf repolist
sudo dnf -y install tinc

4.2 创建目录

mkdir -p /etc/tinc/dock/hosts
cd /etc/tinc/dock

4.3 主配置 tinc.conf-(注意这里有不一样的配置)

cat >/etc/tinc/dock/tinc.conf << "EOF"
Name=client01
ConnectTo=dockserver
Interface=dock
AddressFamily = ipv4
Mode=switch
TCPOnly=yes
PrivateKeyFile=/etc/tinc/dock/rsa_key.priv
EOF

4.4 配置 启动文件 tinc-up-(这里地址不一样)

cat > /etc/tinc/dock/tinc-up << "EOF"
#!/bin/sh
ifconfig $INTERFACE 192.168.0.2 netmask 255.255.255.0
EOF

4.5 配置关闭文件tinc-down

cat > /etc/tinc/dock/tinc-down << "EOF"
#!/bin/sh
ifconfig $INTERFACE down
EOF

4.6 配置网络信息client01-(配置不一样)

cat > /etc/tinc/dock/hosts/client01 << "EOF"
Compression=9
Subnet=192.168.0.2/32
EOF

4.7 添加文件执行权限

chmod 755 /etc/tinc/dock/{tinc-down,tinc-up}

4.8 核心区别来了服务端的 dockserver 拷贝到客户端

#服务端操作
mkdir -p /etc/tinc/dock/hosts
scp root@47.93.25.37:/etc/tinc/dock/hosts/dockserver /etc/tinc/dock/hosts/dockserver

4.9 客户端生成 key

dock就是配置文件tinc.cnf参数Interface=dock,也就是虚拟网卡名称

如果生成过 记得把密钥删除重新执行以下命令
rm /etc/tinc/dock/rsa_key.priv

cd /etc/tinc/
#这里是大写K
tincd -n dock -K
Generating 2048 bits keys:
...............................................+++ p
............................................................+++ q
Done.
Please enter a file to save private RSA key to [/etc/tinc/vpn/rsa_key.priv]:
Please enter a file to save public RSA key to [/etc/tinc/vpn/hosts/vpnserver]:

5.0 把客户端生成好的配置文件拷贝到服务端

#客户端操作
scp /etc/tinc/dock/hosts/client01 root@47.93.25.37:/etc/tinc/dock/hosts/client01

五 启动关闭和测试

5.1 tinc服务启动和关闭(客户端和服务端一致)

#启动tinc vpn
tincd -n dock

#关闭tinc vpn
tincd -n dock -k

5.2 启动后测试-查看虚拟网卡是否生成/查看服务是否存在

ifconfig
dock      Link encap:Ethernet  HWaddr c2:f1:b3:6d:7a:f2
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:950 (950.0 B)  TX bytes:280 (280.0 B)

netstat -tnlp|grep tinc

5.3 测试连通性

#服务端操作
ping 192.168.0.2

#客户端端操作
ping 192.168.0.1

5.4 启动测试命令

客户端为 192.168.0.2 ,如果不互通可以把 tincd 启动在前台查看日志

tincd -n dock -D -d 5

1