使用 PicGo + GitHub 自建免费图床

安装 PicGo

PicGo安装,其它参考PicGo 官网

1
brew install picgo --cask

创建仓库和秘钥

在 github 上创建一个仓库pics后,打开https://github.com/settings/tokens, 点击Generate new token按照下图配置创建即可。

生成的秘钥,记得保存好,因为这个秘钥只会出现这么一次。

配置 PicGo

打开详细窗口 –> 图床设置 –> GitHub 图床

github 图片资源无法访问问题

不能访问的图片都是 raw.githubusercontent.com 域名下的,github 将图片资源通过 https://raw.githubusercontent.com/访问,可以避免图片跟仓库代码文件在同一域名下抢占负载,而不能访问的主要原因是因为 DNS 污染。

DNS 污染:网域服务器缓存污染(DNS cache pollution),又称域名服务器缓存投毒(DNS cache poisoning)是指一些刻意制造或无意中制造出来的域名服务器数据包,把域名指往不正确的 IP 地址。一般来说,在互联网上都有可信赖的网域服务器,但为减低网络上的流量压力,一般的域名服务器都会把从上游的域名服务器获得的解析记录暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一旦有关网域的局域域名服务器的缓存受到污染,就会把网域内的计算机导引往错误的服务器或服务器的网址。

解决方法

主要方法有 3 个:

  1. 通过https://www.ipaddress.com/查询raw.githubusercontent.com的 ip,直接修改 hosts 文件如下:

    1
    185.199.108.133 raw.githubusercontent.com
  2. 开启 github page,通过xxx.github.io来访问图片

  3. 后面加个 s,raw.githubusercontent.com –> raw.githubusercontents.com