一.介绍
一直以来,我只知道日本某大学开发的某款软件可以在没有TUN/TAP驱动的容器中运行,而且效率还相当一般,直到我后来发现了ZeroTier,这玩意有常规的TUN/TAP模式,也有一个特殊的Network Containers 模式(目前已经改名为ZeroTier SDK——>然后又变成libzt了 ),通过实现一个轻量级的应用层 TCP/IP API 来 hook 现有应用程序的 Socket API,这样可以使现有的程序也能使用 ZeroTier 技术连接其它主机,也是挺牛逼的,不过不清楚是否有兼容性问题,个人感觉效率应该会比某软件的SecureNAT要高不少。
和其它P2P VPN不同的是这个是有个后台来管理维护你的私人网络的,而它的加入网络是通过一串唯一的ID来实现的,它还有Peer和Controller等一些概念,个人根据其在GitHub上开源的内容来看,它的Controller是个API控制端,Peers负责构建它的整个网络底层架构,这里面还有Planet和Leaf两种类型的节点,当Join命令发出时,你的客户端会接入这个网络,并在网络中注册唯一ID,然后根据你Join所选择的ID从Controller拉取网络配置。
二.安装配置
这个主要得看你安装的环境,在正常的支持TUN/TAP的环境下,一切都很简单,官方提供了一键,具体请查看官方网站——>传送门
curl -s 'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61' | gpg --import && \ if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
自动识别是Debian系还是RedHat系,全自动,美滋滋。对于Mac和Windows来说,提供了安装包,手机客户端也都有,甚至还有各种NAS平台的插件包,也是非常方便
之后先在官方管理后台——>传送门 注册账号,然后创建一个Network并为其配置基本的属性,比如分配的IP地址段之类的
左上角的Network ID就是你的网络ID了,在配置完后,在你安装了客户端的机器上运行如下命令
/var/lib/zerotier-one/zerotier-cli join 网络ID
然后返回成功就说明OK了,往下翻上面那个页面,不一会儿下方会出现你的客户端,勾选前方的auth就能允许加入Network,然后你在同一个网络中的各个客户端就能用分配的内网IP通信了
而对于无TUN/TAP支持的环境来说,就可能比较麻烦了,我用的是别人备份的旧版本,新版本的libzt实在是暂时还没搞明白怎么用,如果有谁搞定了请留个言告诉下怎么用
git clone https://notabug.org/bignose/zerotier-one.git make netcon mkdir /var/lib/zerotier-one cp -ra zerotier-* /var/lib/zerotier-one cp libzerotierintercept.so netcon/liblwip.so /var/lib/zerotier-one /var/lib/zerotier-one/zerotier-netcon-service -d /var/lib/zerotier-one/zerotier-cli join 网络ID ZT_NC_NETWORK=/var/lib/zerotier-one/nc_网络ID LD_PRELOAD=/var/lib/zerotier-one/libzerotierintercept.so /bin/bash
最后那条是在新的bash进程中hook新进程,从而实现通过ZeroTier通信,最大的问题还是这个是1.1.4版本的,目前最新版本已经是1.2.4了,所以也不知道有啥bug,
文章评论
华硕ac68u路由器该选哪个版本的安装呢?谢谢回复
@xiaoyu 这个的话可能需要装entware或者找带zerotier的固件,可以参考下面两篇文章
1. https://www.heartnn.com/2018/04/03/install-and-config-zerotier-for-syncthing/
2. http://koolshare.cn/forum.php?mod=viewthread&tid=134930
哇,这个特别简便。。谢谢
可是。。感觉还是在一个大内网里面。。可以一个客户端 用另一客户端的 网络吗(就像vpn一样)?
就比如一端在国内 一端在国外 可是都没有公网ip, 有没有可能国内端通过这个软件用国外端的网?或者有没有其他的软件支持?恳求赐教一波~
@dudu 要这样的话需要配转发,不过你要啥想像vpn一样直接用vpn不就行了吗...可以考虑下wireguard
@dudu 尝试在国外方pc上搭建酸酸乳?
@Yefori 额。。。是这么个意思。。但是没有公网IP。。。。
@dudu 没有公网IP的话可以考虑搞一个vps装frp,这样比较划算一些。
zerotier 免费版现在速度非常慢,可能是用的人多了。。
@justphantom p2p理论上不看你用的人多少,除非你是不能成功打洞的用户
@Senra 这个还要F Q才能用?
手机组网访问速度非常慢,大神知道什么原因吗?
你好,我用了这个以后只能同一WIFI下使用,一旦切换了WiFi就不好用了/(ㄒoㄒ)/~~有解决问题的相关经验吗?
用来访问家里的plex,效果还不错,同为移动网可以吃满上行。
就是手机一连上电信的wifi就当场失联
楼主有没有解决在没有tun服务的系统上使用最新的版本?
移动数据不能p2p怎么办?