部署私有IPFS网络,将本地电脑也作为一个IPFS节点,实现文件互通。(win安装IPFS,linux安装IPFS)

一、前提准备

  1. 虚拟机ipfs1:192.168.22.136
  2. 虚拟机ipfs2:192.168.22.137
  3. 本机:192.68.40.145

二、远程节点安装IPFS(Linux安装IPFS)

跟着以下命令一步一步执行,注意不要复制$符号

  1. 安装go环境及其配置环境变量
#下载go
$ cd /home
$ wget https://golang.google.cn/dl/go1.17.1.linux-amd64.tar.gz
$ tar -zxvf go1.17.1.linux-amd64.tar.gz -C /usr/local


#配置go环境变量
$ vim /etc/profile

# golang env 文件末尾追加以下内容
export GOROOT=/usr/local/go
export GOPATH=/data/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
 
$ source /etc/profile
# 创建工作目录:
$ mkdir -p /data/gopath && cd /data/gopath
$ mkdir -p src pkg bin
  1. 安装ipfs、初始化
# 下载
$ cd /home
$ wget https://download.fastgit.org/ipfs/go-ipfs/releases/download/v0.9.1/go-ipfs_v0.9.1_linux-amd64.tar.gz

# 解压缩
$ tar xvfz go-ipfs_v0.9.1_linux-amd64.tar.gz

# 安装
$ cd go-ipfs/
$ ./install.sh 

#指定IPFS存储位置
$ export IPFS_PATH="/root/.ipfs/" 

#初始化,默认会在/root/目录下生成一个隐藏目录`.ipfs`,
#作为ipfs的local存储。可用`ls -a` 查看
$ ipfs init 
  1. 生成共享的key(该key是实现节点间互通的一个凭证),并加到节点的 ~/.ipfs/文件夹内。
#下载key生成工具
$ git clone https://hub.fastgit.org/Kubuxu/go-ipfs-swarm-key-gen.git

#编译
$ go build -o ipfs-swarm-key-gen go-ipfs-swarm-key-gen/ipfs-swarm-key-gen/main.go

#生成swarm.key
$ ./ipfs-swarm-key-gen > swarm.key

#给136节点增加该key,同时,137节点、本地节点也需要增加。
$  cp swarm.key  ~/.ipfs/

#给137节点也加上
$  scp root@192.168.22.137:~/.ipfs/swarm.key ~/.ipfs
  1. 添加网络节点(ipfs1节点需要添加ipfs2跟本地节点)
#移除所有默认节点
$ ipfs bootstrap rm all

#查看节点id,
$ ipfs id 



#在136上添加137
$ ipfs bootstrap add /ip4/192.168.22.137/4001/ipfs/上一步查询到的137节点ID

#比如137节点的ID是qazxswedc,那执行ipfs bootstrap add /ip4/192.168.22.137/tcp/4001/ipfs/qazxswedc

#在137上添加136
$ ipfs bootstrap add /ip4/192.168.22.136/4001/ipfs/上一步查询到的136节点ID
  1. 启动IPFS服务,测试网络连通性,查看IPFS连接了节点数。
#正常运行,关闭窗口停止
$ ipfs daemon

#后台运行,关闭不停止
$ nohup ipfs daemon

#查看节点数
$ ipfs stats bitswap
#`partners`就是连接到的节点数量,因为我们现在只有两个节点,所以`partners`是`1`。

三、本地节点安装IPFS

  1. 下载安装包:微新搜索公从号"IT学习小镇"回复"ipfs"获取安装包
  2. 安装初始化:
#1、在解压文件下,进入cmd命令行
#2、初始化,会告知.ipfs仓库位置。
ipfs init

#3、从远程节点下拉取swarm.key复制到本地.ipfs仓库中。
#4、添加各自网络节点
#5、添加config配置
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '[\"*\"]' 
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\", \"GET\", \"POST\"]"
$ ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials "[\"true\"]"
#6、启动服务
ipfs daemon
  1. 测试查看:检查远程节点和本地节点是否启动了ipfs服务(是否执行ipfs daemon),本地执行ipfs stats bitswap。如partners为2,则整体操作成功。

四、测试

  1. 本地节点上传文件,远程获取该文件
#1、本地执行ipfs add a.txt
#2、复制上传成功的hash值
#3、在远程执行ipfs cat hash值查看文件

在这里插入图片描述

  1. 远程节点上传文件,本地获取该文件
#1、远程创建文件并执行ipfs add 1.txt
#2、复制hash值
#3、本地cat查看

在这里插入图片描述

五、总结

要想做到节点间连通,前提条件。
(1)仓库拥有同一个swarm.key
(2)添加各自的网络节点
(3)IPFS服务处于启动状态

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实现阿里云中两个VPC专有网络中的两台ECS互通的方法有以下几个步骤: 步骤一:创建VPC专有网络 首先,在阿里云的控制台上创建两个VPC专有网络,分别命名为VPC A和VPC B。确保两个VPC的CIDR地址段不冲突,例如VPC A的CIDR地址段为10.0.0.0/16,VPC B的CIDR地址段为192.168.0.0/16。 步骤二:创建VSwitch 在每个VPC中创建一个VSwitch,并关联到相应的VPC中。可分别命名为VSwitch A和VSwitch B。确定每个VSwitch的CIDR地址段范围,例如VSwitch A的CIDR地址段为10.0.1.0/24,VSwitch B的CIDR地址段为192.168.1.0/24。 步骤三:创建ECS实例 在VPC A中创建一台ECS实例A,并分配一个私有IP地址,例如10.0.1.11。在VPC B中也创建一台ECS实例B,并分配一个私有IP地址,例如192.168.1.11。 步骤四:创建VPC对等连接 在阿里云的控制台上,进行VPC网络的管理,选择创建一个VPC对等连接。选择VPC A和VPC B进行对等连接,并进行连接确认。等待对等连接成功建立。 步骤五:配置安全组规则 在ECS实例的安全组规则中,添加允许对等连接流量的入站和出站规则。设置源IP为对等连接的目标私有IP地址,目标IP为对等连接的源私有IP地址。 经过以上步骤的配置,即可实现VPC A和VPC B中的两台ECS互通。通过对等连接的建立,两台ECS实例可以通过对等连接进行内网通信。例如ECS实例A可以通过内网IP地址192.168.1.11访问ECS实例B,反之亦然。通过这种方式,可以实现不同VPC内的资源互相访问和通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT学习小镇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值