借助于服务器+nginx+zerotier实现内网穿透
前言
像h5开发微信授权,钉钉开发等,都需要接口能够访问到才可以进行后续操作
- 举例:h5微信登录,需要微信官方能够访问到的uri地址,才能够拿到code
那么就需要有个环境,讲你的电脑被外网访问到
比较
传统内网穿透
好处:
- 可以被外网访问
- 免费一个端口
坏处
- 只有一个端口
- 域名往往是安全的被举报的
- 无法进行微信服务器的认证
服务器+nginx+zerotier实现内网穿透
好处:
- 无限制端口
- 可以自定义任何
坏处:
- 需要有自己的服务器、域名
1. 前提条件
- 一台服务器
- 一个域名,并且已经解析到了服务器上
- 服务器安装nginx
2. 服务器安装zerotier
# 在线安装zerotier
curl -s https://install.zerotier.com | sudo bash
# 查看安装zerotier版本
sudo zerotier-cli status
加入一个netWork
sudo zerotier-cli join ################(networkid)
# 添加开机自启
sudo systemctl enable zerotier-one.service
# zerotierh 会被systemctl接管,所有 systemctl 指令都可用
systemctl start zerotier-one.service
3. 创建zerotier 网络
这是官网
https://my.zerotier.com/
如果没有账号就注册一个
进去之后创建一个网络,
创建一个即可
NETWORK ID 就是你需要加入的网络的编号
4. 加入网络
- linux端加入
sudo zerotier-cli join b6079xxx668d98e
- windows端加入
首先先安装个zerotier
之后,右键图标-> Join Newwork
输入 网络id 即可
5. 配置网络
登录 https://my.zerotier.com/
之后,点击自己网络
进入之后,滑轮往下,找到网络中的设备
勾选每一行最前面的auth
设置静态ip
6. 设置转发到自己电脑
到达这一步,就需要nginx,这也是外网能访问的关键
只需要配置一个二级域名,转发到 内网的ip 【172.28.0.2】即可
server {
listen 80 ;
server_name xx.caomeicoc.top; # 你的域名
client_max_body_size 100m;
underscores_in_headers on;
location /MP_verify_ZxxxE0fgRA.txt { # 微信服务器校验
default_type text/html;
return 200 "Z2xxxE0fgRA"; # 是检验文件中的内容
}
location / {
proxy_pass http://172.28.0.3:8080/; # 转发的地址【我这是转到自己电脑】
}
}
之后 你就可以通过你自己设置的域名,访问到你的电脑了