×

内网穿透(组网)成功率更高、部署更简单

hqy hqy 发表于2024-12-03 18:47:25 浏览9 评论0

抢沙发发表评论



背景


公司有服务器,或者公司的电脑配置比较自己家里的笔记本高,如果要配置外网穿透,就太麻烦,而且也不安全(公司内网被黑了,可能还要你担责)。局域网组网就相对来说既简单,又安全好多。

ZeroTier是一款利用 UDP 打洞来实现内网穿透的工具,相比其他工具成功率更高、部署更简单。其基本工作原理是组建一个虚拟局域网,各个设备(NAS、LinuxWindows、Mac、iOSAndroid)安装了客户端、加入到这个虚拟局域网后,就会自动分配一个IP,从而实现局域网内各个设备及服务的相互访问。

zerotier的一些专有名词:

  • • PLANET 行星服务器,Zerotier 官方根服务器,在国外。免费版最大支持25个设备连接。

  • • MOON 卫星服务器,私有根服务器,可以利用带有公网IP云服务器自己搭建,起到代理加速的作用

  • • LEAF 网络客户端,连接到根服务器的网络节点,如上述提到的NAS、群晖、Linux、Windows等

使用PLANET 行星服务器

通过Zerotier官方根服务器建立虚拟局域网,优点是在没有自带公网IP的云服务器的情况下也可以异地组网,部署简单快捷,全地球都可以访问;缺点是:① 免费版允许连接的设备有限,最大25台,不过个人或小团队使用的话也够用了;② 数据不安全,毕竟是外国的服务器,一般没什么重要数据的情况下可以使用;③ 受网络波动影响,用网高峰期可能连接不稳定;

一、注册ZeroTier服务

1.注册账号

访问my.zerotier.com/network[1],注册账号,注册后登录。

image-20230802185558514

2.创建网络

注册后登录到主页,会有一个“Create A Network”的黄色按钮,点击即可创建一个网络,一切保持默认即可。创建完成后,主页会显示这个网络,记住这个16位的NETWORK ID,后面会用到。

image-20230802185341198

二、客户端加入网络

1.内网服务器安装客户端

因为主要就是想内网穿透访到这几台内网服务器,所以这几台服务器都要安装zerotier客户端。zerotier有两种安装方式,一种是最原始方式的编译安装,一种是通过脚本自动安装。下面分别介绍一下这两种方式:

首次安装的话,推荐这种方式,简单快捷,只要执行以下命令一键安装即可。安装完成后会自动在/var/lib/zerotier-one/下生成相关文件及目录

代码语言:javascript
复制
curl -s https://install.zerotier.com | sudo bash  # Linux系统

其他操作系统:下载地址:www.zerotier.com/download/[2]

代码语言:javascript
复制
(base) xj@xjtest:~$ cd /tmp(base) xj@xjtest:/tmp$ curl -s https://install.zerotier.com | sudo bash[sudo] password for xj: *** ZeroTier Service Quick Install for Unix-like Systems*** Tested OSes / distributions:***   MacOS (10.13+) (just installs ZeroTier One.pkg)***   Debian Linux (7+)***   RedHat/CentOS Linux (6+)***   Fedora Linux (16+)***   SuSE Linux (12+)***   Mint Linux (18+)*** Supported architectures vary by OS / distribution. We try to support*** every system architecture supported by the target.*** Please report problems to contact@zerotier.com and we will try to fix.*** Detecting Linux Distribution

2.客户端加入创建的网络

客户端分别加入网络,想穿透哪台,哪台就加入。

代码语言:javascript
复制
sudo zerotier-cli join 9f77fc393e4f9c09  # 上面第一步创建网络生成的16位IDsudo zerotier-cli status  # 查看网络状态

客户端加入后,zerotier的Web管理页面就能看到该网络,勾选该网络,表示同意客户端接入

image-20230911194221723

3.客户端查看本地服务器网络情况

如果连接成功,并且管理页面中勾选此客户端,则会返回以下内容

代码语言:javascript
复制
(base) xj@xjtest:/tmp$ sudo zerotier-cli listnetworks200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>200 listnetworks 9f77fc393e4f9c09 king 0a:a4:99:64:81:29 OK PRIVATE ztuze3hjjx 10.147.20.17/24

zerotier-cli客户端服务器加入网络后,相当于在本地虚拟了一块网卡,网卡地址就是虚拟局域网分配给这台客户端的地址

代码语言:javascript
复制
(base) xj@xjtest:/tmp$ ip a47: ztuze3hjjx: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 2800 qdisc fq_codel state UNKNOWN group default qlen 1000
    link/ether 0a:a4:99:64:81:29 brd ff:ff:ff:ff:ff:ff
    inet 10.147.20.17/24 brd 10.147.20.255 scope global ztuze3hjjx
       valid_lft forever preferred_lft forever
    inet6 fe80::8a4:99ff:fe64:8129/64 scope link 
       valid_lft forever preferred_lft forever

4.异地电脑安装客户端

5.测试连通性

如有两台服务器都安装了客户端,并且都加入了上面创建的网络,客户端A地址是10.147.18.122,客户端B的地址是10.147.18.211,则可以在客户端A所在的服务器上ping客户端B,测试两台机器有没有互通。

代码语言:javascript
复制
(base) xj@xjpc:/tmp$ ping 10.147.20.17PING 10.147.20.17 (10.147.20.17) 56(84) bytes of data.64 bytes from 10.147.20.17: icmp_seq=1 ttl=64 time=6.34 ms64 bytes from 10.147.20.17: icmp_seq=2 ttl=64 time=3.01 ms64 bytes from 10.147.20.17: icmp_seq=3 ttl=64 time=3.69 ms64 bytes from 10.147.20.17: icmp_seq=4 ttl=64 time=28.1 ms64 bytes from 10.147.20.17: icmp_seq=5 ttl=64 time=7.48 ms64 bytes from 10.147.20.17: icmp_seq=6 ttl=64 time=3.44 ms


打赏

本文链接:https://www.kinber.cn/post/4042.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客