何为 PortIO?
Port 则为端口,IO 则是输入/输出流。正如内网穿透一样,它负责输入/输出数据到对应的地址。
概念
我们认为,以 Frp 为首的内网穿透应该实现以下内容。
- 以流量计费代替周期计费
- 内网穿透应该以流量计费。我们觉得,周期计费在此方面并不是一个正确的决定。内网穿透应该是灵活的,不应被穿透计费方式束缚。
- 不限制的隧道数量
- 内网穿透的隧道数量是不应该被硬限制的。以动态计费的角度来说,限制隧道数量是一个不灵活的决定。用户应该创建任意数量的隧道, 其合理的隧道控制应该有监管系统决定。
- 简单而灵活的用户界面
- 软件应该是给用户服务的,用户界面应该专注于 “创建/管理” 本身,其余的元素都是次要的。
- 创建隧道时要做到最简
- 在创建隧道时,用户应该只关注两件事。其一是名称和服务器,其二是本地端口和域名。其余的特性应该隐藏或者由用户自行修改配置文件完成。
- 保留自定义性
- 自定义对于高级用户来说,是一个很重要的东西。我们觉得,内网穿透不应该剥夺自定义配置文件的权利。
- 尽可能避免对代码的修改
- Frp 是一个迭代很快的软件,我们觉得用尽可能原版的内容可以保障与上游的快速更新。以用上最新的特性以及 Bug 修复。
- 应符合快速部署的要求
- 快速部署是内网穿透的很重要的因素。因为在部署节点以及客户端方面,控制器应该提供已经构建好的配置文件,或者提供一键部署的 API,方便维护人员 / 用户快速搭建服务端/客户端。
实现
来自莱云 与 木韩网络 的 PortIO 实现:木韩内网穿透