统一记录 QuickIP 当前可直接使用的编译命令、默认输出位置,以及一键编译方式。
在仓库根目录执行:
dotnet build ".\windows\QuickIP.Client.sln" -c Debug
默认输出目录:
windows\QuickIP.Client\bin\Debug\net9.0-windows\
说明:
Debug 输出目录QuickIP.Client.exe 正在运行,重新编译可能因文件被占用而失败当前只需要编译 Linux amd64 版 Agent,用于上传到 Ubuntu 24 设备。
本节默认前提:当前 PowerShell 已位于 D:\git\QuickIP\agent。
在 agent\ 目录执行:
$env:GOOS="linux"
$env:GOARCH="amd64"
$env:CGO_ENABLED="0"
go build -o ".\quickip-agent-linux-amd64" ".\cmd\quickip-agent"
输出文件:
agent\quickip-agent-linux-amd64
说明:
GOOS、GOARCH 恢复到原值go.mod 位于 agent\ 目录下,因此应先进入 agent 目录再执行 go buildCGO_ENABLED=0仓库根目录已提供 build.ps1。
执行命令:
powershell -ExecutionPolicy Bypass -File .\build.ps1
该脚本会依次完成:
Debug 目录agent\quickip-agent-linux-amd64以下示例基于当前联调环境:
x@192.168.229.136/home/x/quickip-agentD:\git\QuickIP\agent如果当前已经在 agent\ 目录执行:
scp .\quickip-agent-linux-amd64 x@192.168.229.136:/home/x/quickip-agent
说明:
quickip-agentssh x@192.168.229.136
说明:
sudo 需要交互输入密码ssh "sudo ..." 方式直接停进程或启动服务sudo 命令登录远端后执行:
sudo pkill -f quickip-agent
登录远端后执行:
chmod +x /home/x/quickip-agent
说明:
scp 后远端权限一定正确登录远端后执行:
sudo nohup /home/x/quickip-agent --ip 169.254.100.2 --port 48888 --password 'Dt123$' >/home/x/quickip-agent-run.log 2>&1 < /dev/null &
说明:
root 身份运行,才能写入 netplan、执行 netplan apply、重启和关机sudo 启动,配置应用和系统动作会被 Agent 直接拒绝登录远端后执行:
ss -ltnp | grep 48888
期望看到类似:
LISTEN ... 169.254.100.2:48888 ... quickip-agent
登录远端后执行:
tail -n 50 /home/x/quickip-agent-run.log
本机 PowerShell:
scp .\quickip-agent-linux-amd64 x@192.168.229.136:/home/x/quickip-agent
ssh x@192.168.229.136
远端登录后:
sudo pkill -f quickip-agent
chmod +x /home/x/quickip-agent
sudo nohup /home/x/quickip-agent --ip 169.254.100.2 --port 48888 --password 'Dt123$' >/home/x/quickip-agent-run.log 2>&1 < /dev/null &
ss -ltnp | grep 48888
go build ./... 没报错,但找不到可执行文件这是正常现象。
go build ./... 更适合做整模块编译检查,不保证在你期望的位置生成最终可执行文件。
如果需要明确拿到 agent 产物,应使用带 -o 的命令,例如:
$env:GOOS="linux"
$env:GOARCH="amd64"
$env:CGO_ENABLED="0"
go build -o ".\quickip-agent-linux-amd64" ".\cmd\quickip-agent"
QuickIP.Client.exe 被占用通常表示客户端程序仍在运行。
处理方式:
QuickIP.Client.exedotnet build