Files
SamWaf/docs/编译说明.md
2024-07-17 16:42:52 +08:00

6.2 KiB
Raw Permalink Blame History

vue打包

直接方式go-bindata-assetfs.exe -o=vue/vue.go -pkg=vue vue/dist/...
bat方式build-vue.bat

win

直接运行build-releases.bat

linux

//生成普通发行版未upx压缩的 docker run --rm -v "$PWD":/media/sf_SamWaf -w /media/sf_SamWaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go build -v -ldflags="-X SamWaf/global.GWAF_RELEASE=true -X SamWaf/global.GWAF_RELEASE_VERSION_NAME=20230619 -X SamWaf/global.GWAF_RELEASE_VERSION=101 -s -w -extldflags "-static"" -o /media/sf_SamWaf/release/SamWafLinux64 main.go

//可调试的centos docker run --rm -v "$PWD":/media/sf_SamWaf -w /media/sf_SamWaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go build -v -ldflags="-X SamWaf/global.GWAF_RELEASE=true -X SamWaf/global.GWAF_RELEASE_VERSION_NAME=20240531 -X SamWaf/global.GWAF_RELEASE_VERSION=v1.1.6 -s -w -extldflags "-static"" -o /media/sf_SamWaf/release/SamWafLinux64 main.go

//docker 单元测试 docker run --rm -v "$PWD":/media/sf_SamWaf -w /media/sf_SamWaf -e CGO_ENABLED=1 -e GOPROXY=https://goproxy.cn,direct golang:1.19 go test -v ./firewall -test.run TestFireWallEngine_IsFirewallEnabled

//物理机 单元测试

go env -w GOPROXY=https://goproxy.cn,direct && go test -v ./firewall -test.run TestFireWallEngine_IsFirewallEnabled

注意事项

  1. 如果linux使用multipass 需要以下方式开启
启用挂载:
https://multipass.run/docs/set-command#local.privileged-mounts

multipass set local.privileged-mounts=true


挂载目录
1. 挂载目录 
multipass mount C:\huawei\goproject\SamWaf primary:/home/ubuntu/samwaf

2. 校验是否好使
multipass info primary


3。卸载目录
卸载数据卷
$ multipass umount primary

2.远程linux调试

# 远程linux调试
/cphome/go/go/bin/go env -w GOPROXY=goproxy.cn,direct
/cphome/go/go/bin/go install github.com/go-delve/delve/cmd/dlv@latest

emu:
/root/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./SamWafLinux64

vmbox osboxes.org:
/media/sf_SamWaf/release/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec /media/sf_SamWaf/release/SamWafLinux64


localubuntu 
/home/ubuntu/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./SamWafLinux64.exe

/home/ubuntu/go/bin/dlv --listen=:26667 --headless=true --api-version=2 --accept-multiclient exec ./release/SamWafLinux64.exe

经过wiki后然发现启动的参数有一个--accept-multiclient 的参数,允许多个客户端连接。平时开发的时候一般不会有这样的场景,但是哪怕退出后由于这个参数导致服务已经在阻塞,调试不会终止,把这个参数去掉的话,客服端调试结束后,服务端也就停止服务了。


————————————————
版权声明本文为CSDN博主「liuYinXinAll」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。
原文链接https://blog.csdn.net/liuYinXinAll/article/details/103016871
  1. 一键安装Docker
#1.下载安装脚本 #2.执行安装脚本 #3.加入开机启动 #4.启动docker服务 #5.创建docker组 #6.将当前用户加入docker组
#7.创建配置目录 #7.更新docker组信息 #8.设置自己阿里云镜像加速 #9.重新加载所有系统服务配置 #10.重启docker服务  
#11.开机启动docker服务
$ curl -fsSL get.docker.com -o get-docker.sh \
    && sudo sh get-docker.sh --mirror Aliyun \
    && sudo systemctl enable docker \
    && sudo systemctl start docker \
    && sudo groupadd -f docker \
    && sudo usermod -aG docker $USER \
    && sudo mkdir -p /etc/docker \
    && sudo newgrp docker \
    && sudo echo -e '{\n "registry-mirrors":["https://9zufkov1.mirror.aliyuncs.com"]\n}'>>/etc/docker/daemon.json \
    && sudo systemctl daemon-reload \
    && sudo systemctl restart docker \
    && sudo svstemctl enable docker  
# 查看版本 docker version


  1. 一键安装Docker Compose
# install-compose.yml  

#使用以下方式下载  官网下载连接https://docs.docker.com/compose/install/linux/
# 其他方式下载参考 https://www.cnblogs.com/wtx106/p/15717844.html
#下载稳定版
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#对二进制文件授权
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本号,测试是否安装成功
docker-compose version 


解决 docker-compose command not found
 
原文链接https://blog.csdn.net/qq_30718137/article/details/108408360
  1. 安装go
1.下载https://golang.google.cn/dl/
2. 解压 tar -C /cphome/go -xzf go1.19.linux-amd64.tar.gz 
3./cphome/go/go/bin/go



  1. Multipass 配置


启动运行:管理员模式
.\VM\PSTools\PsExec.exe -s -i "C:\Program Files\Oracle\VirtualBox\VirtualBox.exe"

进入设置环境进行nat环境端口映射
  1. vm C:\Program Files\Oracle\VirtualBox\VBoxManage.exe

调整硬盘大小 "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium --resize 16384 "C:\ProgramData\Multipass\data\virtualbox\vault\instances\primary\ubuntu-22.04-server-cloudimg-amd64.vdi"

  1. 查看变量所在包

编译时候 去掉-s -w

go tool nm .\SamWaf64.exe 查看

windows go tool nm .\SamWaf64.exe >>fuhao.txt

  1. centos 查看实时日志

dmesg -wH

  1. 溢出检测
a. 将main的调试代码打开
192.168.56.101

b.  heap profile 
go tool pprof main http://123.206.66.86:16060/debug/pprof/heap
go tool pprof main http://192.168.56.101:16060//debug/pprof/heap
(https://blog.csdn.net/vankalsin/article/details/126365176)
c.  goroutine profile
go tool pprof main http://123.206.66.86:16060/debug/pprof/goroutine
go tool pprof main http://192.168.56.101:16060//debug/pprof/goroutine

d.  block profile

go tool pprof main http://192.168.56.101:16060//debug/pprof/block

e.  mutex profile

go tool pprof main http://192.168.56.101:16060//debug/pprof/mutex

提示输入top 看


https://www.cnblogs.com/zhanchenjin/p/17101573.html

然后进行list SamWaf/wafenginecore.ProcessDequeEngine 查看具体某一个有问题

  1. 获取系统状态信息
https://juejin.cn/post/7104069654733144078
  1. upx
sudo yum install -y epel-release
sudo yum install -y upx