当前位置: 首页 > news >正文

zerotier内网穿透部署(rockylinux部署本地服务器)超详细~~~

官网地址:ZeroTier | Next-Generation Connectivity and Cybersecurity

ZeroTier 连接您的设备,就像它们在同一个本地网络上一样。只需几分钟即可从任何地方进行部署,并通过端到端加密在全球范围内连接无限设备。创建您的网络。

内网穿透:

简单说就是 让外网设备(比如你家的手机、公司的电脑)能够访问内网里的设备或服务—— 而原本,内网设备(如家里的 NAS、部署 Jumpserver 的服务器)因为处于路由器 / 防火墙后面,只有同一内网的设备能访问,外网是 “看不见” 的。

一、先搞懂:为什么需要内网穿透?(举个实际例子)

你之前遇到的「容器服务内部能访问、外部电脑连不上」,本质就是内网设备(Jumpserver 宿主机)被路由器隔离了:

  • 内网设备的 IP 是「私有 IP」(比如 192.168.168.123171.21.0.5),只能在路由器内网里用;
  • 外网设备(比如你手机用 4G/5G,或公司电脑)的 IP 是「公网 IP」,路由器默认会拦截外网对私有 IP 的访问,避免内网设备暴露在公网。

        而内网穿透,就是在「路由器 / 防火墙」上打一个 “专属通道”,让外网请求能通过这个通道,精准到达内网的目标设备(比如你的 Jumpserver、5001 端口的 SSH 隧道)。

二、内网穿透的核心原理(类比理解)

可以把路由器想象成「小区大门」:

  • 内网设备(如你家的服务器)是小区里的住户,门牌号是「私有 IP」(只在小区内有效);
  • 路由器有一个「公网 IP」(相当于小区的地址,对外唯一);
  • 没有内网穿透时,外人(外网设备)只能找到小区大门(公网 IP),但不知道要找哪个住户,大门保安(路由器防火墙)会直接拦住;
  • 内网穿透相当于给小区大门装了一个「快递柜 + 专属编号」:你告诉快递员(外网设备)“把东西送到 XX 小区 + 快递柜编号 101”,保安(路由器)收到后,会自动把东西转给小区里对应编号的住户(内网设备)。

三、常见的内网穿透场景(你可能用到的)

  1. 远程访问内网服务:比如你在外面用手机 / 电脑访问家里的 Jumpserver、NAS 文件、监控摄像头;
  2. 本地开发测试:程序员在自己电脑(内网)开发网站,让客户在外网直接访问测试;
  3. 你之前的需求:通过 SSH 隧道(ssh -L 5005:xxx)让外部能访问内网容器的 5090 端口,本质就是一种「临时内网穿透」。

四、常用的内网穿透方式(从简单到复杂)

  1. 端口映射(路由器层面,最常用)

    • 就是在路由器上配置「公网端口→内网 IP + 内网端口」的映射(比如公网 8080 端口→内网 192.168.191.123:80);
    • 适合:有路由器管理权限,且路由器有公网 IP 的场景(你之前的 Jumpserver 若在家庭 / 小型办公网络,优先用这个)。
  2. SSH 端口转发(你正在用的)

    • 就是你执行的 ssh -g -Nf -L 5995:173.11.0.4:5812 命令;
    • 原理:借助一台有公网 IP 的服务器(ssh.ai.chinahpc.com)当 “中转”,把内网 5995 端口的服务,通过公网服务器转发到本地 5812 端口,实现外网访问;
    • 适合:临时使用、没有路由器管理权限的场景(但需要一台公网服务器)。
  3. 内网穿透工具(傻瓜式操作)

    • 比如花生壳、Frp、Ngrok、ZeroTier 等;(有流量限制、有的不免费
    • 无需配置路由器,工具会自动建立内外网通道,适合小白或没有公网 IP 的场景(部分工具免费,部分收费)。

五、关键注意事项

  1. 安全性:内网穿透会把内网设备暴露给外网,一定要设强密码(比如你的 SSH 密码)、限制访问 IP,避免被恶意攻击;
  2. 公网 IP 问题:如果路由器没有固定公网 IP(比如电信 / 联通家庭宽带,IP 会定期变),需要配合「动态 DNS(DDNS)」工具,让域名自动绑定变动的公网 IP;
  3. 带宽限制:家庭宽带的上传带宽通常比下载小,远程访问内网服务时,速度会受上传带宽影响。

        总结下来:内网穿透的核心就是「打破内网与外网的隔离」,让外网能精准访问内网设备 —— 你之前用 SSH 隧道、路由器端口转发,其实都是内网穿透的不同实现方式~

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

以下介绍zerotier内网部署局域网的方式来解决内网穿透的问题!

六、基于zerotier部署,实现内外网络访问!免费!高效!安全!

1、下载安装

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

2、获取密钥文本

使用如下命令获取两个后面步骤需要用到的密钥文本。

cat /var/lib/zerotier-one/identity.public
内容如下:
axxc9:0:2df2e752c7137b6fd482799943e6681xxxx9e3e109190387457c3a29d3eacexxxx1b776a58w1e52a797d6919264e69b8715c49d4b7d1d8a36e34bf817e8
​
cat /var/lib/zerotier-one/authtoken.secret
内容如下:
sooxxxxxu7n6zamce5
 

3、下载依赖

yum   -y   install g++

4、下载上传软件包

git方式:git clone https://github.com/zerotier/ZeroTierOne
压缩包方式:
ZeroTierOne-1.14.0.zip      ##软件包
##文件均放在/usr/src/zerotier目录下
cd  /usr/src/zerotier
unzip  ZeroTierOne-1.14.0.zip

5、修改对应的文件

备注:git方式需要先编译安装,此处不做演示,直接用压缩包

cd ZeroTierOne-1.14.0
cd ./ZeroTierOne-1.14.0/attic/world/
cp mkworld.cpp{,.bak}   ##备份配置文件
​
vim mkworld.cpp
配置修改如下:
##在里面修改planet网络,把原来的4个注释掉,自己按格式新增一个自己的。
##修改好保存退出后继续执行下面的命令
​
// 工作站自建zerotierroots.push_back(World::Root());roots.back().identity = Identity("a8dxx7xxxe1c9:0:2df2e752c7137b6fd4827xxx6814459e00429e3e109190387457c3a29d3eace058fd061b77658e52a797d6919264e69b8715c49d4b7d1d8a36e34bf817e8");   ##前面文件中的IDroots.back().stableEndpoints.push_back(InetAddress("192.168.169.26/9994"));  ##服务器的ip和端口号//roots.back().stableEndpoints.push_back(InetAddress("x2:6s0:c8s::/999a"));
​
##以下均注释,例如下// Los Angeles//roots.push_back(World::Root());//roots.back().identity = Identity("3a46f1bf30:0:76e66fab33e28549a62sss1843273c2c300ba45c3f20bef02dbad225723bb59a9bb4b13535730961aeecf5a163ace477cceb0727025b99ac14a5166a09a3");//roots.back().stableEndpoints.push_back(InetAddress("s85.ss.13.82/9ss3"));//roots.back().stableEndpoints.push_back(InetAddress("2ss02:6ess0:c815::/9ss3"));

source ./build.sh   ##执行脚本命令生成mkworld
#如果缺少软件包,在这个命令执行后会提示缺少哪些软件包,自行安装即可yum  -y  install g++
​
./mkworld   ##查看是否执行成功
mv ./world.bin ./planet   ##复制命令并改名,此文件,客户端也需要,可以提前保存到相应位置
cd ~/  ##回到root用户家目录
mv /var/lib/zerotier-one/planet /var/lib/zerotier-one/planet.bak  ##修改服务的配置,做好备份,否则为(官方)国外地址
cp ./planet /var/lib/zerotier-one/planet  ##将本地的服务器地址信息给服务加载,使得使用本地器地址
chown zerotier-one:zerotier-one /var/lib/zerotier-one/planet  ##修改归属
systemctl  restart  zerotier-one       ##重启服务
systemctl  status  zerotier-one        ##查看服务的状态
systemctl  is-enabled  zerotier-one   #3查看是否为开机自启,若不是,则设置为开机自启

6、服务配置完成,增加web节点,方便服务进行管理

软件下载地址:https://key-networks.com/ztncui/(备注:需要打开科学!!!

Centos8/9(rocky)下载方式:

yum install https://download.key-networks.com/el7/ztncui/1/ztncui-release-1-1.noarch.rpm -y
yum install ztncui -y    ##需加上,不进行秘钥检查--nogpgcheck
sh -c "echo ZT_TOKEN=`sudo cat /var/lib/zerotier-one/authtoken.secret` > /opt/key-networks/ztncui/.env"
sh -c "echo HTTPS_PORT=3443 >> /opt/key-networks/ztncui/.env"
sh -c "echo NODE_ENV=production >> /opt/key-networks/ztncui/.env"
chmod 400 /opt/key-networks/ztncui/.env
chown ztncui.ztncui /opt/key-networks/ztncui/.env
systemctl restart ztncui

PS:因我当前服务的3000端口被grafana占用,所以需要修改配置如下

[root@bh005 ztncui]# cat .env 
配置如下:
ZT_TOKEN=soo4tvnl3svwzeu7n6zamce5
HTTPS_PORT=3443
HTTP_PORT=3444       ##因本地服务器3000端口被占用,因此本地访问http://127.0.0.1:3444
NODE_ENV=production

PS:ubuntu下载方式:
curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.8.14_amd64.deb
apt install ./ztncui_0.8.14_amd64.deb
sh -c "echo ZT_TOKEN=`sudo cat /var/lib/zerotier-one/authtoken.secret` > /opt/key-networks/ztncui/.env"
sh -c "echo HTTPS_PORT=3443 >> /opt/key-networks/ztncui/.env"
sh -c "echo NODE_ENV=production >> /opt/key-networks/ztncui/.env"
chmod 400 /opt/key-networks/ztncui/.env
chown ztncui.ztncui /opt/key-networks/ztncui/.env
systemctl restart ztncui

7、进入web页面配置,地址为:https://192.168.XXX.XXX:3443

##备注,此为未经授权https协议,需要浏览器进行登录验证

登录,初始设置

用户:admin
密码:初始密码为password
需要修改密码:
密码为:123456.com     ##至少为10位密码

新建网络:test

easy setup

设置的网段为:xx.xx.xx.xx/24

成员管理:当客户端加入时,需进行授权

8、客户端加入:

windows加入方式:

    安装官方客户端自动安装后在右下角有ZeroTierUI, 先退出将服务端的Planet下载下来用服务端的 planet替换本地的planet默认planet路径 C:\ProgramData\ZeroTier\One\。##建议将原来的planet做备份,文件名为planet.bak重启ZeroTier服务  ##快速打开:win + r  输入services.msc重新启动ZeroTier应用程序,等待服务状态变为运行中。连接私有网络
需要ID
服务器查看ID:网页查看
服务器授权
得到IP地址:

linux加入方式:

 # 1、备份原planet文件
sudo mv /var/lib/zerotier-one/planet /var/lib/zerotier-one/planet.bak
# 2、复制自己的planet文件进行文件替换
sudo cp ./planet /var/lib/zerotier-one/planet
# 3、修改文件所有者
sudo chown zerotier-one:zerotier-one /var/lib/zerotier-one/planet
# 4、重启服务
service zerotier-one restart

例:本地加入

zerotier-cli listnetworks
zerotier-cli status
zerotier-cli join a8d367e1c96e9777
zerotier-cli listnetworks
ifconfig  ##授权之后,多出IP地址,120.116.0.164 
两台之间进行ping测试,测试成功

mac加入方式:

文件替换路径为:“/Library/Application\ Support/ZeroTier/One/”。替换后重启系统就可以加入自己的服务器了。
http://www.dtcms.com/a/597582.html

相关文章:

  • Ubuntu环境中LLaMA Factory 的部署与配置—构建大语言模型微调平台
  • 建婚恋网站需要多少钱新会网站建设公司
  • MI50运算卡使用llama.cpp的ROCm后端运行Qwen3-Coder-30B-A3B的速度测试
  • 【图像处理基石】如何入门图像压缩编码技术?
  • 网站建设与管理实施方案企业建设网站怎么做账
  • 网站制作与网站建设实际报告文案发布平台
  • 开源项目合并新分支和本地修改指南
  • GJOI 11.5 题解
  • 网站建设是什么语言wan网站建设
  • 个人网站域名怎么起企业官方网站建设的流程
  • CTFHub Web进阶-Json Web Token通关5:修改签名算法
  • 华为OD机试 双机位A卷 - 上班之路 (JAVA Python C++ JS GO)
  • CEVA-DSP开发初识(一)
  • 峰均比降低技术(CFR)
  • 如何删除网站备案号房地产政策
  • 盐城网盐城网站建设站建设wordpress视频解析接口
  • 【CPKCOR-RA8D1】Home Assistant 物联网 ADC 电压温度计
  • STM32外设学习--DMA直接存储器读取(AD扫描程序,DMA搬运)--学习笔记。
  • 贵州网站开发制作公司开发公司各部门职责
  • FreeRTOS 学习:(十八)FreeRTOS 中断管理
  • 做外贸网站 怎么收钱池州哪里做网站
  • 介绍一下 机器人坐标转换的 RT 矩阵
  • 网站备案换公司吗盐山县网站建设
  • 为智能制造护航:SASE如何重塑制造业网络安全与连接
  • 品牌授权网站什么网站可以做软件有哪些东西
  • h5网站系统企业网站制作排名
  • ZeroNews 场景案例 | 结合小皮面板实现公网web服务发布
  • 本地的赣州网站建设电商网站支付接口
  • C# 记录类型(record)全面解析:从概念到最佳实践
  • 广西响应式网站制作怎么修改自己网站内容