最新公告
  • 欢迎访问代码工坊,购买产品可享受在线工单服务!
  • inlets - 借助vps或公网电脑的内网穿透工具

      nlets® 利用反向代理和 Websocket 隧道,将内部、或是开发中的服务通过「出口节点」暴露到公网。出口节点可以是几块钱一个月的 VPS,也可以是任何带有公网 IPv4 的电脑。 如果无需公开服务到公网,可以只建立服务隧道,使 inlets 成为 VPN 的替代品。

      为什么需要这个项目?类似的工具例如ngrok和由Cloudflare开发的Argo Tunnel皆为闭源,内置了一些限制,并且价格不菲,以及对 arm/arm64 的支持很有限。Ngrok 还经常会被公司防火墙策略拦截而导致无法使用。而其它开源的隧道工具,基本只考虑到静态地配置单个隧道。inlets 旨在动态地发现本地服务,通过 Websocket 隧道将它们暴露到公网 IP 或域名,并自动化配置 TLS 证书。

      当开启 SSL 时,inlets 可以通过任何支持CONNECT方法的 HTTP 代理服务器。

    inlets - 借助vps或公网电脑的内网穿透工具

    项目状态

    与 HTTP 1.1 遵循同步的请求/响应模型不同,Websocket 使用异步的发布/订阅模型来发送和接收消息。这带来了一些挑战 —— 通过 异步总线 隧道化传输 同步协议

    inlets 2.0 带来了性能上的提升,以及调用部分 Kubernetes 和 Rancher API 的能力。本项目使用了 Rancher 的 K3s 项目 实现节点间通讯同样的隧道依赖包。它非常适用于开发,在生产环境中也很实用。不过在部署 inlets 到生产环境中之前,建议先做好充足的测试。

    如果您有任何评论、建议或是贡献想法,欢迎提交 Issue 讨论。

    • 隧道链路通过 --token 选项指定的共享密钥保证安全
    • 默认配置使用不带 SSL 的 Websocket ws://,但支持开启加密,即启用 SSL wss://
    • 可通过服务器端选项设定请求超时时间
    • 服务发现机制完成前,在服务端和客户端都必须配置上游 URL 客户端可发布其可提供服务的上游 URLs
    • 默认情况下,隧道传输会移除响应内的 CORS 头,但你可以在服务端使用 --disable-transport-wrapping 关闭该特性

    安装 inlets

    你可以使用 curl 下载安装脚本,或是用 brew 安装,或者直接在 Releases 页面直接下载二进制文件。安装完成后即可使用 inlets 命令。

    安装 CLI

    提示:虽然 inlets 是一款免费工具,但你也可以在 GitHub Sponsors 页面支持后续的开发 inlets - 借助vps或公网电脑的内网穿透工具

    使用 curl 和辅助脚本:

    # 安装到当前目录
    curl -sLS https://get.inlets.dev | sh
    
    # 安装到 /usr/local/bin/
    curl -sLS https://get.inlets.dev | sudo sh

    使用 brew

    brew install inlets

    提示:brew 分发的版本由 Homebrew 团队维护,因此可能会与 GitHub releases 存在一定延迟。

    二进制文件可在 Releases 页面 找到;包含 Linux(x86_64、armhf、arm64),Windows(实验性)以及 Darwin(MacOS)版本。如果你想要验证你的下载,也可以查看 SHA 校验值。

    Windows 用户建议使用 Git bash 来安装 inlets。

    快速上手

    你可以在任何两台互相连接的「电脑」之间运行 inlets,「电脑」可以是两个容器,虚拟机,物理机,甚至单台机器的环回网络也可以。

    可在本地尝试 quickstart tutorial now(英文)。

    文档和教程

    inlets 和 inlets PRO 有了独立的文档站点(英文):

    官方文档:docs.inlets.dev

    项目地址

    https://github.com/inlets/inlets/

    发表评论