引言

在开发过程中,我们经常需要查看系统的网络连接状态。传统的 ssnetstat 命令虽然功能强大,但输出往往密密麻麻,不够直观。今天给大家介绍一个轻量级却功能丰富的替代品 —— neoss

什么是 neoss?

neoss 是一个用 TypeScript 编写的终端 UI 工具,旨在以更友好的方式展示系统的 socket 统计信息。它提供了一个交互式的界面,让你可以轻松地查看、排序和导航 TCP/UDP 连接信息。

  • 219 Stars - 小而美的开源项目
  • 🔧 TypeScript - 类型安全,代码质量高
  • 📦 npm 全局安装 - 一行命令即可使用
  • 🖥️ Terminal UI - 基于 blessed 的优雅界面

为什么需要它?

传统命令的痛点

$ ss -tuln
Netid  State   Recv-Q  Send-Q  Local Address:Port   Peer Address:Port
udp    UNCONN  0       0       0.0.0.0:68          0.0.0.0:*
tcp    LISTEN  0       128     0.0.0.0:22          0.0.0.0:*
tcp    LISTEN  0       128     [::]:22             [::]:*

原生 ss 的输出虽然信息完整,但:

  • ❌ 需要记忆大量参数
  • ❌ 输出格式固定,难以筛选
  • ❌ 缺乏交互性,无法实时刷新
  • ❌ 没有详细信息解释

neoss 的优势

neoss 用一个清晰的表格界面解决了这些问题:

特性说明
📊 可视化表格所有连接一目了然
🔄 实时刷新r 键即可刷新数据
🔍 交互式导航方向键选择,Enter 查看详情
📋 详细信息协议定义、连接状态、Whois 查询
🎯 排序功能按任意列排序

安装与使用

安装

npm install -g neoss

基本使用

# 直接运行
neoss

快捷键

快捷键功能
Esc / q / Ctrl+C退出程序
r刷新统计数据
s按当前列排序
Enter打开/关闭选中单元格的详细信息
↑↓←→导航选择

深度解析:你能看到什么?

基础统计

neoss 会列出所有正在使用的 TCP 和 UDP socket,包括:

  • 协议类型 (TCP/UDP)
  • 连接状态 (LISTEN, ESTABLISHED, TIME_WAIT 等)
  • 本地地址和端口
  • 远程地址和端口
  • 接收/发送队列大小

详细信息面板

选中任意条目按 Enter,neoss 会展示丰富的解释信息:

  1. 协议定义 - 这个协议是做什么的?
  2. 连接状态含义 - LISTEN、ESTABLISHED 代表什么?
  3. 端口标准 - 这个端口的标准用途是什么?
  4. 域名解析 - 自动解析 IP 对应的域名
  5. Whois 查询 - 域名和 IP 的注册信息
  6. 进程信息 - 哪个用户、什么进程在使用这个连接

对于学习网络知识和排查问题非常有帮助!

技术亮点

为什么选择这个项目?

从代码质量的角度来看,neoss 有几个值得学习的地方:

  1. TypeScript 类型安全 - 完整的类型定义,降低运行时错误
  2. 模块化设计 - 清晰的代码结构,易于维护和扩展
  3. 测试覆盖 - 包含自动化测试
  4. 持续更新 - 作者积极维护,最近还在更新
  5. BSD 开源协议 - 宽松的开源协议,可以放心使用

依赖选择

项目使用了成熟的技术栈:

  • blessed - 终端 UI 库,提供了丰富的交互组件
  • TypeScript - 类型安全的 JavaScript 超集
  • npm - 便捷的发布和安装渠道

适用场景

🐛 调试网络问题

当应用无法连接外部服务时,快速查看端口占用情况:

neoss
# 查找对应端口,查看连接状态

📚 学习网络知识

通过详细信息面板,了解不同协议和端口的作用,是网络知识学习的实用工具。

🔒 安全审计

快速扫描系统开放端口,检查是否有异常连接。

🚀 开发调试

查看开发服务器的监听状态,确认服务是否正常启动。

类似工具对比

工具特点适用场景
neoss交互式 UI,详细信息日常开发、学习
ss功能全面,原生工具脚本自动化
netstat经典工具,兼容性好传统系统
lsof查看进程打开的文件进程级排查
iftop实时流量监控带宽分析

结语

neoss 是一个典型的 “小而美” 的开源工具。它没有试图替代 ss 的所有功能,而是专注于提供友好的交互体验帮助理解网络知识这两个核心目标。

对于日常开发工作,219 个 Stars 的 neoss 已经足够实用。它的设计理念值得学习:不是功能越多越好,而是在特定场景下做到极致

如果你经常需要查看网络连接状态,不妨试试这个工具。毕竟,在终端里优雅地工作,是每一位开发者的追求 🎯


链接


本文是「每日技术精选」系列的一部分,专注于发掘 star < 1000 的优质开源项目。