实验 1 远程登录服务器
两台服务器选择了腾讯云服务器的台Ubuntu-20.04-LTS-x64系统,默认具备SSH服务。
本实验中使用vscode进行远程操作,打开两个终端分别登录两台远程服务器


可以看到远程登录成功
实验 2 依赖环境安装
-
编辑器使用系统自带的
nano
编辑器 -
go语言安装
执行命令
wget -4 -c https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz
解压到
/usr/local
,加入环境变量export PATH=$PATH:/usr/local/go/bin
使其生效
source ~/.profile
验证

-
apt 安装git

实验 3 安装 IPFS
下载压缩包go-ipfs_v0.4.17_linux-amd64.tar.gz
,通过以下命令上传到服务器
scp /E:/go-ipfs_v0.4.17_linux-amd64.tar.gz ubuntu@serverIP:/home/ubuntu/ |
传输后解压并将文件复制到/usr/bin
目录下
sudo tar -zxvf go-ipfs_v0.4.17_linux-amd64.tar.gz -C ~/IPFS/ |
在两个服务器中都执行该过程
实验 4 IPFS 初始化
在两台服务器中执行初始化命令:
ipfs init |
初始化成功
Ubuntu1

Ubuntu2

实验 5 私有网络的共享密钥生成
在Ubuntu1中下载工具
go get -u github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen |
进入下载目录
cd ~/go/src/github.com/Kubuxu/go-ipfs-swarm-key-gen/ipfs-swarm-key-gen |
执行如下命令,生成可执行文件 ipfs-swarm-key-gen:
go build |
生成key
./ipfs-swarm-key-gen > ~/.ipfs/swarm.key |
将上述生成的密钥 key 复制到 Ubuntu2 相同的目录下:
scp ~/.ipfs/swarm.key ubuntu2@ubuntu2 IP:~/.ipfs/ |
在Ubuntu2中查看

实验 6 移除默认的 Bootstrap 节点
在两台服务器上都进行操作: ipfs bootstrap rm –all
移除默认节点
实验 7 启动节点服务
在ubuntu@VM-0-9中查看节点ID并启动节点服务

在ubuntu@VM-0-4中添加节点ubuntu@VM-0-9并启动节点服务

这里使用的连接ip为腾讯云内网ip,固定不变,方便管理
实验 8 测试数据抓包
(1) 通过 IPFS 命令与网络交互,完成以下任务。
① 查看引导节点列表,并查看已连接的其他 IPFS 节点。
在ubuntu@VM-0-4中用ipfs bootstrap list
命令查看引导节点

使用 ipfs swarm peers
查看连接的节点


② 在本地节点添加目录,并查看本地存储的所有文件。
查阅命令在本地对文件操作如下


查看文件内容

③ 在本地节点中==下载==和删除文件。
建立文件添加到IPFS网络

另一台服务器中,利用文件的 Hash 值,读取 ipfs.txt。

本地下载文件

查看已下载的文件

删除文件

(2)抓取测试的数据包。
用Wireshark一直报错,不知道为什么,没有解决…
用Ubuntu自带的端口监听软件TCPDump抓包:
在ubuntu@VM-0-4执行完ipfs add
后抓取到数据包

在ubuntu@VM-0-9执行完ipfs cat hashvalue
后抓取到数据包
