IPFS 挖坑实录(一)

前言

给明年的作品赛准备实验场景,需要用到IPFS这个分布式存储协议,这个协议吹得挺厉害,所以打算试一试,但是在配置过程中碰到了不少的问题,写个笔记记录一下,以便以后有用到的时候。其实简单来讲,当前阶段碰到的所有问题都是代理的问题,所以怎么去好好解决这个代理问题才是关键。

问题描述

安装过程中,这两条命令无法执行,或超时

  1. go get -u -v github.com/ipfs/ipfs-update #无法运行
    
  2. > 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搭建二级代理

用这个方法的前提是,你得有一台国外的服务器,我在这里使用的是搬瓦工最便宜的套餐,一方面过墙,一方面学校的流量太贵,搬瓦工的vpsipv6,挂上酸酸可以实现ipv4ipv6,能省不少网费,话有点多,回归正题。

为什么不能只用shadowsock作为代理

最开始我尝试了使用shadowsock尝试,但是失败了,原因在于酸酸是使用socket进行代理的,但是有很多的应用使用的是http代理,所以如果直接使用酸酸是没法完成我们希望的要求的,所以这里需要另一个工具来完成sockethttp的转换,也就是一个二级代理。

cow 工具

这是一个国人写的、简单的http代理服务器,可以自动生成pac文件,其实类似的二级代理工具还挺多,比如polipo等,找一个能用的就行,安装过程简单粗暴,直接curl取回来,然后bash安装,教程在官网已经写的非常清楚了。

  1. 在国外的服务器上安装cow

    curl -L git.io/cow | bash
    
    vim ~/./cow/rc  #对rc文件进行编辑
    
    # 注释掉现有行,加入一下内容
    listen = cow://aes-128-cfb:[email protected]:8388
    
    ./cow &  #找到安装的可执行文件位置,并启动为daemon
    
  2. 在需要代理的机器上安装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 &
    
  3. 安装完成,前面执行不了的命令已经可以了

    IPFS 挖坑实录(一)-LMLPHP

结论

大概了解了二级代理的原理和酸酸的局限性了,一开始还觉着自己酸酸配出问题了。

12-23 22:55