范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

ZeroTier实现内网穿透异地组网

  背景
  公司有几台内网服务器没有公网IP地址,只能在公司局域网内访问,多有不便。通过工具实现内网穿透后,内网服务器上的一些服务如gitlab、jira、Jenkins甚至是SSH就可以实现异地访问。目前较为流行的内网穿透工具有frp、ngrok、zerotier、花生壳等。这两天简单研究了一下zerotier,所以本篇文章主要介绍zerotier。ZeroTier简介
  项目地址:https://github.com/zerotier/ZeroTierOne
  官网:https://www.zerotier.com/
  ZeroTier是一款利用 UDP 打洞来实现内网穿透的工具,相比其他工具成功率更高、部署更简单。其基本工作原理是组建一个虚拟局域网,各个设备(NAS、Linux、Windows、Mac、iOS、Android)安装了客户端、加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问。
  zerotier的一些专有名词:PLANET 行星服务器,Zerotier 官方根服务器,在国外。免费版最大支持25个设备连接。MOON 卫星服务器,私有根服务器,可以利用带有公网IP的云服务器自己搭建,起到代理加速的作用LEAF 网络客户端,连接到根服务器的网络节点,如上述提到的NAS、群晖、Linux、Windows等使用PLANET 行星服务器
  通过Zerotier官方根服务器建立虚拟局域网,优点是在没有自带公网IP的云服务器的情况下也可以异地组网,部署简单快捷,全地球都可以访问;缺点是:① 免费版允许连接的设备有限,最大25台,不过个人或小团队使用的话也够用了;② 数据不安全,毕竟是外国的服务器,一般没什么重要数据的情况下可以使用;③ 受网络波动影响,用网高峰期可能连接不稳定;一、注册ZeroTier服务1.注册账号
  访问https://my.zerotier.com/network,注册账号,注册后登录。
  2.创建网络
  注册后登录到主页,会有一个"Create A Network"的黄色按钮,点击即可创建一个网络,一切保持默认即可。
  创建完成后,主页会显示这个网络,记住这个16位的NETWORK ID,后面会用到。
  二、客户端加入网络1.内网服务器安装客户端
  因为主要就是想内网穿透访到这几台内网服务器,所以这几台服务器都要安装zerotier客户端。zerotier有两种安装方式,一种是最原始方式的编译安装,一种是通过脚本自动安装。下面分别介绍一下这两种方式:方式一:脚本安装
  首次安装的话,推荐这种方式,简单快捷,只要执行以下命令一键安装即可。安装完成后会自动在/var/lib/zerotier-one/下生成相关文件及目录curl -s https://install.zerotier.com | sudo bash  # Linux系统
  其他操作系统:下载地址:https://www.zerotier.com/download/
  方式二:编译安装
  ① 下载源码包
  这种方式稍微有点繁琐,需要安装一些依赖,比如:gcc、cargo。主要适用于zerotier无法加入网络,想卸载重装但卸载不干净的情况。首次安装推荐使用方式一。
  可以先通过Windows下载到本地然后通过SSH工具上传到服务器,再解压。当然如果服务器已经安装git工具就更方便了,可以通过git命令一键克隆源码:git clone https://github.com/zerotier/ZeroTierOne.git
  文件夹内会显示如下文件:
  ② 编译
  进入ZeroTierOne,执行make命令即可make
  执行make时可能会遇到报错"g: error: unrecognized command line option ‘-std=c++17’",是因为编译器不支持c++17,需要升级GCC。
  CentOS默认安装的GCC是4.8.5的版本,可以通过如下方式升级g++,推荐7.3版本。yum install gcc  gcc -v  yum -y install centos-release-scl   # 升级到9.1版本  yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils  scl enable devtoolset-9 bash
  注意:部分软件的编译,9.3.1的高版本可能编译不过,可以将上述命令中的9改为8或7就可以安装激活8.x.x或7.x.x版本的gcc了# 如果是想升级到7.3版本,则使用如下命令 yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils  scl enable devtoolset-7 bash
  安装完gcc 7后,再次执行make命令,可能还会报错"/bin/sh: cargo: command not found"
  zerotier的编译依赖cargo,安装cargo:yum install -y cargo
  再次执行make即可编译通过:
  ③ 启动zerotier-one./zerotier-one -d
  启动后,会自动绑定9993端口,查看9993端口被绑定,即表示启动成功:
  ④ 给zerotier-cli创建软链接
  此种安装方式安装后,zerotier-cli只保存在ZeroTierOne目录中,系统中没有zerotier-cli这个命令,在后续使用zerotier-cli命令查看网络情况时,需要一直在ZeroTierOne文件夹下通过./zerotier-cli的方式执行,多有不便。所以,可以通过创建软链接或是将zerotier-cli文件复制到/usr/local/bin目录下的方式,在全局使用zerotier-cli命令。以下为zerotier-cli创建软链接:chmod +x zerotier-cli  # 增加执行权限 ln -s /var/lib/ZeroTierOne/zerotier-cli /usr/local/bin/zerotier-cli
  注意:创建软链接时,不能使用相对路径,要使用绝对路径,否则在使用zerotier-cli命令时,会报错"bash: /usr/local/bin/zerotier-cli: Too many levels of symbolic links"
  2.客户端加入创建的网络
  客户端分别加入网络,想穿透哪台,哪台就加入。zerotier-cli join 830xxxxx9c49  # 上面第一步创建网络生成的16位ID zerotier-cli status  # 查看网络状态
  客户端加入后,zerotier的Web管理页面就能看到该网络,勾选该网络,表示同意客户端接入
  勾选后,管理端会随机分配一个IP地址给这台客户端,同时也可以自定义一个IP地址。例如我加入了多台内网服务器,并自定义了IP地址和名称:
  3.客户端查看本地服务器网络情况zerotier-cli listnetworks # 如果连接成功,并且管理页面中勾选此客户端,则会返回以下内容 200 listnetworks        200 listnetworks 830xxxxxxxx49 high_wozniak 4a:ce:1d:66:95:9b OK PRIVATE ztqu3hhgt3 10.147.18.122/24
  zerotier-cli客户端服务器加入网络后,相当于在本地虚拟了一块网卡,网卡地址就是虚拟局域网分配给这台客户端的地址:
  4.测试连通性
  例如有两台服务器都安装了客户端,并且都加入了上面创建的网络,客户端A地址是10.147.18.122,客户端B的地址是10.147.18.211,则可以在客户端A所在的服务器上ping客户端B,测试两台机器有没有互通。ping 10.147.18.211  # ping同一虚拟网络下的其他客户端
  网络延迟不到1ms,挺好的。
  5.异地电脑安装客户端
  就像开篇提到的,我的需求是想在家中也可以访问公司的内网服务器上的服务,那么我在家中的电脑也需要安装zerotier客户端,并加入到zerotier网络。这也是这个工具比较麻烦的地方。以我个人电脑为例,我的是Mac电脑(Windows步骤差不多),连接的是手机热点。
  在官网下载、双击安装即可,中间 有什么权限请求的,允许就行了。
  安装完成后,打开zerotier,电脑顶部会有个zerotier的图标,选择加入新网络,输入上面生成的网络ID,加入。
  6.访问其他客户端上的服务
  比如有的服务器上安装了Jira、有的安装了Gitlab,输入zerotier分配该客户端(内网服务器)的虚拟局域网地址,并带上端口号,即可访问。访问Jira
  访问Gitlab
  访问Jenkins
  访问mayfly
  mayfly是一款不错的开源一站式服务器、数据库管理工具,内网穿透到这台服务器后,通过mayfly工具,就相当可以随时随地在网页端、访问其管理的各个内网服务器终端。详细部署过程及用法,可以参照之前分享过的《一站式Linux&数据库管理平台mayfly-go》
  例如:连接到jira服务器中端:
  搭建MOON中转服务器
  鉴于上述提到的zerotier官方行星服务器速度不稳定、数据不安全的弊端,有条件的比如有云服务器的可以自建moon卫星服务器,用于中转加速。我试了一下,感觉没什么区别,速度并没提升多少,可能是我还没有理解到moon的精髓,亦或是姿势不对,所以不过多发表意见,以下只提供教程:一、安装配置zerotier1.下载zerotier
  自建卫星服务器,同样需要安装zerotier,安装方式同客户端安装一致,唯一区别是在云服务器上安装。curl -s https://install.zerotier.com | sudo bash  # Linux系统2.生成认证配置文件
  进入云服务器的zerotier-one文件夹,生成认证配置文件cd /var/lib/zerotier-one/ zerotier-idtool initmoon identity.public > moon.json
  如下图所示,执行上述命令后会生成一个moon.json的配置文件
  3.编辑配置文件,添加公网ip
  编辑moon.json,添加云服务器的公网ip"stableEndpoints": ["180.76.xxx.xxx/9993"]
  其中,180.76.xxx.xxx为云服务器的公网ip,9993为zerotier默认端口(注:云服务器安全组中需开放9993端口,否则客户端连接不上moon )
  4.生成签名文件zerotier-idtool genmoon moon.json # 执行通过后会给出下面的提示,并生成一个.moon结尾的文件 # wrote 0000006a449297b4.moon (signed world with timestamp 1665386844310)
  5.将moon节点加入网络
  在/var/lib/zerotier-one/目录下新建一个moons.d的目录,并将生成的.moon结尾的文件移动到此目录下。mkdir moons.d mv 0000006a449297b4.moon moons.d/6.重启中转服务器的zerotier-onesystemctl restart zerotier-one  # 重启zerotier-one服务二、客户端加入moon1.复制.moon文件到各个客户端
  客户端(内网服务器)的/var/lib/zerotier-one/目录下也新建一个moons.d的目录,并将moon节点的.moon文件复制到此目录下。随后重启zerotier-one服务。systemctl restart zerotier-one  # 重启zerotier-one服务2.查看是否建立连接zerotier-cli listpeers  # 查看是否建立连接
  如果出现moon节点的IP地址,并且结尾显示MOON,则表示内网服务器客户端已加入moon。
  我看了网上很多教程,moon的搭建过程、客户端接入到此就结束了,就没有然后了.......我没觉得有什么不同。因为我尝试过在自建卫星服务器后,把行星服务器上的各个客户端接入都删除,理论上此时应该会自动转到moon作为根服务器,但是此时的moon并没有承担起管理网络、根服务器的职能,无法查看各个客户端的IP地址,各个客户端也就无法相互访问.......很多人提到的中转加速我也没感受到速度有什么变化。也可能是我研究的不够深入,还有什么地方没设置好的缘故,回头再研究研究这个moon。总之只要不删除行星服务器上的各个客户端接入,各个客户端就能正常访问。附:卸载zerotieryum remove zerotier-one -y rm -rf /var/lib/zerotier-one/

球迷调侃要找亚马逊退货CDK,亚马逊客服回复建议直接联系卖家直播吧1月13日讯据footballitalia报道,一位米兰球迷调侃找亚马逊退货德凯特拉雷,亚马逊客服认真回复。米兰去年夏天花费3200万欧元签下比利时中场德凯特拉雷,但是他的表腾讯宣布最多玩14小时!1月9日,腾讯游戏发布寒假暨春节假期前后未成年人游戏限玩通知,通知显示,1月13日15日1月20日27日2月3日5日每日的20时至21时之间未成年人可登录游戏。即寒假期间未成年人可时间的流鲁迅先生说我冒了严寒,回到相隔两千余里,阔别了二十多年的故乡去。岁末,我也冒了严寒,回到了故乡。故乡缓缓的山丘,山丘包围着的村落,村头的古井,还有冬日里午后散漫的白日都没有改变故乡距春节不到两周飞猪相关商品预订量增长超6成平均客单价提升超7成距2023年春节不到两周,全国各地迎来疫情放开后的首个长假,年味儿十足。近日,飞猪发布的2023年春节出游风向标显示,截至目前2023年春节出游预订量同比去年增长超6成。中长线游需春节慢游普洱丨宁洱人是懂美食的来源云南日报普洱市宁洱县不仅风景秀美气候宜人这里的饮食也历经岁月熏陶形成了独特的风味一瓜可做数十肴,一菜可变数十味即是宁洱美食的特性(磨黑烧烤)宁洱美食具有极强的包容性既有汉族的技畅游美丽休闲乡村体验春节特色项目!今天下午请锁定这场活动泡温泉看村晚赏非遗今年春节假期不如来乡村走走一起和家人过个乡村特色年!2023春节广东乡村休闲精品推介暨第二届留住乡念广东美丽休闲乡村短视频征集活动它来了!1月13日(今天)下午1文旅活动福利放送,这个春节去哪玩随着2023年开启全新的篇章,以及学生们陆续放假,郑州文旅市场迎来接待旺季。新年新气象,活动福利多。临近过年,郑州文旅百花齐放,欣欣向荣。正观文化给大家汇总了郑州及周边地区的娱乐活春节来成都解锁潮玩新体验!成都首批8个城市观景台来了,还有元宇宙文旅新场景今年春节,来成都旅游能解锁哪些新玩法新体验?在春熙路打卡IFS爬墙熊猫体验元宇宙中与大熊猫互动合影,在廊桥赏夜游锦江璀璨烟波的同时,和二次元人物来一场美妙的邂逅1月12日,天府新视热闹春节正在回归出行量节节攀升21世纪经济报道记者高江虹北京报道人好多,哈利波特的禁忌之旅要排队两个小时,其他的也是一个半小时。1月12日,粉丝小强第8次踏入北京环球度假区时发现,这次他无法从容地玩主题公园里的还在谈胆固醇色变?高血脂也可以吃蛋黄,血脂升高的真凶另有其人长期以来,我们都对胆固醇闻之色变,不管有没有高血脂,都觉得它不是个好东西。尤其是血脂高的人,连蛋黄都不敢碰,多吃一个就提心吊胆。其实,胆固醇并没有大家以为的那么坏,也不是越少越好。新年将至,担心二次感染?教你一招,补亏虚固正气免复阳保健康大家好,新年即将到来,相信大家都想有个好身体,快乐过年欢喜团聚。可是阳康后,大家免疫力普遍低下,身体很多机能尚未完全恢复。回家途中,人员繁杂,为避免二次感染,今天我给大家推荐一个中
他上赛季还是上港主力,本赛季却连大名单都进不了,曾是国脚上海上港在本赛季中超比赛中,并没有取得让球迷满意的成绩。因为上港在联赛开局两场较量中,并没有取得理想成绩。所以在这种情况下,上港主帅莱科就受到了质疑。莱科饱受质疑,并没有动摇继续重嘴巴周围时不时出现几个水泡,或许不是上火,应注意人体免疫力提高更有助于抵抗外界细菌与病毒免疫力,作为人体防御的第1系统,也是预防疾病以及疾病诱发的第1道防线,可以刺激人体细胞抗氧化能力,针对于外界病毒与细菌增生起到抑制功效。相对中超业余判罚,球迷满头疑问,越位悬案诞生,VAR名存实亡中超第3轮,北京国安10小胜天津津门虎,不过,比赛的唯一一粒进球却充满了争议!第86分钟,张稀哲左路突破,向内施压之后传给边路的张玉宁,张玉宁下底传中,达布罗跟进包抄前点破门。第一2008年八一男篮穆铁去世,墓志铭述其一生,姚明大郅郑海霞泪别华夏民族自古以来就是一个强悍的种族。无论是智力还是体力都可以排在各类人种的前列。因此华夏民族创造了灿烂夺目的文明。但随着工业文明的推进,西方各国的国力已经远超东方文明。他们用卑劣的国乒2大接班人干得漂亮!张继科后继有人,刘国梁看人的眼光真准在WTT常规挑战赛萨格勒布站男单资格赛的比赛中,国乒2大接班人向鹏和林诗栋接连取胜晋级,真是干得漂亮!其中,在男单第3轮资格赛中,向鹏以3比0击败希腊选手康斯坦丁诺普洛斯,林诗栋则拒绝赛季报销!助勇士冲冠,在场狂胜16分,比起普尔科尔更信任你总决赛天王山之战,勇士终结了绿军季后赛输球后不败的记录,绿军在季后赛输球之后的第二场比赛战绩来到了7胜1负,同时这也是绿军首次在本赛季季后赛出现连败的情况。在G5结束之后,勇士主帅从扬言收购苹果到黯然退网,这些年罗永浩带给我们什么?6月12日深夜,一则微博消息为近期原本趋于平静的科技圈掀起了一丝波澜,曾经的首代网红新东方前知名教师锤子科技创始人交个朋友直播间首席主播罗永浩正式宣布全面退网。罗永浩在他所发的最后荷兰来真的,连罚11次共计5500万欧元,苹果终于做出了实质性让步长久以来,苹果以隐私安全为由,只允许通过AppStore下载安装应用,并控制了生态下的支付权限,对内部支付收取30过路费,这种高比例的抽成让苹果赚得盆满钵满,但很多软件开发者却敢怒中国人寿斥资90亿入股云南白药大股东6月14日晚,云南白药发布公告称,公司并列第一大股东云南省国有股权运营管理有限公司(以下简称云南省国有股权公司)引入中国人寿资产管理有限公司增资90亿元。同日,中国人寿官方微信公众国内新势力卖不过国际车企?国内新势力卖不过国际车企?事实上,包括蔚来小鹏在内的造车新势力,打出先落子挪威,再进军欧洲的出海决策,无非考虑到挪威政府大力补贴扶持电动车,充电基础设施铺的多,电动车市占率全球最高政府车企双重补贴拯救卡车市场,卡友会买单吗?卡车之家原创6月9日,山东省发布关于促进商用汽车消费若干措施的通知,豪橫发放1。2亿元商用车消费券刺激市场。山东省的这一大手笔投入真的能对当前遇冷的卡车市场起到起死回生的疗效吗?目