惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
S
Secure Thoughts
S
Security @ Cisco Blogs
S
Security Affairs
Forbes - Security
Forbes - Security
W
WeLiveSecurity
H
Hacker News: Front Page
T
Threatpost
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - Franky
腾讯CDC
IT之家
IT之家
博客园 - 聂微东
L
LINUX DO - 最新话题
罗磊的独立博客
Hacker News - Newest:
Hacker News - Newest: "LLM"
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
Hacker News: Ask HN
Hacker News: Ask HN
C
CXSECURITY Database RSS Feed - CXSecurity.com
C
Cybersecurity and Infrastructure Security Agency CISA
C
CERT Recently Published Vulnerability Notes
Know Your Adversary
Know Your Adversary
V
Vulnerabilities – Threatpost
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园_首页
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cisco Talos Blog
Cisco Talos Blog
S
SegmentFault 最新的问题
酷 壳 – CoolShell
酷 壳 – CoolShell
Hugging Face - Blog
Hugging Face - Blog
L
LINUX DO - 热门话题
美团技术团队
G
GRAHAM CLULEY
T
The Exploit Database - CXSecurity.com
AI
AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Jina AI
Jina AI
Help Net Security
Help Net Security
N
News | PayPal Newsroom
月光博客
月光博客
Spread Privacy
Spread Privacy
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
N
News and Events Feed by Topic

Razeen`s Blog

Let's Encrypt 推出 Gen Y 根证书架构:揭示 Web PKI 的五大未来趋势 通过 Wi-Fi 自动备份你的 iPhone 到 Nas 管理培训感悟:从技术视角看管理之路 UPS 一拖多:保护你的 NAS 和 Linux 服务器 从影音中心到 AI 助手:我的50款 Homelab 服务清单 从SSL证书有效期将缩短到47天聊开去 部署一个自己的 Running Page 谈谈特斯拉 Model Y 用车一年的感受和费用分析 弃用 Disqus 评论,使用自建 Waline 使用 Prometheus 和 Grafana 搭建你的证书监控面板 服务器迁移记:一次磁盘换板引发的Linux分区与挂载的学习 改善信息来源, 利用 RSS 高效获取资讯 (RSShub + Reeder5 + WeWe RSS) 多种 Docker 镜像拉取解决方案与实践 App分享 | AppCleaner - Mac上的卸载神器 Azure OpenAI API 申请和使用 如何开通 OneKey 虚拟信用卡,并充值消费 如何拥有一个可长期在国内使用的国外手机号码 分享开通 ChatGPT Plus 过程 如何开通 Depay 虚拟信用卡,并充值消费 如何开通欧易Web3钱包, 交易入账 如何5分钟内1块钱注册 ChatGPT 如何注册美区的 Apple ID (2023年/无需科学上网) NAS折腾记(11): NASTool3.0体验和降级 NAS折腾记(10): Docker版本的NASTool配置 NAS折腾记(9): NASTool与微信交互,微信发送消息远程下载电影【多图】 NAS折腾记(8):群晖安装 NASTool 实现影音半自动化【多图】 内网穿透(2):Tailscale 组网实现内网穿透,操作简单,无成本 内网穿透(1):总结了11中内网穿透的方式,总有一种适合你 NAS折腾记(7):从零开始设置(黑)群晖系统 NAS折腾记(6):黑群晖系统安装好后怎么洗白? NAS折腾记(5):群晖硬盘休眠设置与分析 NAS折腾记(4): 20分钟手把手带你完美安装 DS918+ 黑群晖7.1.1 NAS折腾记(3):NAS 装机 NAS折腾记(2):B360-ITX 双M.2 双2.5G网口 6 SATA主版 开箱 NAS折腾记(1):328元的4盘位Nas机箱开箱 Openwrt + Clash 全局科学上网 Newifi3 刷入 OpenWrt 固件 v21.02 利用 Markdown 画一些流程图、时序图、甘特图等 Homelab(8): 搭建自用 Gitlab 与 Docker 仓库 Nginx Tcp 转发保留客户端真实 IP (PROXY Protocol) Homelab (7):IPSec VPN(基于证书认证)客户端设置 Homelab (6): 基于自签发证书的 IPSec VPN 搭建 Homelab (5): DDNS 动态域名解析 Homelab (4): Linux 服务器基础环境准备 Homelab (3): 整体网络与基础硬件介绍 Go学习笔记(十)老项目迁移 go module 大型灾难记录 Github Actions 初体验之自动化部署 Hexo 博客 记一次 Nginx DNS 缓存导致转发问题 Homelab (2): 电信悦me网关修改桥接模式,路由器拨号 Homelab (1):5分钟上手黑群晖 NAS 终极 Bash 脚本指南 Typora 自动上传图片到七牛云 Ubuntu 20.04 LTS 有线网卡驱动安装 折腾 Ubuntu 20.04 LTS 开发环境 Go学习笔记(九) 计时器的生命周期[译] 利用 git hook 规范你的代码与 commit message 规范 git commit message 与自动化版本控制 超详细 vim 配置 (with MacVim) Golang 中的 RESTful API 最佳实践 折腾服务器(开篇) 我的第一台个人服务器 Newifi3 实现低成本家庭级科学上网 Go学习笔记(八) | 使用 os/exec 执行命令 如何用 Go 调用 Windows API Mac OS 自动根据 WI-FI 名字改变网络位置 关于 Docker 清理 MIME Types 速查表 Go学习笔记(七) | 理解OAuth 2.0并实现一个客户端 我又又又把博客迁移了 Go学习笔记(六) | 使用swaggo自动生成Restful API文档 Go学习笔记(五) | 使用代码片段(snippets)提高编码效率 书单 - 2018 记一次 PostgreSQL LIKE 索引优化,联合字段 LIKE 查询优化。 Disqus 添加有趣的 Reactions 的功能 TLS 1.3 详解 (RFC 8446解读) gRPC在Go中的使用(三)gRPC实现TLS加密通信与流模式 gRPC在Go中的使用(二)gRPC实现简单通讯 gRPC在Go中的使用(一)Protocol Buffers语法与相关使用 CentOS 安装 tshark 抓包工具 Go学习笔记(四) | win上使用VSCode搭建Go开发环境 日常 Postgres 数据库点滴记录 简单了解 PKCS 规范 美食篇 | DIY戚风蛋糕(烤箱做蛋糕) Go学习笔记(三) | 怎么写Go基准测试(性能测试) TLS1.3正式更新,为Nginx添加TLS1.3的支持 一次诡异的数据库删除 GitHub Pages自定义域名开启HTTPS 证书透明度是什么?它是怎么工作的? Go学习笔记(二) | 我对 recover 的一点误解 搭建证书透明度(certificate-transparency)日志服务之从入门到放弃 修复远程登陆 Centos 时,出现 UTF-8 Warning HTTPS篇之SSL握手过程详解 Go学习笔记(一) | postgres与golang点点滴滴 AWS 命令行界面(aws-cli)从安装到快速上手 数字证书分类及怎么区分各类数字证书 常用 linux 命令小结(一)文件目录操作 云服务器搭建 hexo 博客,git hooks自动更新 SSH 免密登陆, SSH Config 配置 Golang CGO Mac 交叉编译 Windows 使用 goose 让数据库迁移更加轻松 开始使用Ghost
IPFS 初体验,利用 IPFS 托管你的静态网站
2018-09-23 · via Razeen`s Blog

首先,我们需要知道IPFS是什么?

其实IPFS是一种协议,全称为Inter-Planetary File System,是一种点对点超媒体协议,旨在取代旧的HTTP,使网络更快,更安全,更开放。

我们平常都通过HTTP协议去访问一个网站,我们都知道在我们敲出一个网站后,我们实际上通过这个网址找了了服务器的IP,然后通过IP我们和服务器建立通信。而这种通信的稳定性它取决于对方服务是否可靠,万一挂了,我们肯定无法访问。同时还取决于我们的主干网络是不是通畅,如果那个地方主干网的光纤一不小心被挖断了,那可能导致某个服务就得挂一段时间了。

这也就是我们所说的HTTP趋于超中心化可能存在的隐患。而IPFS就是用来解决这些问题。IPFS让每一个人都可以成为一个服务节点,一旦你上传一个文件到IPFS,你的文件将会被存储在不同的节点,然后你会得到一个由文件内容计算出的加密哈希值。当你通过该哈希值下载你的文件时,IPFS会会使用一个分布式哈希表找到文件所在的节点,取回文件并验证文件数据。这样,就实现了一个分布式的服务节点,既是你自己的节点挂了,你的文件依然可以正常访问。

这篇文章,我们一起通过IPFS搭建一个简单页面

安装IPFS

首先,我们需要安装IPFS。

这里找到适合你的平台的安装文件,下载。

然后解压,安装。

$ tar -zxvf go-ipfs_v0.4.18_darwin-amd64.tar.gz
$ cd go-ipfs
$ ./install.sh

查看是否安装完成。

$ ipfs --help
USAGE:

    ipfs - Global p2p merkle-dag filesystem.

这样,们就安装好了ipfs命令。之后,我们初始化一下。

$ ipfs init
initializing IPFS node at /Users/jin/.ipfs
generating 2048-bit RSA keypair...done
peer identity: QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6Ubj
to get started, enter:

	ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme

初始化的过程中,生成了一个公私钥对,正是通过该公钥来标识我们的身份。

看看readme都写了些啥。

$ ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/readme
Hello and Welcome to IPFS!

██╗██████╗ ███████╗███████╗
██║██╔══██╗██╔════╝██╔════╝
██║██████╔╝█████╗  ███████╗
██║██╔═══╝ ██╔══╝  ╚════██║
██║██║     ██║     ███████║
╚═╝╚═╝     ╚═╝     ╚══════╝

If you're seeing this, you have successfully installed
IPFS and are now interfacing with the ipfs merkledag!

 -------------------------------------------------------
| Warning:                                              |
|   This is alpha software. Use at your own discretion! |
|   Much is missing or lacking polish. There are bugs.  |
|   Not yet secure. Read the security notes for more.   |
 -------------------------------------------------------

Check out some of the other files in this directory:

  ./about
  ./help
  ./quick-start     <-- usage examples
  ./readme          <-- this file
  ./security-notes

这里有一些帮助文档,你可以先了解一下。

ipfs cat /ipfs/QmS4ustL54uo8FzR9455qaxZwuMiUhyvMcX9Ba8nUH4uVv/quick-start就可以查看quick-start

准备一个简单的网页

接下来,我们准备一个简单的页面。

  • 文件 ipfs_file/index.html
<!DOCTYPE html>
<link rel="stylesheet" type="text/css" href="styles.css">
<html>
    <body>
        <h1>Hello World</h1>
        <p> 我的IPFS</p>
        <a href="https://razeen.me/post/start-ipfs-gateway.html#toc_0"> Back </a> 
    </body>
</html>
  • 文件 ipfs_file/styles.css
body {
    background-color: #ccc;
    text-align: center;
    margin-top: 88px;
}

启动IPFS服务

$ ipfs daemon
Initializing daemon...
Successfully raised file descriptor limit to 2048.
Swarm listening on /ip4/127.0.0.1/tcp/4001
Swarm listening on /ip4/192.168.3.16/tcp/4001
Swarm listening on /ip6/::1/tcp/4001
Swarm listening on /p2p-circuit/ipfs/QmQfPXYpcKWim9yQRhbZxxrgUve5VzHJD7h4miu2oQ6Ubj
Swarm announcing /ip4/127.0.0.1/tcp/4001
Swarm announcing /ip4/192.168.3.16/tcp/4001
Swarm announcing /ip6/::1/tcp/4001
API server listening on /ip4/127.0.0.1/tcp/5001
Gateway (readonly) server listening on /ip4/127.0.0.1/tcp/8080
Daemon is ready

如果你查看了quick-start你应该知道,我们可以通过浏览器来查看一些UI界面,视频等。

如,通过http://localhost:5001/webui,我们可以查看我们刚刚启动的这个IPFS的一些节点情况。

我们还可以看到我们连接了多少节点以及大概分布。

当然还可以查找文件等,这里就不一一说了。

上传文件

然后我们可以通过add将文件上传。

$ ipfs add -r ipfs_file
added QmYN1vzHWT4U61R6GnnJ2H3N76DpZ4JU4xa3r8paDfDdEB ipfs_file/index.html
added Qmea1q1nEPxCsB8y5so2ppNVuKy2kMtFCiBnngiK7A4PY3 ipfs_file/styles.css
added QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC ipfs_file
 333 B / 333 B [==============================================   ] 100.00

然后,我们通过IPFS网关访问https://gateway.ipfs.io/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/ 就可以访问刚刚的文件了。

由于防火墙的关系,这里需要用梯子才能访问到==

Cloudflare IPFS gateway

最近发现Cloudflare也推出了ipfs网关,而且我们可以将自己的域名解析到该地址,通过TXT记录来关联你的IPFS文件。

访问

首先,我们可以通过https://cloudflare-ipfs.com/ipfs/QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC/ 访问刚刚上传的文件。

添加DNS记录

然后,我么在我们的DNS服务商中添加两条记录,如下。

我希望将ipfs.razeen.me指向该文件,然后我需要添加如下记录:

也就是,将ipfs.razeen.me CNAME到cloudflare-ipfs.com; 添加_dnslink.ipfsTXT值your_ipfs_hash_here 如:QmSwtxZ5NzJ4cLEm9SX1oeAwcBYevfvb6nhYweXYNSXnNC

提交

然后,在这里填上你的域名,提交即可。

之后,cloudflare会为你的域名申请一张证书,并完成转发, 整个过程可能需要10分钟左右。

当你看到Certificate is live.提示,域名配置就完成了。

访问一下,我们可以看到。

到这里我们就完成该网页配置了。一个IPFS站点就搭建完成了。