Nohost 开源了

Nohost是一个由腾讯IMWeb前端团队打造的多环境配置及抓包调试平台,旨在解决开发联调、产品体验和测试验证阶段的问题。它提供跨端代理、一键环境切换、请求mock、实时/历史抓包等功能,支持Whistle规则和插件生态,简化环境管理,提高研发效率。目前已被腾讯内外多个前端团队广泛采用。

项目背景

一个需求的研发需要经历开发联调、产品体验、测试验证、发布部署这4个阶段,在这个过程中,我们经常会遇到下面这些问题:

1、环境冲突、代码被覆盖

随着业务的发展,常常会有多个需求同时涉及开发一个项目的场景。由于测试服务器数量不够,经常会有环境冲突问题,甚至会出现环境被其他需求代码覆盖的情况。

2、切换环境成本高

多需求并行开发的时候,开发同学需要切换环境开发,测试同学需要切换环境验证,产品也需要切换环境体验不同需求。

而切换环境这个操作,需要操作代理工具或者修改系统 host 文件,效率低。更麻烦的是,当测试服务器 IP 变化时,还需要每一个使用该环境的人去修改配置。

3、定位问题信息不全

产品、测试反馈问题的时候,通常只提供异常界面截图、视频等信息,这对开发定位问题来说,明显不够。有些产品或测试会从代理工具中导出请求信息,给开发同学定位问题带来了一定的便利。然而,开发还是需要下载对应文件并导入代理工具才能查看,整个链路冗长且高度依赖于代理工具。

Nohost就是为了解决以上问题而诞生的一个多环境配置及抓包调试平台。

项目简介

Nohost 是腾讯IMWeb前端团队打造的一个多环境配置及抓包调试平台,覆盖了研发过程中开发联调、测试、产品体验三大阶段,提供跨端代理工具、支持一键切换体验测试环境、请求mock、实时/历史抓包、代理转发等能力,解决了测试环境管理粗糙、易冲突、联调效率慢、配置复杂等问题,支撑了腾讯在线教育近年来数以万计的需求研发,提升了研发过程中联调体验环节的效率

Nohost 本身是一个通用化设计、可扩展的方案,在腾讯内部以及业界各大前端团队均有较为广泛的使用。在腾讯内有超过80个前端团队直接部署了 Nohost 或者基于 Nohost 能力扩展的应用,覆盖使用用户群体超过1000人。业界上也有多个公司(小赢科技、网易游戏、字节跳动、转转二手车等)的前端团队独立部署使用。

适用场景

开发联调阶段:

1、开发阶段:

借助 Nohost 进行请求抓包、数据mock、配置个人专属的测试环境(静态资源代理、请求转发到测试服务或者引用后台配置好到测试服务环境),且全面支持Whistle规则以及Whistle插件生态(比如注入vConsole、eruda等)。

联调阶段:

后台开发配置个人的测试服务环境,前端可以通过Nohost 切到指定环境进行联调。联调过程中发现问题,可以通过实时抓包定位问题,或者将抓包数据导出分享发给后台,后台可以在线预览抓包信息,并对请求进行修改、重放。

配置好的环境后续也可以在产品体验、测试验证阶段使用。

产品体验阶段:

产品同事只需打开Nohost客户端(无需重复配置切换host)或在手机端配置固定Wi-Fi代理,通过界面的“环境选择小面板”选择测试环境进行体验。体验过程中如果出现问题,开发人员可以通过远程进行实时抓包或通过历史抓包数据进行定位。

测试验证阶段:

测试同事同样只需打开Nohost客户端或在手机端配置固定Wi-Fi代理,通过界面的“环境选择小面板”选择测试环境进行测试,并在测试过程中通过Nohost 实时抓包,将出现问题的请求抓包数据导出,并提供可直接访问的链接,测试可直接将抓包链接放到问题单中,方便开发人员定位问题。

功能介绍

1. 自动注入“环境选择工具”-小圆点

通过注入的“环境选择工具”-小圆点,在页面快捷切换任意环境体验/调试

“环境选择工具”还会有其他的快捷功能,比如查看抓包,复制链接等。支持使用自定义Whistle插件扩展。

“环境选择工具”支持多端注入:Web、PC客户端、H5、小程序,更多技术栈正在支持中。

2. 支持多账户多环境配置

Nohost支持多账户,每个账户都可以新建属于自己的环境

环境代理规则可以通过 `@` 快捷引入别人配置好的环境,别人改了任何配置都会实时同步,无需通知引入该环境的人。

3. 支持抓包并分享

在我们调试测试过程中,如果分析到某个请求可能有问题,这时候希望能把这个请求给后台查看具体什么问题,最原始的方式是截图但信息显然很难截全。而Nohost支持将抓包日志共享给其他人看。

开发在网页直接查看抓包信息。

4. 强大的插件化系统

一个强大的插件化系统,可以让其他开发者在不了解系统实现的情况下,用插件的形式来进行自定义的功能扩展。Nohost 支持用插件进行扩展。用户有自定义的需求时,可以使用插件进行自定义。像是功能的扩展,注入vConsole、抓包信息汇总、Mock等,都可以通过插件进行实现(Nohost兼容Whistle的所有插件)。

功能演示

Nohost原理

当一个请求被代理到 Nohost ,Nohost 会从请求中读取用户选择的 `账户/环境` 信息,转发到对应的进程(如无,会先fork出一个进程,启动Whistle),进行请求、响应的处理。不同的账户使用不同的进程,环境间天然形成隔离,同时多进程也能充分利用机器的性能。

如何接入

接入 Nohost 是非常简单的。需要准备一台有 Node 环境的服务器,简单三步便可以快速接入。

更多配置或者更高级的应用,可以去 Nohost git 和Nohost 官网了解:

官网:https://nohost.pro/

https://github.com/Tencent/nohost

(点击文末阅读原文直接访问)

请给项目 一个 Star !

欢迎提出你的 issue 和 PR!

 国内镜像地址:

https://git.code.tencent.com/Tencent_Open_Source/nohost

(登录后才能访问公开项目)

腾讯工蜂源码系统为开源开发者提供完整、最新的腾讯开源项目国内镜像

### 解决 deepseek-r1 安装过程中的 'no such host' 错误 当遇到 `no such host` 错误时,这通常意味着系统无法解析指定主机名对应的 IP 地址。此问题可能由多种原因引起,包括但不限于网络连接不稳定、DNS 配置不正确或目标服务器不可达。 #### 1. 检查网络连接状态 确保当前设备具有稳定的互联网访问权限。可以尝试打开网页浏览器并访问几个网站以确认网络状况良好。 #### 2. 更新 DNS 设置 有时,默认的 DNS 可能会失效或响应缓慢。建议切换至公共 DNS 服务提供商,如 Google (8.8.8.8 和 8.8.4.4) 或 Cloudflare (1.1.1.1),具体操作如下: 对于 Linux/MacOS 用户,在终端执行命令: ```bash sudo nano /etc/resolv.conf ``` 添加以下两行内容保存退出即可生效: ``` nameserver 8.8.8.8 nameserver 8.8.4.4 ``` Windows 用户则需进入“控制面板 -> 网络和 Internet -> 网络连接”,右键点击正在使用的网卡属性,选择“Internet 协议版本 4(TCP/IPv4)”进行设置[^1]。 #### 3. 修改 hosts 文件 如果已知特定域名对应的确切 IP 地址,则可以直接编辑系统的 hosts 文件来强制指向该地址。hosts 文件路径分别为 Windows 下 C:\Windows\System32\drivers\etc\hosts;Linux/macOS 下位于 `/etc/hosts`。按照格式追加一行记录,例如: ``` 192.0.2.1 ollama.example.com ``` #### 4. 使用国内镜像源加速下载速度 考虑到国外资源在国内访问可能存在延迟甚至失败的情况,推荐采用清华大学开源软件镜像站作为依赖包获取渠道。针对 Python 库安装场景,可参照如下指令完成 Pillow 的快速部署: ```python pip install Pillow -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn ``` #### 5. 排除防火墙干扰因素 部分安全防护机制可能会阻止对外部未知站点发起请求的行为。临时关闭防火墙测试是否能够解决问题也是一个可行的办法。不过出于安全性考虑,仅限于受信任环境下短时间开启,并尽快恢复默认策略。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值