暗黑破坏神1-4讲了个什么故事

大部分中年暗黑玩家都是从《暗黑2》开始玩的,扮演人类的英雄跟着大天使泰瑞儿一路杀怪,最后干掉邪恶的三魔神,皆大欢喜。不过小时候根本没时间看剧情,也看不懂。

最近买了《暗黑2:重置版》,看了每章的剧情动画,对这个游戏的世界观有了些兴趣。综合游戏1-4的剧情,能够发现这个暗黑世界并不是简单的正义战胜邪恶那么简单。

高阶天堂与烈焰地狱

这个世界有两个最古老的种族:高阶天堂的天使,烈焰地狱的恶魔。天使奉行光明与秩序,恶魔追求黑暗和混沌。显然,这两边都不是人类可以生存地方。而且,人类也尚不存在。两边打了数万年的战争,没有胜利者,只有一片废墟,尸骸遍野。

无尽的战争让双方都有一部分人感到厌倦。于是伊纳瑞斯为首的天使,与莉莉丝为首的恶魔,创造了名为“庇护之地”的新世界(游戏的主要舞台),以逃离了战争,躲避天堂和地狱的监视。恶魔与天使结合,繁衍出了新的物种:奈飞天,也就是人类的祖先。

奈飞天虽然是混血,却产生了比天使和恶魔都要强大的力量。这种力量如果被高阶天堂或烈焰地狱察觉,必然会引发大战,导致庇护之地的毁灭。

这个问题,也导致了庇护之地的创造者,伊纳瑞斯和莉莉丝的分歧。伊纳瑞斯不想再起战火,主张利用世界之石的力量压制奈飞天,让他们退化成弱小的人类。世界之石就是《暗黑2》最后,泰瑞尔击碎的那个。很神奇的是,高阶天堂与烈焰地狱争夺了无数年的世界之石,居然简单地被偷走留在了庇护之地。而恶魔后裔的莉莉丝则认为,可以利用奈飞天超凡的力量,将天堂和地狱都毁灭,建造一个只有奈飞天的统一世界。

分歧的最后,伊纳瑞斯赢了。奈飞天失去了力量变成了人类,莉莉丝则被放逐到了虚空。人类世界虽然免于被毁灭,但是天堂与地狱的夹缝之中,也只能苟且偷生,惶惶不可终日。《暗黑1-2》的故事是,三魔神发现了这个秘密,试图通过用黑暗力量控制人类。

伊纳瑞斯

Linux 科学上网指南:DNS

最近经常出现 Firefox 可以打开 GitHub 网站,但是命令行 Git 无法拉取/推送代码的情况。甚至开了 VPN 也不行。运行 ping 命令发现 github.com 被解析到了 127.0.0.1,这是 DNS 被劫持了。是谁搞的鬼,相信你一定懂得。

为啥 Firefox 可以打开 GitHub

最新的 Firefox 桌面版默认启用了 DoH(DNS over HTTPS),通过向特定的服务器发送 HTTPS 请求获取域名的 IP 地址。这就绕过了电信/联通/移动等提供的有毒 DNS 服务器。因为 DoH 采用 HTTPS 协议,不容易被劫持。另外国内用 Firefox 的很少,这个技术并不普及,所以暂时没有被老大哥盯上。

但是很可惜,DoH 目前无法在 Linux 系统层面支持,运行命令行仍然是使用 ISP 提供的 DNS 服务器。电信/联通/移动经常抽风,甚至某些路由器都会给你下毒,让你打不开网页或者直接跳到某网址导航。

为啥开了 VPN 也不行

因为通常是先连接本地网络,这时候已经从 ISP 获取了一个 DNS 服务器。再连接 VPN,(以 OpenVPN 为例)仍然是用的这个 DNS 服务器。

某些商业 VPN 客户端是会在连接上 VPN 之后自动更换 DNS 服务器的。但是 Linux 自带的网络管理是没这个能力的。

因此,如果你只用 Linux 自带的网络管理,最好的解决方法依然是手动设置一个可靠的 DNS 服务器。

DNS 服务器哪家强

如果你去网上搜,很多老的文章会推荐这两个:

  1. Google 的 8.8.8.8
  2. Cloudflare 的 1.1.1.1

这两个 DNS 还是能用的,但是在有些地方不太稳定,甚至直接连不上。

目前还是推荐国内正规企业提供的 DNS 服务器:

  1. DNSPod/腾讯云 119.29.29.29
  2. 阿里云 223.5.5.5

并不能保证腾讯和阿里的 DNS 百分之百可靠,但是比电信/联通/移动好太多。起码 GitHub 是可以正常解析的。

如何设置 DNS

这里就只介绍普通桌面用户用 NetworkManager 和 KDE 的用法。GNOME 基本类似。用 Wicked 的都是技术大佬,相信也不用看下面这些了。

  1. 从系统托盘网络图标右击,打开“网络设置”。
  2. 选择你的有线或者 WiFi 链接,进行编辑。
  3. 切换到 IPv4 标签页。
  4. 将“方法”从“自动”改成“自动(仅网络地址)”。
  5. 将“DNS服务器”改成“119.29.29.29”。
  6. 点“应用”并关闭“网络设置”窗口。
  7. 点击系统托盘的网络图标,打开网络列表,断开并重新链接。

注意,如果需要频繁更换不同的 WiFi 链接,则需要对不同的 WiFi 配置添加自己的 DNS 服务器。

如果是自己家的网络,可以在路由器上配置,方法和上面类似,都是配置 IPv4 方法和 DNS 服务器。(注意,路由器的 WAN 互联网和 LAN 局域网设置都要配一下)这样家里的设备就不用单独配置了。

清空 DNS 缓存

因为 DNS 记录是有本地缓存的,即使你更换了 DNS 服务器,依然会优先从缓存里取 IP 地址。所以更换 DNS 之后,需要清空 DNS 缓存。

这是一个比较头疼的问题,因为各家 Linux 发行版用来管理 DNS 的方式不一样,清空 DNS 缓存的方法也不一样。

最通用的方法:重启系统。

如果不想重启系统,那么可以参考这篇文章 https://www.techrepublic.com/article/how-to-flush-the-dns-cache-on-linux/

我大概总结一下,就是逐个试下面的命令:

sudo systemd-resolve --flush-caches
sudo systemctl restart nscd
sudo systemctl restart named

如果没有用的话,还是重启系统吧。

测试 DNS 解析

首先用 nslookup 测试一下 DNS 服务器是否能解析,如果解析出来的 Server 是你之前配的地址,Address 不是 127.0.0.1 或者 0.0.0.0 这种,应该就是好的。

$ nslookup github.com
Server:         119.29.29.29
Address:        119.29.29.29#53

Non-authoritative answer:
Name:   github.com
Address: 20.205.243.166

但是 nslookup 能解析,并不意味着就能连上。实际连接还要看 ping 命令。注意 github.com 并不回应 ping 请求,也就是数据包都会 lost,这是正常的。只要 ping 能解析到 IP 地址就行了。

$ ping github.com
PING github.com (20.205.243.166) 56(84) 字节的数据。
^C
--- github.com ping 统计 ---
已发送 3 个包, 已接收 0 个包, 100% packet loss, time 2049ms

如果 ping 没问题,最后再试一下 git pull 命令。如果不能访问,则需要试试 VPN 了。