Skip to content

天楚锐齿

人工智能 云计算 大数据 物联网 IT 通信 嵌入式

天楚锐齿

  • 下载
  • 物联网
  • 云计算
  • 大数据
  • 人工智能
  • Linux&Android
  • 网络
  • 通信
  • 嵌入式
  • 杂七杂八

使用tinc实现网状网VPN两两通信(类似TeamViewer方式)

2021-04-14
    Tinc可以解决带宽不足或是中心服务器位置偏远等问题,因为一旦组成VPN后节点间的通信尽可能的不通过中心服务器,而是点对点通信。这一切的实现只需要一个具有公网IP(即使是动态IP)的中心服务器即可。
服务端(必须具有公网IP):
$ sudo yum install epel-release
$ sudo yum install tinc
后者:
$ sudo apt-get install tinc
建立配置文件目录:
$ sudo mkdir /etc/tinc/
这里的MAXSHU为网络名,可以多个,后面客户端就是接入该网络,tincd启动时带-n参数指定使用哪个网络:
$ sudo mkdir /etc/tinc/MAXSHU
用来保存该网络下的主机配置:
$ sudo mkdir /etc/tinc/MAXSHU/hosts
$ cd /etc/tinc/MAXSHU
生成密钥文件:
$ sudo tincd -n MAXSHU -K
Please enter a file to save private RSA key to [/etc/tinc/MAXSHU/rsa_key.priv]: 回车
Please enter a file to save public RSA key to [/etc/tinc/MAXSHU/hosts/MAXSHU]: /etc/tinc/MAXSHU/hosts/rsa_key_MAXSHU.pub
$ sudo cat rsa_key.priv
$ sudo cat hosts/rsa_key_MAXSHU.pub
增加配置文件:
$ sudo vi tinc.conf
Name = MAXSHU
注意下面的Address必须是公网IP地址,subnet地址必须是具体的ip地址(由该地址所在网络组成一个单独的VPN网络,服务端和客户端都在该网段),掩码必须32位,不能是子网。
$ sudo vi hosts/MAXSHU
Address = 112.74.xxx.yyy
Subnet = 10.101.0.1/32
Port = 655
TCPonly = yes
PublicKeyFile = /etc/tinc/MAXSHU/hosts/rsa_key_MAXSHU.pub
增加脚本,注意地址和上面的Subnet一致:
$ sudo vi tinc-up
#!/bin/sh
ifconfig $INTERFACE 10.101.0.1 netmask 255.255.255.0
$ sudo vi tinc-down
#!/bin/sh
ifconfig $INTERFACE down
$ sudo chmod +x tinc-*
启动(注意,必须把客户端hosts目录下的172_xxx这类配置文件和rsa_key_172_xxx.pub拷贝到本地的/etc/tinc/MAXSHU/hosts/目录下,如果是windows客户端,记得修改拷贝过来的172_xxx文件的PublicKeyFile的目录为linux格式):
$ sudo systemctl start tinc
$ sudo systemctl status tinc
$ sudo systemctl enable tinc
老版本启动:
$ sudo vi /etc/tinc/nets.boot
MAXSHU
$ sudo systemctl start tinc@MAXSHU
$ sudo systemctl status tinc@MAXSHU
$ sudo systemctl enable tinc@MAXSHU
有新客户端加入时,把客户端配置文件拷贝到服务端后,服务端不需要重启。
客户端Linux:
$ sudo yum install epel-release
$ sudo yum install tinc
或者:
$ sudo apt-get install tinc
建立配置文件目录:
$ sudo mkdir /etc/tinc/
这里的MAXSHU为即将接入的服务端网络名,后面客户端就是接入该网络,tincd启动时带-n参数指定使用哪个网络:
$ sudo mkdir /etc/tinc/MAXSHU
用来保存该网络下的主机配置:
$ sudo mkdir /etc/tinc/MAXSHU/hosts
$ cd /etc/tinc/MAXSHU
生成密钥文件:
$ sudo tincd -n MAXSHU -K
Please enter a file to save private RSA key to [/etc/tinc/MAXSHU/rsa_key.priv]: 回车
Please enter a file to save public RSA key to [/etc/tinc/MAXSHU/host/MAXSHU]: /etc/tinc/MAXSHU/hosts/rsa_key_172_18_1_15__10_101_0_2.pub
$ sudo cat rsa_key.priv
$ sudo cat hosts/rsa_key_172_18_1_15__10_101_0_2.pub
增加配置文件:
$ sudo vi tinc.conf
Name = 172_18_1_15__10_101_0_2
ConnectTo = MAXSHU
$ sudo vi hosts/172_18_1_15__10_101_0_2
Subnet = 10.101.0.2/32
Port = 655
TCPonly = yes
PublicKeyFile = /etc/tinc/MAXSHU/hosts/rsa_key_172_18_1_15__10_101_0_2.pub
增加脚本,注意地址和上面的Subnet一致:
$ sudo vi tinc-up
#!/bin/sh
ifconfig $INTERFACE 10.101.0.2 netmask 255.255.255.0
$ sudo vi tinc-down
#!/bin/sh
ifconfig $INTERFACE down
$ sudo chmod +x tinc-*
启动(注意,必须把服务端hosts目录下的MAXSHU文件和rsa_key_MAXSHU.pub拷贝到本地的/etc/tinc/MAXSHU/hosts/目录下):
$ sudo systemctl start tinc@MAXSHU
$ sudo systemctl status tinc@MAXSHU
$ sudo systemctl enable tinc@MAXSHU
老版本启动:
$ sudo vi /etc/tinc/nets.boot
MAXSHU
$ sudo systemctl start tinc@MAXSHU
$ sudo systemctl status tinc@MAXSHU
$ sudo systemctl enable tinc@MAXSHU
客户端Windows:
下载客户端:https://www.tinc-vpn.org/packages/windows/tinc-1.0.36-install.exe
进入安装后的目录:C:\Program Files (x86)\tinc\
然后类似linux下操作:
建立C:\Program Files (x86)\tinc\MAXSHU\ 和 C:\Program Files (x86)\tinc\MAXSHU\hosts\ 目录。
以管理员方式在DOS下生成密钥:
> cd C:\Program Files (x86)\tinc\MAXSHU
>..\tincd.exe -n MAXSHU -K
Please enter a file to save private RSA key to [C:\Program Files (x86)\tinc/MAXSHU/rsa_key.priv]: 回车
Please enter a file to save public RSA key to [C:\Program Files (x86)\tinc/MAXSHU/hosts/maxshu_notebook__10_101_0_3]: C:\Program Files (x86)\tinc/MAXSHU/hosts/rsa_key_maxshu_notebook__10_101_0_3.pub
在C:\Program Files (x86)\tinc\MAXSHU\ 目录建立 tinc.conf 文件,内容如下:
Name = maxshu_notebook__10_101_0_3
Interface = tincItf
ConnectTo = MAXSHU
在C:\Program Files (x86)\tinc\MAXSHU\hosts\ 目录建立 maxshu_notebook__10_101_0_3 文件,内容如下:
Subnet = 10.101.0.3/32
Port = 655
TCPonly = yes
PublicKeyFile = C:\Program Files (x86)\tinc/MAXSHU\hosts\rsa_key_maxshu_notebook__10_101_0_3.pub
建立tap设备:
进入 C:\Program Files (x86)\tinc\tap-win64\ 目录,以管理员方式运行 addtap.bat 批处理文件,成功后在控制面板的网络连接能看到多了一个”TAP-Win32 Adapter V9″类型的网卡。
修改上面网卡的名称为tinc.conf里面的Interface名称tincItf。
然后右键网卡,在弹出的属性里面设置TCP/IP V4的地址为maxshu_notebook__10_101_0_3里面Subnet定义的ip地址和掩码(注意windows掩码不能是32位了,可以24位,网关和DNS可以留空)。
启动(注意,必须把服务端hosts目录下的MAXSHU文件和rsa_key_MAXSHU.pub拷贝到本地的C:\Program Files (x86)\tinc\MAXSHU\hosts\目录下):
管理员方式在DOS下执行:
> cd C:\Program Files (x86)\tinc\
> tincd.exe -n MAXSHU
会自动生成一个tinc.MAXSHU服务,任务管理器入口可以看到。
测试:
相互能ping通。
> ping 10.101.0.1
> ping 10.101.0.2
> ping 10.101.0.3
1,357次阅读

Post navigation

前一篇:

四路NV12(YUV420SP)的帧拼接成一个NV12的帧

后一篇:

ARM64汇编、堆栈回溯、panic时回溯函数调用

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

个人介绍

需要么,有事情这里找联系方式:关于天楚锐齿

=== 美女同欣赏,好酒共品尝 ===

微信扫描二维码赞赏该文章:

扫描二维码分享该文章:

分类目录

  • Linux&Android (79)
  • Uncategorized (1)
  • 下载 (28)
  • 云计算 (37)
  • 人工智能 (8)
  • 大数据 (24)
  • 嵌入式 (34)
  • 杂七杂八 (34)
  • 物联网 (59)
  • 网络 (23)
  • 通信 (21)

文章归档

近期文章

  • 使用Python渲染OpenGL的.obj和.mtl文件
  • 用LVGL图形库绘制二维码
  • Android使用Messenger和SharedMemory实现跨app的海量数据传输
  • CAN信号的c语言解析代码
  • QT qml下DBus的使用例子

近期评论

  • 硕发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • maxshu发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • Ambition发表在《使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序》
  • maxshu发表在《Android9下用ethernet 的Tether模式来做路由器功能》

阅读量

  • 使用Android的HIDL+AIDL方式编写从HAL层到APP层的程序 - 16,804次阅读
  • 卸载深信服Ingress、SecurityDesktop客户端 - 12,078次阅读
  • 车机技术之Android Automotive - 6,661次阅读
  • 车机技术之车规级Linux-Automotive Grade Linux(AGL) - 5,857次阅读
  • Linux策略路由及iptables mangle、ip rule、ip route关系及一种Network is unreachable错误 - 5,709次阅读
  • 在Android9下用ndk编译vSomeIP和CommonAPI以及使用例子 - 5,658次阅读
  • linux下的unbound DNS服务器设置详解 - 5,600次阅读
  • linux的tee命令导致ssh客户端下的shell卡住不动 - 4,998次阅读
  • 车机技术之360°全景影像(环视)系统 - 4,896次阅读
  • libwebp(处理webp图像)的安装和使用 - 4,749次阅读

功能

  • 文章RSS
  • 评论RSS

联系方式

地址
深圳市科技园

时间
周一至周五:  9:00~12:00,14:00~18:00
周六和周日:10:00~12:00

标签

android AT命令 centos Hadoop hdfs ip ipv6 kickstart linux mapreduce mini6410 modem OAuth openstack os python socket ssh uboot 内核 协议 安装 嵌入式 性能 报表 授权 操作系统 数据 数据库 月报 模型 汽车 测试 深信服 深度学习 源代码 神经网络 统计 编译 网络 脚本 虚拟机 调制解调器 车机 金融
© 2023 天楚锐齿