Port Rocket 可以通过多种方式在 Windows 上安装。选择最适合您需求的方法。
对于大多数 Windows 用户,推荐使用 MSI 安装程序进行安装。
go-port-rocket-windows-amd64.msi
文件Scoop 是 Windows 的命令行安装程序,提供了简单的方式安装应用程序。
# 安装 Scoop(如果尚未安装)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression
# 安装 Port Rocket
scoop bucket add extras
scoop install go-port-rocket
Chocolatey 是另一个流行的 Windows 包管理器。
# 安装 Chocolatey(如果尚未安装)
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
# 安装 Port Rocket
choco install go-port-rocket
如果您希望不进行安装而直接使用,可以下载便携版本。
go-port-rocket-windows-amd64.zip
文件go-port-rocket.exe
,或者将其目录添加到 PATH 环境变量中以便全局访问在 macOS 上,您可以使用 Homebrew 包管理器轻松安装 Port Rocket,也可以使用其他方法。
使用 Homebrew 是在 macOS 上安装 Port Rocket 的最简单方法。
# 安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Port Rocket
brew tap cyberspacesec/go-port-rocket
brew install go-port-rocket
您也可以下载预编译的二进制文件并手动安装。
# 下载最新版本
curl -L https://github.com/cyberspacesec/go-port-rocket/releases/latest/download/go-port-rocket-darwin-amd64.tar.gz -o go-port-rocket.tar.gz
# 解压缩
tar -xzf go-port-rocket.tar.gz
# 移动到 /usr/local/bin 目录(需要管理员权限)
sudo mv go-port-rocket /usr/local/bin/
# 验证安装
go-port-rocket --version
如果您使用 MacPorts 而不是 Homebrew,可以通过以下方式安装:
# 安装 Port Rocket
sudo port install go-port-rocket
Linux 有多种发行版,您可以根据自己使用的发行版选择适当的安装方法。
在 Ubuntu、Debian 及其衍生发行版上,您可以使用 DEB 包安装。
# 下载 DEB 包
wget https://github.com/cyberspacesec/go-port-rocket/releases/latest/download/go-port-rocket_amd64.deb
# 安装
sudo dpkg -i go-port-rocket_amd64.deb
# 如果有依赖问题,运行
sudo apt-get -f install
或者使用 APT 仓库(推荐):
# 添加 GPG 密钥
wget -qO- https://repo.cyberspacesec.io/gpg | sudo apt-key add -
# 添加仓库
echo "deb https://repo.cyberspacesec.io/apt stable main" | sudo tee /etc/apt/sources.list.d/go-port-rocket.list
# 更新仓库并安装
sudo apt update
sudo apt install go-port-rocket
在 Fedora、RHEL、CentOS 及其衍生发行版上,您可以使用 RPM 包安装。
# 下载 RPM 包
wget https://github.com/cyberspacesec/go-port-rocket/releases/latest/download/go-port-rocket_amd64.rpm
# 安装
sudo rpm -i go-port-rocket_amd64.rpm
或者使用 YUM/DNF 仓库(推荐):
# 添加仓库
sudo tee /etc/yum.repos.d/go-port-rocket.repo << EOF
[go-port-rocket]
name=Port Rocket Repository
baseurl=https://repo.cyberspacesec.io/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.cyberspacesec.io/gpg
EOF
# 安装
sudo dnf install go-port-rocket
# 或者在旧版系统上
# sudo yum install go-port-rocket
在 Arch Linux 上,您可以从 AUR 安装。
# 使用 yay(如果已安装)
yay -S go-port-rocket
# 或者手动从 AUR 安装
git clone https://aur.archlinux.org/go-port-rocket.git
cd go-port-rocket
makepkg -si
如果您的发行版支持 Snap,可以使用以下命令安装:
# 安装 Port Rocket
sudo snap install go-port-rocket
对于其他 Linux 发行版,您可以下载预编译的二进制文件:
# 下载最新版本
wget https://github.com/cyberspacesec/go-port-rocket/releases/latest/download/go-port-rocket-linux-amd64.tar.gz
# 解压缩
tar -xzf go-port-rocket-linux-amd64.tar.gz
# 移动到 /usr/local/bin 目录
sudo mv go-port-rocket /usr/local/bin/
# 添加执行权限
sudo chmod +x /usr/local/bin/go-port-rocket
# 验证安装
go-port-rocket --version
如果您熟悉 Docker,可以使用容器化版本的 Port Rocket。这种方法适用于任何支持 Docker 的平台。
使用以下命令拉取最新的 Docker 镜像:
# 拉取镜像
docker pull cyberspacesec/go-port-rocket:latest
# 运行(网络扫描需要特殊权限)
docker run --rm --network host --cap-add=NET_RAW --cap-add=NET_ADMIN cyberspacesec/go-port-rocket
# 执行扫描示例
docker run --rm --network host --cap-add=NET_RAW --cap-add=NET_ADMIN cyberspacesec/go-port-rocket scan -t 192.168.1.1 -p 80,443,8080
创建 docker-compose.yml 文件:
version: '3'
services:
go-port-rocket:
image: cyberspacesec/go-port-rocket:latest
network_mode: host
cap_add:
- NET_RAW
- NET_ADMIN
command: scan -t 192.168.1.1 -p 80,443,8080
然后运行:
docker-compose up
Port Rocket作为一个端口扫描工具,需要执行一些低级网络操作,这些操作在Docker容器中默认是受限的。
NET_RAW
权限。Docker默认使用一套受限的权限运行容器,以提高安全性。虽然我们在Dockerfile中通过setcap
命令设置了二进制文件的capabilities,但这些权限在容器内仍然需要显式授予给容器本身。
建议使用最小权限原则,只授予必要的capabilities:
docker run --rm --cap-add=NET_RAW --cap-add=NET_ADMIN --network host go-port-rocket scan -t 127.0.0.1 -p 80,443
如果上述方法不起作用,可以使用完全特权模式,但这在安全性方面不是最佳实践:
docker run --rm --privileged --network host go-port-rocket scan -t 127.0.0.1 -p 80,443
注意:使用特权模式运行Docker容器会赋予容器几乎与宿主机相同的权限,这可能带来安全风险。请在受信任的环境中谨慎使用。
如果您希望从源代码构建最新版本,可以按照以下步骤操作:
获取最新版本的源代码并自行编译:
# 克隆仓库
git clone https://github.com/cyberspacesec/go-port-rocket.git
cd go-port-rocket
# 安装依赖(根据您的操作系统选择合适的命令)
# macOS: brew install libpcap
# Ubuntu: sudo apt install libpcap-dev
# CentOS: sudo yum install libpcap-devel
# Arch Linux: sudo pacman -S libpcap
# 构建项目
go build -o go-port-rocket
# 可选:安装到系统路径
sudo install -m755 go-port-rocket /usr/local/bin/
如果您是 Golang 开发者,可以直接使用 Go 工具链安装 Port Rocket:
可以使用 Go 的包管理工具直接安装最新版本:
# 安装最新版本
go install github.com/cyberspacesec/go-port-rocket@latest
# 如果您需要安装特定版本
go install github.com/cyberspacesec/go-port-rocket@v1.0.0
安装后可执行文件将位于您的 GOPATH/bin 目录下。
如果您想在自己的 Go 项目中使用 Port Rocket 作为库:
# 添加依赖
go get github.com/cyberspacesec/go-port-rocket
# 更新到最新版本
go get -u github.com/cyberspacesec/go-port-rocket
然后在代码中引入:
import "github.com/cyberspacesec/go-port-rocket/pkg/scanner"
func main() {
// 创建新的扫描器
scanner := scanner.New()
// 配置扫描选项
options := scanner.DefaultOptions()
options.Target = "192.168.1.1"
options.Ports = []int{80, 443, 8080}
// 执行扫描
results, err := scanner.Scan(options)
if err != nil {
panic(err)
}
// 处理结果
for _, result := range results {
fmt.Printf("Port %d: %s\n", result.Port, result.State)
}
}
如果您想使用最新的开发版本,可以直接从代码库构建:
# 克隆仓库
git clone https://github.com/cyberspacesec/go-port-rocket.git
cd go-port-rocket
# 安装依赖
go mod download
# 构建
go build -o go-port-rocket cmd/go-port-rocket/main.go
# 运行
./go-port-rocket --help
安装完成后,您可以使用以下命令验证安装:
# 显示版本信息
go-port-rocket --version
# 显示帮助信息
go-port-rocket --help
如果您在安装过程中遇到问题,请参考以下常见问题及解决方法:
某些扫描功能需要管理员/root权限才能运行。如果遇到权限错误,请尝试使用管理员权限运行程序。
sudo go-port-rocket
如果遇到缺少依赖的错误,请确保安装了所需的依赖项:
libpcap-dev
或 libpcap-devel
)brew install libpcap
)