部署一台Ubuntu服务器
设置科学上网,因为ipfs已被墙
购买科学上网服务,SSR服务,如bosXXX和rixXXXX,得到一堆ssr服务地址
部署Ubuntu SSR客户端
- 下载ssr客户端
1 | wget https://onlyless.github.io/ssr |
- 配置ssr地址
1 | { |
- 重启
1 | ssr restart |
- 配置开机启动, vim /etc/rc.local
1 | #!/bin/sh -e |
安装Privoxy
因为ssr是sock5代理,不接受http/https流量,使用的时候需要将其转化成http/https流量
安装Privoxy
1 | apt-get install privoxy |
- 配置Privoxy,打开其配置文件/etc/privoxy/config,修改以下几个地方
- 找到4.1. listen-address,确认privoxy监听的端口号
1 | # Example: |
- 找到5.2. 设置sock5转发
1 | # Unencrypted connections to systems in these address ranges |
- 重启Privoxy
1 | /etc/init.d/privoxy restart |
- 编写两个bash脚本,start_proxy.sh,stop_proxy.sh;用source start_proxy.sh/stop_proxy.sh 来开启和关闭代理
1 | # start_proxy.sh |
1 | # stop_proxy.sh |
- 开始代理,测试是否可以穿墙
1 | source start_proxy.sh |
安装开发工具
- 安装工具 git
1 | apt-get install git |
- 安装golang
1 | wget https://dl.google.com/go/go1.10.2.linux-amd64.tar.gz |
- 创建一个golang工作目录,比如~/gopath,编辑.bashrc,在文件最后添加以下内容;确保.profile 会调用.bashrc
1 | export GOPATH="$HOME/gopath" |
下载编译源码
- 下载源码。虽然已经翻墙,但也不能直接编译,原因是ipfs使用的包管理工具gx不支持http代理。
1 | go get -u -d -v github.com/ipfs/go-ipfs |
编译ipfs包管理工具GX
下载GX
1
2go get -u -v -d github.com/whyrusleeping/gx
go get -u -v -d github.com/whyrusleeping/gx-go修改 github.com/ipfs/go-ipfs-api/shell.go
1
2
3
4
5
6
7
8
9
10func NewShell(url string) *Shell {
c := &gohttp.Client{
Transport: &gohttp.Transport{
Proxy: gohttp.ProxyFromEnvironment, // 这里是添加的一行
DisableKeepAlives: true,
},
}
return NewShellWithClient(url, c)
}编译GX,编译完后可以在$(GOPATH)/bin目录找到gx和gx-go程序
1
2go install github.com/whyrusleeping/gx
go install github.com/whyrusleeping/gx-go
用gx下载所有的依赖包
1 | gx install --global |
- 进入go-ipfs目录,编译ipfs,编译完后可以在$(GOPATH)/bin目录找到ipfs程序
1 | make install |