timzaak / blog

8 stars 1 forks source link

WireGuard #95

Closed timzaak closed 2 years ago

timzaak commented 2 years ago

WireGuard 具体讲解看官网,各平台客户端代码,常见问题解决方案都有。 中文十分详细的starter讲解:WireGuard 的使用与配置详解 NAT 穿透的一种方案:WireGuard 教程:使用 DNS-SD 进行 NAT-to-NAT 穿透

Rust 实现 user namespace WireGuard 客户端boringtun

WireGuard 增强工具netmaker,带UI管理,客户端做了二次封装,带路由自动刷新和管控。

WireGuard 简易 UI 控制面板产品列表

算法相关的内容需要专门入门: 《深入浅出密码学》 加密协商框架:noise protocol framework

timzaak commented 2 years ago

我本想自己研发一款类似 netmaker 的产品,奈何 netmaker 已经十分成熟,看不到开发的必要性。不过可以借此梳理下我自己做产品的思维流程。

自己想做的 netmaker

技术选型(参考代码)

初始是想基于WebRTC 的 ICE 来做,但其过于繁琐的协议实现(没有现成的Rust,只有C++/C版本 #94 )令我望而却步,转而寻找更现成的方案。 WireGuard (有Rust源码)、Zerotier(已阅读过一遍)更符合我设想中的需求,干脆基于 WireGuard 去实现 Rust 版 Zerotier。完美!

目标用户

嗯,这个问题没有细想,企业VPN的目标用户、个人组网用户?国内,除了以网络监控为主的那啥公司比较成功外,没有听说过其他公司。

产品原型

精力都花在技术预演上,还没有思考产品原型的问题,目前大致想来,就是Zerotier这种,有个Web控制台,能管理网络下的所有连接节点,其客户端能凭借一个ID就快速加入该网络,有个简单的认证过程。

开销

全职编程2个月,非全职的话,至少半年。毕竟 WireGuard 本身已经实现的很好,我得看如何在它的基础上,再贴一层。

已经做出来的 netmaker

image

看一下其收费内容,就大致确定它的目标用户是谁了:企业用户。其收费痛点在于:账号接入、权限划分、稳定性保证(监控、自愈)。

功能上,特别考虑了企业内网与外网的连接(Egress/Ingress+K8S)以及 DNS 集成。至于NAT-to-NAT,在企业应用场景下,只是优化而非必需。

技术上,其后台用的是Go语言,预估是方便集成K8S。在做网络相关、轻量化的产品上,Go总会是一个好选择。

其他方面,有完善的文档,Github Orgination Members 共有3人。

市场层面,国外这种专门做企业中间件的成功公司已一大堆。

小结

又掉入了技术优先的陷阱里。市场、用户都还没有一个完整的思考前,就去纠结技术细节,做无用功。

timzaak commented 2 years ago

做个轻量级的 netmaker 还是可以的。 WIP 技术准备:

  1. BoringTun WireGuard 实现, Windows 平台 support
  2. tray_manager 桌面应用定义系统托盘
  3. flutter_rust_bridge Flutter Rust 绑定
timzaak commented 10 months ago

国内做VPN,需要申请相关证件, 1000W注册资金要求。 所以还是要积蓄第一桶金后,才能做也相关业务

timzaak commented 5 months ago

在无政策风险的前提下,假若它成为一个创业项目,该如何执行?

依据《精益创业》这本书的一些方法论,做个思想实验。

To C

用户需求假设

存在大量用户需要进行多设备组网。

用户画像假设

TODO,但先有一个技术宅的假设

验证方案 (低成本、快速)

  1. 自建 wireguard 中继服务器 2M 带宽1C1G,2个月 (先从1台起,后面叠加)。
  2. 构建简单官网,包含功能:用户体系(要手机号登陆,方便回访)、 wireguard 配置生成器 or 简易 wireguard 辅助工具、教程。 用户能以比较简单的方式用起来。
  3. 去国外 v2ex 等技术论坛,发试用贴;去百度进行竞价买广告位; 等一系列的宣传推广。
  4. 根据电话进行回访,若是本地的,可面见,执行贵宾式体验流程。

    检验指标

  5. 用户人数
  6. 用户抱怨率
  7. 用户留存
  8. 付费意愿

    开销

    耗时: 2个半月(半个月的开发和准备工作) 费用: 3W以内 人员: 1人

后期可能规划

根据用户反馈,再规划产品核心功能,或调整方向。

预期收益

  1. 可以获得一批 VPN 用户的体验认知
  2. 有可能遇到有趣的人
  3. 验证国内做 VPN 是否是伪需求

To B

用户假设

  1. 存在大量企业需要 VPN 进行用户在公司外连接公司内网。

    验证方案 (低成本、快速)

    无公司主体,很难搞

timzaak commented 5 months ago

不应该在已经实现的东西上花费大量的时间去重新构建

timzaak commented 4 months ago

刚发现了个 OpenP2P 项目,它娘的,就是 WebRTC + Turn Relay + Port Redirect + Controller Route 解决问题。 想想真是好逗啊。