Dat,一个实用的 P2P 文件传输协议

介绍

传一个大文件的时候,你需要 U 盘,某些网盘的分享链接和密码,还是某些聊天软件的所谓网络极速数据线?这些都不够简便,或者说你传输的文件的安全性无法保证,它们极有可能被那些给你提供文件中转服务的“善意”的第三方所审查,而且你不知道这份文件是不是遭到了篡改,或者被进行了中间人攻击,既无法控制也无法知晓。有时候,你多想把一个文件或数据稳妥地面对面地保密地交给一个人啊,可是条件并不会总是那么完善。

是的,谜底不用揭晓也知道,本文的主角,Dat,可以满足你关于安全性,速度,和易用性的大部分要求。

Dat 是一个自由的、开源的软件,由非盈利组织 Code for Science & Society 开发。目前,一些研究人员,分析人士,图书馆,大学,都已经使用 dat 来保存和分发科学数据。开发者们也使用 Dat 来做一些 P2P 的网站和其他应用。任何人都可以轻松地使用 Dat 备份或分享文件。

Dat 有几大优点,

(1) 分布式网络

和 Dropbox 等网络云盘不同的是,Dat 采用分布式网络,这意味着 Dat 以端到端的方式传送文件,不需要中心服务器的中转,Dat 使文件传输更快更安全。你甚至可以在本地无外网的局域网内传送文件,也可以在本地网络中进行文件多点备份。如果你打算同样在服务器上运行 Dat,他也会减少你的带宽消耗,因为一些受欢迎的文件无需从你这里取得,每个活跃的用户都是一个自然的 “CDN”。

(2) 数据历史

Dat 可以方便保留旧版文件。每次文件的更新和改动,Dat 会自动记录你的更改。

(3) 安全

Dat 传输文件的连接是经过加密的,只有你发送给某个用户,他才能够访问你的文件。你的链接也允许用户下载和转发给其他人。如果想要在发送的文件中进行更改,用户必须要有一个密钥才行。Dat 也会校验文件的哈希值,确保没有遭到篡改。

Read More

运行 Dat 服务器,让文件保持在线

关于 Dat 的介绍,请见这里

因为 Dat 是一个分布式的数据分享工具,你的电脑需要保持运行 Dat 分享服务。出于便利的考虑,你可能需要一个独立的服务器来代替你的电脑做这项工作,这样你的电脑可以安心地关机,并且分享过的数据还能在网络上保持可用。同时,一个 Dat 服务器还可以实时备份你的数据和历史状态。

下面以一个运行 Debian 9 的 VPS 为例,介绍在 root 用户下搭建 Dat 服务器的步骤。

安装

安装 nodejs:

curl -sL https://deb.nodesource.com/setup_8.x | bash -
apt install -y nodejs

安装 hypercored:

npm install -g hypercored

这里说明一下, hypercored 会根据指定文件夹中的 feeds 来进行 re-host,re-host 中的文件是保持实时同步的,故这个想要保持实时同步的服务器自身也成为了一个数据节点。

Read More

利用 Dat 搭建 P2P 去中心化网站

关于 Dat 的介绍,请见这里

本文主要介绍如何使用 Beaker Browser 这一浏览器简单轻松地发布你的静态网站。

要求:你已经有一个静态站点了。例如你可以使用 Hexo, Hugo 等生成静态网页(网络上有许多教程)。本文以 Hexo 生成的静态博客为例。

安装 Beaker Browser

官网下载 Beaker Browser ,选择适合的系统平台下载安装。

Read More

Linux 下文件名大小写批量转换

之前买本书,网盘资料赠送了出版社书目,是以静态网页形式呈现的。Winxp 里下载后,把文件转到了 Manjaro 系统里,却无法正常浏览。原因是 Linux 对大小写敏感,而这个网页编写的很粗糙,链接都是小写的,文件名都是大写的。

网上查到的批量转换方法如下。

Using bash, this is easy:

for f in *; do mv "$f" "${f^^}"; done

The expansion ${f^^} converts the name of the file to uppercase.

In another shell, using tr:

for f in *; do mv "$f" "$(echo "$f" | tr '[:lower:]' '[:upper:]')"; done

这个示例是小写转大写,反之同理。

参考:

https://stackoverflow.com/questions/30303480/linux-how-to-rename-all-files-in-a-directory-to-uppercase

Debian 9 (Stretch) 上使用 SSR 客户端

本文介绍如何在 Debian 系统上使用 SSR 客户端。服务端部署教程见这里

注:以下的所有命令,都是针对 Debian 9 Stretch,并在普通用户下执行的。

由于众所周知的原因,原版 SSR 的项目清空。本文使用由 Akkariiin 维护的 shadowsocksrr

准备

安装必要的软件:

sudo apt update && sudo apt install git vim -y

如该用户不是 sudo 组,可以在 root 用户下安装:

apt update && apt install git vim -y

安装

mkdir -p ~/Softwares/Proxy
cd ~/Softwares/Proxy
git clone --branch akkariiin/master https://github.com/shadowsocksrr/shadowsocksr.git
cd shadowsocksr
bash initcfg.sh

Read More