IPFS 挖坑实录(一)
前言
给明年的作品赛准备实验场景,需要用到IPFS
这个分布式存储协议,这个协议吹得挺厉害,所以打算试一试,但是在配置过程中碰到了不少的问题,写个笔记记录一下,以便以后有用到的时候。其实简单来讲,当前阶段碰到的所有问题都是代理的问题,所以怎么去好好解决这个代理问题才是关键。
问题描述
安装过程中,这两条命令无法执行,或超时
go get -u -v github.com/ipfs/ipfs-update #无法运行
> hash=`echo "I <3 IPFS -$(whoami)" | ipfs add -q` > curl "https://ipfs.io/ipfs/$hash" I <3 IPFS -<your username> # 无法运行或者超时
问题原因
其实如果仔细看日志的话,就会发现,go get
这个命令实际是被阻塞在了对golang.org
的访问过程中,而第2条命令也是由于无法访问https://ipfs.io
导致的,简单来讲,我们被墙了,国情如此,所以自谋它法。
问题解决
cow + shadowsocks
搭建二级代理
用这个方法的前提是,你得有一台国外的服务器,我在这里使用的是搬瓦工最便宜的套餐,一方面过墙,一方面学校的流量太贵,搬瓦工的vps
有ipv6
,挂上酸酸可以实现ipv4
转ipv6
,能省不少网费,话有点多,回归正题。
为什么不能只用shadowsock作为代理
最开始我尝试了使用shadowsock
尝试,但是失败了,原因在于酸酸是使用socket
进行代理的,但是有很多的应用使用的是http
代理,所以如果直接使用酸酸是没法完成我们希望的要求的,所以这里需要另一个工具来完成socket
到http
的转换,也就是一个二级代理。
cow 工具
这是一个国人写的、简单的http
代理服务器,可以自动生成pac
文件,其实类似的二级代理工具还挺多,比如polipo
等,找一个能用的就行,安装过程简单粗暴,直接curl
取回来,然后bash
安装,教程在官网已经写的非常清楚了。
在国外的服务器上安装
cow
curl -L git.io/cow | bash vim ~/./cow/rc #对rc文件进行编辑 # 注释掉现有行,加入一下内容 listen = cow://aes-128-cfb:[email protected]:8388 ./cow & #找到安装的可执行文件位置,并启动为daemon
在需要代理的机器上安装
cow
,当然也可以安装在另一台curl -L git.io/cow | bash vim ~/./cow/rc #最好是新建一个 #新增行 listen = http://127.0.0.1:7777 proxy = cow://aes-128-cfb:password@vps_ip:8388 #回到bash,导入代理 export http_proxy=http://127.0.0.1:7777 export https_proxy=http://127.0.0.1:7777 #当然也可以写入profile文件 #找到可执行文件,执行 ./cow &
安装完成,前面执行不了的命令已经可以了
结论
大概了解了二级代理的原理和酸酸的局限性了,一开始还觉着自己酸酸配出问题了。