刚在在折腾vscode的时候,发现界面上有一个tunnel的东西,需要登录才能使用,点击去帮助看了下,原来是微软的一个内网穿透,不止在vscode可以用,win,linux,mac都可以使用,只不过微软对于自家的开发工具做了集成,第三方工具依然可以通过命令行使用。
在刚才浅浅的体验了一两个小时来看,缺点就是穿透的地址最长只能保持30天,我自费购买的内网穿透,地址可以一直保留的,然后就是境外的地址可能会有延迟,白天这一小段时间我感觉还行 ;
优点嘛,还是很多的,首先就是免费,然后带宽有足足20mb/s,比向日葵不知道高到哪里去了,境外带宽果然就像不要钱一样。
---
微软的相关地址 https://learn.microsoft.com/zh-cn/azure/developer/dev-tunnels/
#### windows下使用说明
安装
```shell
winget install Microsoft.devtunnel
# mac: brew install --cask devtunnel
# linux: curl -sL https://aka.ms/DevTunnelCliInstall | bash
```
登录
```shell
devtunnel user login
# 可以微软或github账号登录
```
创建临时隧道
```shell
devtunnel host -p 8080 -a
# -a 为开启匿名访问
# 执行后会输出外网地址
```
上面为创建一个临时隧道,关闭后下次再执行,又是一个新地址,你也可以创建一个非临时,实现地址复用,最长30天
流程:创建隧道
```shell
devtunnel create -a
#-a 表示可以表示隧道可以匿名访问
#执行成功会输出隧道信息
```
给上面创建的隧道加上端口
```shell
devtunnel port create [隧道名] -p 8080
#隧道名为可选,默认为刚才创建的隧道
#可以添加多个端口
```
开启隧道
```shell
devtunnel host [隧道名]
#隧道名为可选,默认为刚才创建的隧道
```
`devtunnel delete [隧道名]` 可以删除隧道
在网页访问的时候,会显示一个防钓鱼页面,你需要点击同意,这个在http post等方法或者请求头不是text/html这种请求时,不会显示,所以不会影响前段实际的接口请求
#### 最后这是一些限制,因为时效性可能会有所不同,具体看微软的[这里](https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/azure-subscription-service-limits#dev-tunnels-limits)
|名称|限制|
|-------|-------|
|流量(Bandwidth )|5 GB 每用户|
|隧道数|10 每用户|
|活动连接| 20 每端口 |
|端口数|10 每个隧道|
|http请求速率|1500/min 每端口|
|速率|最高 20 MB/s 每隧道|
|最大http请求体大小| 16 MB |
上述限制每月重置
> 最后,他好像还有sdk,可以嵌入到自己程序里,比如开发环境创建隧道,后面再看看
分享下刚发现的宝藏内网穿透,微软dev-tunnels