Nray 是一款免费、平台与架构无关的端口及应用层扫描器。
nray 以分布式方式运行,以加速扫描并从不同视角执行扫描。
基于事件的结果允许在扫描过程中进一步处理信息,例如使用 jq 等工具。
如果您正在寻找用户文档,请查看项目主页。 有关开发和贡献 nray 的信息,请继续阅读。
在 git 检出后,您可以通过调用 go build 来构建项目。
Nray 使用纯 Go 编写,并注意仅选择同样满足此要求的依赖项,因此标准的 Go 安装(加上 git)就足以在任何支持的平台上构建 nray——这意味着也没有对 libpcap 等库的依赖。
尽管如此,有一个 makefile 用于构建生产版本(make release)——它确保不链接任何 C 依赖项,并从二进制文件中剥离符号以节省空间。
此外,还会自动创建适用于大多数常见操作系统的二进制文件。
调用 make 将构建一个本地开发版本,该版本针对当前操作系统和架构进行了定制,并链接了 C 库和 Go 的竞态检测器。
只需运行 go build——如果需要交叉编译,GOOS 和 GOARCH 参数控制目标操作系统和架构。
对于节点,可以将服务器位置和端口直接注入二进制文件:go build -ldflags "-X main.server=10.0.0.1 -X main.port=8601"。
要获得更小的二进制文件,可通过在调用 go build 时使用 -ldflags="-s -w" 来剥离不必要的部分。
如果您需要重新生成 protobuf 模式(除非您更改了通信协议,否则不需要这样做),请运行 make create-schemas(这需要您的系统上安装 protobuf 编译器)。
只需获取代码并修复让您不爽的问题,或添加新的超棒功能! 欢迎任何贡献,目标是让 nray 成为用户和贡献者都喜爱的项目!
您的代码应通过 go vet 和 go lint 执行的标准检查。
Nray 始终针对最新的 Go 版本开发,因此如果您在构建 nray 时遇到问题,请检查您是否安装了最新的 Go 版本。
版权所有 2019 Michael Eder。 根据 GPLv3 许可。请参阅 LICENSE。