V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
leegoo
V2EX  ›  Go 编程语言

老哥们,问一个 go build 代理的问题

  •  
  •   leegoo · 217 天前 · 828 次点击
    这是一个创建于 217 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在有一台 vmware centos7 服务器。使用 yum 安装了 golang

    并且在/etc/profiles 设置了 http_proxy 和 https_proxy 代理

    /etc/profiles 设置的内容如下:

    export http_proxy=http://192.168.230.1:808
    export https_proxy=https://192.168.230.1:808
    
    
    

    但是当我使用 go build xxx.go 的时,就会报错, go env 设置如下:

    [root@localhost tz-monitor]# go env
    GO111MODULE=""
    GOARCH="amd64"
    GOBIN=""
    GOCACHE="/root/.cache/go-build"
    GOENV="/root/.config/go/env"
    GOEXE=""
    GOEXPERIMENT=""
    GOFLAGS=""
    GOHOSTARCH="amd64"
    GOHOSTOS="linux"
    GOINSECURE=""
    GOMODCACHE="/root/go/pkg/mod"
    GONOPROXY=""
    GONOSUMDB=""
    GOOS="linux"
    GOPATH="/root/go"
    GOPRIVATE=""
    GOPROXY="https://goproxy.io,direct"
    GOROOT="/usr/lib/golang"
    GOSUMDB="sum.golang.org"
    GOTMPDIR=""
    GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
    GOVCS=""
    GOVERSION="go1.19.10"
    GCCGO="gccgo"
    GOAMD64="v1"
    AR="ar"
    CC="gcc"
    CXX="g++"
    CGO_ENABLED="1"
    GOMOD="/home/golang/tz-monitor/go.mod"
    GOWORK=""
    CGO_CFLAGS="-g -O2"
    CGO_CPPFLAGS=""
    CGO_CXXFLAGS="-g -O2"
    CGO_FFLAGS="-g -O2"
    CGO_LDFLAGS="-g -O2"
    PKG_CONFIG="pkg-config"
    GOGCCFLAGS="-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build1417382532=/tmp/go-build -gno-record-gcc-switches"
    
    
    

    使用 go build 时

    [root@localhost tz-monitor]# go build main.go 
    go: downloading github.com/shirou/gopsutil/v3 v3.23.8
    main.go:6:2: github.com/shirou/gopsutil/[email protected]: Get "https://goproxy.io/github.com/shirou/gopsutil/v3/@v/v3.23.8.zip": proxyconnect tcp: EOF
    
    

    我看网上 go build 设置代理的意思好像是,访问国内的镜像,而非真正的代理。

    我也尝试过,直接在有网的机器把v3.23.8.zip 传到这台没网的机器 然后使用 go build。然而毫无卵用

    老哥们 ,我这个怎么搞

    9 条回复    2023-10-07 09:53:09 +08:00
    timnottom
        1
    timnottom  
       217 天前
    https://goproxy.cn/


    使用如下命令添加模块代理:

    ```
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    ```
    leegoo
        2
    leegoo  
    OP
       217 天前
    @timnottom

    [root@localhost tz-monitor]# go env -w GO111MODULE=on
    [root@localhost tz-monitor]# go env -w GOPROXY=https://goproxy.cn,direct
    [root@localhost tz-monitor]# go build main.go
    go: downloading github.com/shirou/gopsutil/v3 v3.23.8
    main.go:6:2: github.com/shirou/gopsutil/[email protected]: Get "https://goproxy.cn/github.com/shirou/gopsutil/v3/@v/v3.23.8.zip": proxyconnect tcp: EOF
    timnottom
        3
    timnottom  
       217 天前
    @leegoo #2 还是是代理问题吧,为什么要设置 http_proxy https_proxy 代理 ?
    iSecret
        4
    iSecret  
       217 天前
    先 unset http_proxy https_proxy 重置掉代理,然后使用 go env -w GOPROXY=https://goproxy.cn,direct 试试。
    iSecret
        5
    iSecret  
       217 天前
    另外你的 https_proxy 设置得有问题,不应该设置为 https 代理。

    export http_proxy=http://192.168.230.1:808
    export https_proxy=http://192.168.230.1:808
    export all_proxy=socks5://192.168.230.1:808
    iSecret
        6
    iSecret  
       217 天前   ❤️ 1
    我在这里也找到了类似问题,可以了解一下具体原因。

    https://github.com/goproxy/goproxy.cn/issues/71#issuecomment-599986830
    skiy
        7
    skiy  
       217 天前
    一定要用 http_proxy 吗?都用 goproxy 了。如果没必要,可以 http_proxy="" go build 看看?
    learningman
        8
    learningman  
       216 天前 via Android
    没网就 go mod vendor 呗
    leegoo
        9
    leegoo  
    OP
       208 天前
    @iSecret 感谢。非常好用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   741 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:30 · PVG 05:30 · LAX 14:30 · JFK 17:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.