Golang在本地服务器构建Honeytrrap镜像时遇到的问题

Golang在本地服务器构建Honeytrrap镜像时遇到的问题 有人能帮助我吗? 我遇到了以下问题:

命令 '/bin/sh -c CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -tags="" -ldflags="$(go run scripts/gen-ldflags.go)" -o /go/bin/app .' 返回了一个非零代码:2

我使用了命令 docker build -t honeytrap .,然后得到了如下输出:

Step 7/16 : RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -tags="" -ldflags="$(go run scripts/gen-ldflags.go)" -o /go/bin/app .
 ---> Running in cfa095ec9539
go: downloading github.com/fatih/color v1.6.0
go: downloading github.com/op/go-logging v0.0.0-20160211212156-b2cb9fa56473
go: downloading github.com/BurntSushi/toml v0.3.0
go: downloading gopkg.in/urfave/cli.v1 v1.20.0
go: downloading github.com/boltdb/bolt v1.3.1
go: downloading github.com/mattn/go-isatty v0.0.3
go: downloading github.com/Shopify/sarama v1.16.0
go: downloading github.com/honeytrap/protocol v0.0.0-20190410072324-219b95413db0
go: downloading golang.org/x/time v0.0.0-20170927054726-6dc17368e09b
go: extracting golang.org/x/time v0.0.0-20170927054726-6dc17368e09b
go: extracting github.com/honeytrap/protocol v0.0.0-20190410072324-219b95413db0
go: extracting github.com/mattn/go-isatty v0.0.3
go: extracting github.com/boltdb/bolt v1.3.1
go: downloading github.com/miekg/dns v1.0.4
go: extracting github.com/BurntSushi/toml v0.3.0
go: extracting github.com/op/go-logging v0.0.0-20160211212156-b2cb9fa56473
go: downloading github.com/fuyufjh/splunk-hec-go v0.3.3
go: downloading github.com/dutchcoders/gobus v0.0.0-20180915095724-ece5a7810d96
go: extracting gopkg.in/urfave/cli.v1 v1.20.0
go: extracting github.com/fatih/color v1.6.0
go: extracting github.com/Shopify/sarama v1.16.0
go: downloading github.com/davecgh/go-spew v1.1.0
go: downloading github.com/honeytrap/netstack v0.0.0-20190414201528-9ea5e4d2258f
go: downloading github.com/pkg/profile v1.2.1
go: extracting github.com/miekg/dns v1.0.4
go: extracting github.com/davecgh/go-spew v1.1.0
go: extracting github.com/fuyufjh/splunk-hec-go v0.3.3
go: downloading golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: extracting github.com/dutchcoders/gobus v0.0.0-20180915095724-ece5a7810d96
go: downloading github.com/mimoo/disco v0.0.0-20180114190844-15dd4b8476c9
go: extracting github.com/pkg/profile v1.2.1
go: extracting github.com/honeytrap/netstack v0.0.0-20190414201528-9ea5e4d2258f
go: downloading github.com/songgao/water v0.0.0-20180221190335-75f112d19d5a
go: downloading github.com/dgraph-io/badger v0.0.0-20180227002726-94594b20babf
go: downloading github.com/vishvananda/netlink v1.0.0
go: downloading golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
go: downloading github.com/streadway/amqp v0.0.0-20180315184602-8e4aba63da9f
go: extracting github.com/streadway/amqp v0.0.0-20180315184602-8e4aba63da9f
go: downloading github.com/satori/go.uuid v1.2.0
go: extracting golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: downloading github.com/songgao/packets v0.0.0-20160404182456-549a10cd4091
go: downloading gopkg.in/olivere/elastic.v5 v5.0.65
go: extracting github.com/vishvananda/netlink v1.0.0
go: extracting github.com/songgao/water v0.0.0-20180221190335-75f112d19d5a
go: downloading golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
go: downloading github.com/rs/xid v0.0.0-20170604230408-02dd45c33376
go: extracting github.com/rs/xid v0.0.0-20170604230408-02dd45c33376
go: downloading github.com/google/btree v1.0.0
go: extracting github.com/songgao/packets v0.0.0-20160404182456-549a10cd4091
go: downloading github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936
go: extracting github.com/satori/go.uuid v1.2.0
go: downloading github.com/gorilla/websocket v1.2.0
go: extracting github.com/google/btree v1.0.0
go: downloading github.com/yuin/gopher-lua v0.0.0-20190206043414-8bfc7677f583
go: extracting github.com/gorilla/websocket v1.2.0
go: downloading github.com/glycerine/rbuf v0.0.0-20171031012212-54320fe9f6f3
go: extracting github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936
go: downloading github.com/google/gopacket v1.1.14
go: extracting github.com/glycerine/rbuf v0.0.0-20171031012212-54320fe9f6f3
go: downloading github.com/mattn/go-colorable v0.0.9
go: extracting github.com/yuin/gopher-lua v0.0.0-20190206043414-8bfc7677f583
go: downloading github.com/eapache/go-resiliency v1.0.0
go: extracting github.com/mattn/go-colorable v0.0.9
go: downloading github.com/eapache/queue v1.1.0
go: extracting github.com/eapache/go-resiliency v1.0.0
go: downloading github.com/Logicalis/asn1 v0.0.0-20160307192209-c9c836c1a3cd
go: extracting github.com/google/gopacket v1.1.14
go: extracting golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
go: downloading github.com/eapache/go-xerial-snappy v0.0.0-20160609142408-bb955e01b934
go: extracting github.com/eapache/queue v1.1.0
go: downloading github.com/go-asn1-ber/asn1-ber v0.0.0-20170511165959-379148ca0225
go: extracting gopkg.in/olivere/elastic.v5 v5.0.65
go: downloading github.com/mailru/easyjson v0.0.0-20171120080333-32fa128f234d
go: extracting github.com/eapache/go-xerial-snappy v0.0.0-20160609142408-bb955e01b934
go: extracting github.com/go-asn1-ber/asn1-ber v0.0.0-20170511165959-379148ca0225
go: extracting github.com/Logicalis/asn1 v0.0.0-20160307192209-c9c836c1a3cd
go: downloading github.com/golang/snappy v0.0.0-20170215233205-553a64147049
go: extracting github.com/mailru/easyjson v0.0.0-20171120080333-32fa128f234d
go: downloading github.com/rcrowley/go-metrics v0.0.0-20180125231941-8732c616f529
go: downloading github.com/pierrec/lz4 v0.0.0-20171218195038-2fcda4cb7018
go: extracting golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
go: downloading github.com/pkg/errors v0.8.0
go: extracting github.com/dgraph-io/badger v0.0.0-20180227002726-94594b20babf
go: downloading github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102
go: downloading github.com/golang/protobuf v0.0.0-20180202184318-bbd03ef6da3a
go: downloading github.com/AndreasBriese/bbloom v0.0.0-20170702084017-28f7e881ca57
go: extracting github.com/golang/snappy v0.0.0-20170215233205-553a64147049
go: extracting github.com/rcrowley/go-metrics v0.0.0-20180125231941-8732c616f529
go: extracting github.com/AndreasBriese/bbloom v0.0.0-20170702084017-28f7e881ca57
go: extracting github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102
go: extracting github.com/pkg/errors v0.8.0
go: extracting github.com/golang/protobuf v0.0.0-20180202184318-bbd03ef6da3a
go: extracting github.com/mimoo/disco v0.0.0-20180114190844-15dd4b8476c9
go: downloading github.com/mimoo/StrobeGo v0.0.0-20171206114618-43f0c284a7f9
go: extracting github.com/mimoo/StrobeGo v0.0.0-20171206114618-43f0c284a7f9
go: extracting github.com/pierrec/lz4 v0.0.0-20171218195038-2fcda4cb7018
go: downloading github.com/pierrec/xxHash v0.1.1
go: extracting github.com/pierrec/xxHash v0.1.1
go: finding github.com/fatih/color v1.6.0
go: finding github.com/mattn/go-colorable v0.0.9
go: finding gopkg.in/urfave/cli.v1 v1.20.0
go: finding github.com/mattn/go-isatty v0.0.3
go: finding github.com/BurntSushi/toml v0.3.0
go: finding github.com/dutchcoders/gobus v0.0.0-20180915095724-ece5a7810d96
go: finding github.com/op/go-logging v0.0.0-20160211212156-b2cb9fa56473
go: finding github.com/boltdb/bolt v1.3.1
go: finding github.com/dgraph-io/badger v0.0.0-20180227002726-94594b20babf
go: finding github.com/miekg/dns v1.0.4
go: finding github.com/rs/xid v0.0.0-20170604230408-02dd45c33376
go: finding github.com/golang/protobuf v0.0.0-20180202184318-bbd03ef6da3a
go: finding github.com/pkg/errors v0.8.0
go: finding github.com/honeytrap/netstack v0.0.0-20190414201528-9ea5e4d2258f
go: finding golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
go: finding golang.org/x/time v0.0.0-20170927054726-6dc17368e09b
go: finding github.com/AndreasBriese/bbloom v0.0.0-20170702084017-28f7e881ca57
go: finding github.com/glycerine/rbuf v0.0.0-20171031012212-54320fe9f6f3
go: finding github.com/dgryski/go-farm v0.0.0-20180109070241-2de33835d102
go: finding github.com/google/gopacket v1.1.14
go: finding golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: finding github.com/songgao/packets v0.0.0-20160404182456-549a10cd4091
go: finding github.com/songgao/water v0.0.0-20180221190335-75f112d19d5a
go: finding github.com/honeytrap/protocol v0.0.0-20190410072324-219b95413db0
go: finding github.com/Shopify/sarama v1.16.0
go: finding github.com/mimoo/disco v0.0.0-20180114190844-15dd4b8476c9
go: finding github.com/google/btree v1.0.0
go: finding github.com/mimoo/StrobeGo v0.0.0-20171206114618-43f0c284a7f9
go: finding github.com/satori/go.uuid v1.2.0
go: finding golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
go: finding gopkg.in/olivere/elastic.v5 v5.0.65
go: finding github.com/vishvananda/netlink v1.0.0
go: finding github.com/gorilla/websocket v1.2.0
go: finding github.com/pkg/profile v1.2.1
go: finding github.com/vishvananda/netns v0.0.0-20171111001504-be1fbeda1936
go: finding github.com/fuyufjh/splunk-hec-go v0.3.3
go: finding github.com/mailru/easyjson v0.0.0-20171120080333-32fa128f234d
go: finding github.com/streadway/amqp v0.0.0-20180315184602-8e4aba63da9f
go: finding github.com/davecgh/go-spew v1.1.0
go: finding github.com/eapache/go-resiliency v1.0.0
go: finding github.com/eapache/go-xerial-snappy v0.0.0-20160609142408-bb955e01b934
go: finding github.com/golang/snappy v0.0.0-20170215233205-553a64147049
go: finding github.com/eapache/queue v1.1.0
go: finding github.com/pierrec/lz4 v0.0.0-20171218195038-2fcda4cb7018
go: finding github.com/rcrowley/go-metrics v0.0.0-20180125231941-8732c616f529
go: finding github.com/pierrec/xxHash v0.1.1
go: finding github.com/Logicalis/asn1 v0.0.0-20160307192209-c9c836c1a3cd
go: finding github.com/go-asn1-ber/asn1-ber v0.0.0-20170511165959-379148ca0225
go: finding github.com/yuin/gopher-lua v0.0.0-20190206043414-8bfc7677f583
# github.com/google/netstack/tcpip/stack
/go/pkg/mod/github.com/honeytrap/netstack@v0.0.0-20190414201528-9ea5e4d2258f/tcpip/stack/stack.go:342:12: undefined: tcpip.StdClock
# github.com/google/netstack/tcpip/link/rawfile
/go/pkg/mod/github.com/honeytrap/netstack@v0.0.0-20190414201528-9ea5e4d2258f/tcpip/link/rawfile/raw

更多关于Golang在本地服务器构建Honeytrrap镜像时遇到的问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html

5 回复

好的,感谢您的帮助和信息。

更多关于Golang在本地服务器构建Honeytrrap镜像时遇到的问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


那么,我该怎么做?你能解释一下吗?

我认为如果你向Honeytrap提问这个问题或者使用Google的netstack,可能会得到更好的答案。我对此没有答案,抱歉。

看起来 github.com/honeytrap/netstack 落后于谷歌的 netstack

在 honeytrap 的 netstack 仓库中找不到 BlockingPoll。

/go/pkg/mod/github.com/honeytrap/netstack@v0.0.0-20190414201528-9ea5e4d2258f/tcpip/link/rawfile/rawfile_unsafe.go:126:10: undefined: BlockingPoll

这个问题是由于 github.com/honeytrap/netstack 依赖的 github.com/google/netstack 版本不兼容导致的。tcpip.StdClock 在较新版本的 netstack 中已被移除或修改。

以下是解决方案:

1. 更新 go.mod 文件

在项目根目录的 go.mod 文件中,添加 netstack 的替换规则:

module your-module-name

go 1.13

replace github.com/google/netstack => github.com/google/netstack v0.0.0-20191114190820-2a9b4d6d2c1e

require (
    github.com/honeytrap/netstack v0.0.0-20190414201528-9ea5e4d2258f
    // 其他依赖...
)

2. 或者使用 vendor 模式

如果项目使用 vendor 目录:

# 清理旧的 vendor
rm -rf vendor

# 设置正确的 netstack 版本
go mod edit -replace github.com/google/netstack=github.com/google/netstack@v0.0.0-20191114190820-2a9b4d6d2c1e

# 重新下载依赖
go mod vendor

3. Dockerfile 修改示例

确保 Dockerfile 中正确设置了 Go 模块代理:

FROM golang:1.13-alpine AS builder

# 设置 Go 模块代理
ENV GOPROXY=https://goproxy.cn,direct
ENV GO111MODULE=on

WORKDIR /app

# 复制 go.mod 和 go.sum
COPY go.mod go.sum ./

# 下载依赖
RUN go mod download

# 复制源代码
COPY . .

# 构建应用
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo \
    -ldflags="$(go run scripts/gen-ldflags.go)" \
    -o /go/bin/app .

FROM alpine:latest
COPY --from=builder /go/bin/app /app
ENTRYPOINT ["/app"]

4. 如果使用旧版 Go

对于 Go 1.11 或 1.12,需要在 Dockerfile 中添加:

ENV GO111MODULE=on
RUN go mod init || true
RUN go mod tidy

5. 完整构建命令

清理并重新构建:

# 清理 Docker 缓存
docker system prune -a

# 重新构建镜像
docker build --no-cache -t honeytrap .

主要问题是 github.com/honeytrap/netstack 依赖的 netstack 版本过旧,通过替换为兼容版本即可解决 tcpip.StdClock 未定义的错误。

回到顶部