作为一个小白,困惑了快半个小时,一直以为是自己的环境搭建有问题。
后来我终于知道了,原来golang.org与godoc.org是墙外的网站。
所以,装软件的时候,会有下面的错误
/home/tong/go/src/local/test [tong@TStation] [12:24] > proxychains go get -v golang.org/x/tools/cmd/guru [proxychains] config file found: /etc/proxychains.conf [proxychains] preloading /usr/lib/libproxychains4.so package golang.org/x/tools/cmd/guru: unrecognized import path "golang.org/x/tools/cmd/guru" (https fetch: Get https://golang.org/x/tools/cmd/guru?go-get=1: dial tcp 224.0.0.1:443: connect: network is unreachable)
或
> go get -v golang.org/x/database/sql package golang.org/x/database/sql: unrecognized import path "golang.org/x/database/sql" (https fetch: Get https://golang.org/x/database/sql?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
使用浏览器的时候,我们有办法访问它。
在命令行下 go get的时候,就需要命令行下的方法,
我一般使用 proxychain工具,它可以使它的子进程全部走它的网络出口,但是不知道为什么go get却不行。
这时候,其实还有更简单的方式,就是用环境变量,如下:
https_proxy=socks5://127.0.0.1:1080 go get -v golang.org/x/tools/cmd/guru
对应的其他大同小异的,还有:
# set http proxy export http_proxy=http://127.0.0.1:8080 # set http proxy with user and password export http_proxy=http://USERNAME:PASSWORD@127.0.0.1:8080 # set http proxy with user and password (with special characters) export http_proxy=http://`urlencode 'USERNAME'`:`urlencode 'PASSWORD'`@127.0.0.1:8080 # set socks proxy (local DNS) export http_proxy=socks5://127.0.0.1:1080 # set socks proxy (remote DNS) export http_proxy=socks5h://127.0.0.1:1080