使用zerotier one实现内网穿透及MOON架设过程整理

首先要安装 zerotier-one 这个软件包,如果是ArchLinux,直接运行(可直接复制不带$符号):

$ sudo pacman -S zerotier-one

如果是Ubuntu/Debian/CentOS,则运行:

$ curl -s https://install.zerotier.com/ | sudo bash

注:如果是Windows或者macOS、Android、iOS等,那么可以在 https://www.zerotier.com/download/ 下载zerotier,win7最高只支持1.6.5版本。
      等待安装完成。

之后就完成了安装,然后我们要启动zerotier,并且让他开机自启动,运行:

$ sudo systemctl start zerotier-one.service

$ sudo systemctl enable zerotier-one.service

例如我有两台内网机器,于是都按照上面的描述进行了安装和启动。接下来要做的事情是到 https://my.zerotier.com/ 里注册帐号并且登录,然后创建一个Network,创建之后点到这个网络里,拉到最上面,选择 Private(私有网络) ,这样别人加入的时候就需要认证, 如果想改名字的话,改个名字,其他不用动。然后复制 Network ID,就是拉到最上面的时候可以看到的一个类似0cccb752xxxxxxxx 的16位字符串。

然后在两台内网机器上执行:

$ sudo zerotier-cli join 0cccb752xxxxxxxx

如果是Windows或者macOS、Android、iOS等直接在客户端软件点击Join Network,输入刚才那段16位字符串加入网络。

加入之后他们就启动了,但是还连不进我们创建的网络,因为我们选择了Private(私有网络) ,我们还需要到 https://my.zerotier.com/ 上面对接入的机器打勾,拉到 Members 这一节,把前面的两个勾勾选上。

这个时候执行一下 ip a 命令你会发现多了一个叫做 ztuzethlza 或者类似名字的设备,还有IP地址,这就是zerotier组建的局域网的IP 地址,但是这个时候你如果直接连接另外一台机器的话可能会非常慢,所以为了加速,我们还需要一台在国内的,或者是在国外但是访问速度相当快的机器做转发。

搭建中转机器(moon)

首先把中转机器按照上述步骤一起加入网络,然后执行:

$ cd /var/lib/zerotier-one/

$ sudo zerotier-idtool initmoon identity.public > moon.json

接下来编辑一下 moon.json,把 "stableEndpoints":[] 这一节里加入中转机器的公网IP,例如 "stableEndpoints":["1.2.3.4/9993"],其中 9993是默认监听的端口,接下来要把9993端口的防火墙放开(注意一定要是UDP),如果你的机器外边还有防火墙的话,也要一起放开,例如腾讯云的机器就有防火墙,要一起把对应端口的UDP流量放行,

修改有两个办法,一个方法a使用vi编辑;一个方法b是使用宝塔面板进行编辑或者使用WinSCP等工具

方法a:执行命令:vi moon.json

出现文件界面,如果没有,接按界面提示按enter键继续,按 i 键,界面结尾出现如图后可以进行文本编辑,

按esc键 退出编辑

执行命令: :wq #注意是“ :” 键 “w” 键 “p”键三个字符

方法b:使用宝塔面板修改 或者使用WinSCP等工具,下载到本地用记事本修改后回传替换,修改时注意输入法英文状态。

此后,我们要开放端口和生成moon的配置:

$ sudo ufw allow 9993/udp

特别说明CentOS默认软件源不提供UFW,所以你需要安装EPEL软件源,运行以下命令:

$ yum install epel-release -y

安装完成后使用以下命令安装UFW:

$ yum install --enablerepo="epel" ufw -y

UFW安装后,可以通过以下命令来启动UFW服务并使其在启动时启动(一般在完成默认配置后再重启):

$ ufw enable

生成签名文件,执行命令

$ sudo zerotier-idtool genmoon moon.json

此命令会生成一个签名文件在当前目录下,文件名如 000000448c38987b.moon (机器 A 的 id 为 448c38987b)

接下来将moon节点加入网络。创建moons.d文件夹,并把签名文件移动到文件夹内

创建文件夹,执行命令:

$ sudo mkdir moons.d

移动签名文件,执行命令:

$ sudo mv 000000448c38987b.moon moons.d/

此处的000000448c38987b.moon是上一步生成的文件名,请改成你自己生成的。

接下来把中转服务器的 zerotier-one 重启:

$ sudo systemctl restart zerotier-one

加入moon

Linux:

使用之前步骤中 moon.json 文件中的 id 值(10 位的字符串,就是448c38987b),不知道的话在服务器上执行如下命令可以得到id。

$ grep id /var/lib/zerotier-one/moon.json | head -n 1

 "id":"XXXXXXXXXX",

复制这个id,然后在内网机器执行:

$ sudo zerotier-cli orbit 448c38987b 448c38987b

注意,xxxxxxxxxx 要两遍。此后重启 zerotier,完毕。等一会儿之后,zerotier局域网内的机器就可以互相访问了,延时非常低:

$ ping 192.168.1.111

PING 192.168.1.111 (192.168.1.111) 56(84) bytes of data.

64 bytes from 192.168.1.111: icmp_seq=1 ttl=64 time=35.0 ms

64 bytes from 192.168.1.111: icmp_seq=2 ttl=64 time=37.1ms

64 bytes from 192.168.1.111: icmp_seq=3 ttl=64 time=36.9ms

^C

--- 192.168.1.111 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time4ms

rtt min/avg/max/mdev = 35.039/36.369/37.145/0.944 ms

Windows:

打开服务程序services.msc, 找到服务"ZeroTier One", 并且在属性内找到该服务可执行文件路径,并且在其下建立moons.d文件夹,然后将moon服务器下生成的000xxxx.moon文件,拷贝到此文件夹内..再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)

路径一般是Windows:C:\ProgramData\ZeroTier\One

注意不是在C:\Program Files(x86)\ZeroTier\One这个路径下。

2.测试是否成功(客户端以管理员身份运行CMD),执行命令:zerotier-cli listpeers

 

若有出现类似信息,即可证明moon连接成功

200 listpeers xxxxxxxxxx   xx.xx.xx.xx/9993;············· MOON

Xxxxxxxxxx为中转机10位ID,xx.xx.xx.xx/9993为中转机公网IP

以上资料来源于网络,个人收集整理,在腾讯云主机、个人电脑测试成功,

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
使用frp实现内网穿透功能的方法如下: 1. 首先,你需要准备一台公网服务器作为frp的服务端,以及一台需要做转发的内网服务器作为frp的客户端。确保这两台服务器可以互相访问。 2. 在公网服务器上安装和配置frp服务端。你可以通过下载frp服务端的方式来安装。具体的步骤是,在公网服务器上下载frp服务端,并进行配置。 3. 下载frp服务端的方法可以根据你的操作系统来选择适合的版本。一般来说,你可以通过在公网服务器上执行命令来下载frp服务端,比如使用wget命令。 4. 下载完成后,你需要进行frp服务端的配置。配置文件通常是一个frps.ini文件,你可以根据自己的需求来修改配置文件中的参数,比如端口号、认证方式等等。 5. 在客户端的内网服务器上,你需要准备工作。比如,确保内网服务器上部署了需要暴露在公网上的资源,比如项目接口。 6. 通过scp命令将下载的frp服务端传送到公网服务器上,可以使用以下命令:scp -P ssh开放的端口 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@公网服务器ip:你要拷贝到的公网服务器的位置。 7. 在公网服务器上解压下载的frp服务端,并执行启动命令,启动frp服务端。 通过以上步骤,你就可以使用frp实现内网穿透功能了。这样,你就可以在外部网络访问到内网服务器上的资源,而无需在公网上部署一套相同的服务。同时,通过内网穿透,你可以在家中或其他地方访问公司内网的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值