【导语】:inlets是一个基于WebSocket隧道实现的内网穿透工具,能够将本地服务暴露到公网。python
inlets利用反向代理和Websocket隧道,将内部或开发中的服务经过出口节点暴露到公网。出口节点能够是一个VPS,也能够是任何带有公网IPv4的电脑。git
相似的工具还有Ngrok、Argo Tunnel等,但这二者都是闭源的,有其自己的限制,价格不菲,以及对arm/arm64的支持有限。Ngrok还常常会被公司防火墙策略拦截而致使没法使用。而其它开源的隧道工具,基本只考虑到静态地配置单个隧道。inlets 旨在动态地发现本地服务,经过 Websocket 隧道将它们暴露到公网 IP 或域名,并自动化配置 TLS 证书。github
inlets已完成如下功能:windows
基于客户端的定义,自动在出口节点建立服务入口服务器
经过 Service Account 或 HTTP Basic Auth 实现权限认证架构
项目地址:
https://github.com/inlets/inletscurl
详细的安装部署步骤参考官网,小秋这里简单介绍一下上手安装的步骤(也是参考官网的操做),省去了token的生成。socket
官网推荐使用brew或curl安装:工具
# 安装到当前目录 curl -sLS https://get.inlets.dev | sh # 安装到 /usr/local/bin/ curl -sLS https://get.inlets.dev | sudo sh # 使用brew安装 brew install inlets
小秋在windows上使用,直接下载inlets.exe文件并在命令行中执行,下载地址为:测试
https://github.com/inlets/inl...
这一步须要在有公网IP的机器上操做,以达到将内网服务映射出网的目的。(小秋没有这样的服务器,直接在本机安装,没法映射出公网,可是也能完成代理映射的过程,而过程都是同样的)
下载了inlets.exe,放到F盘下,执行命令启动:
/f/inlets/inlets.exe server --port=8090
以下图:
使用Python内置的HTTP服务作测试:
mkdir inlets-test cd /inlets-test touch hello-world python -m http.server 3000
以下图:
<br/>
访问localhost:3000
在和HTTP服务同一台机器上启动inlets客户端,执行如下命令:
/f/inlets/inlets.exe client --remote=192.168.244.1:8090 --upstream=http://127.0.0.1:3000
以下图:
访问出口节点:
以上能够说是inlets最基本也最经常使用的功能,inlets还有更多高级功能,感兴趣的童鞋能够试试:
开源前哨
平常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。