DNS-Forwarder 的简单教程

下面就是使用 DNS-Forwarder 的简单教程。注意,本教程教你安装的是 DNS-Forwarder for openwrt 版本,编译机器是 Arch Linux, 运行环境是 Netgear 的某款智能路由器。

安装 DNS-Forwarder

DNS-Forwarder 是一款开源软件,在 openwrt 的官方仓库里没有,需要自己编译。openwrt 的软件编译一般是在 Linux 或 Windows 主机上交叉编译成可执行软件包。我的编译环境是 Arch Linux。

  1. 首先下载安装 openwrt 的 SDK,openwrt 的官方教程: https://wiki.openwrt.org/doc/howto/obtain.firmware.sdk
    假设下载的是 OpenWrt-SDK-15.05.1-ar71xx-nand
cd OpenWrt-SDK-15.05.1-ar71xx-nand
./script/feeds update -a
./script/feeds install -a
make menuconfig    # 仅用于测试 SDK 能够正常运行

注意很多 Linux 平台可能会见到这个错误:glob failed: No files found "package/utils/busybox/config/libbb/Config.in" make: *** [menuconfig] Error 1。解决方法:ln -s ../feeds/base/package/utils package/utils ,参考:https://dev.openwrt.org/ticket/18552

  1. 编译 DNS-Forwarder
  • 获取 Makefile
    git clone https://github.com/aa65535/openwrt-chinadns.git package/chinadns
  • 选择要编译的包 Network -> ChinaDNS
    make menuconfig
  • 开始编译
    make package/chinadns/compile V=99
    编译 DNS-Forwarder 可能依赖 ccache, 在你的系统上安装即可。不出意外,编译出的可执行软件躺在 bin/ar71xx/packages/base/dns-forwarder_1.2.0-1_ar71xx.ipk 下, 通过 scp 传到 openwrt 里即可。
  1. 设置 DNS-Forwarder
    DNS-Forwarder 通过文件设置,配置好记得将 ChinaDNS 的上游服务器配置为 DNS-Forwarder 的地址。
# /etc/config/dns-forwarder

config dns-forwarder
	option listen_addr '0.0.0.0'
	option listen_port '5300'
	option dns_servers '8.8.8.8'
	option enable '1'
  1. 启动
/etc/init.d/dns-forwarder start

总结

现在,我的 DNS 查询的流程就是: dnsmasq -> ChinaDNS -> DNS-Forwarder -> SS (TCP) -> 国外DNS服务器(e.g: 8.8.8.8)
本文作为 DNS 系列文章中的第三篇,终于我可以正常的用上 DNS 了。

----------

使用DNS-Forwarder提升ChinaDNS的稳定性

很多人使用Openwrt的路由器配合SS来提升访问海外网站的速度和稳定性,其中ChinaDNS被很多人作为防DNS污染的利器,但是大多数人目前还是使用ss-tunnel创建一个UDP转发隧道作为ChinaDNS的上游来进行查询,这在不少地区的ISP环境下常常出现不稳定的现象,aa65535的DNS-Forwarder for OpenWrt很好的解决了这个问题,参考Wiki整理如下.

 安装DNS-Forwarder for OpenWrt

从v1.1.0版本开始,DNS-Forwarder for OpenWrt把Luci设置界面分离到了OpenWRT-Dist-Luci,因此根据你的平台不同,你需要分别下载两个程序:

下载完成后,在路由器上执行opkg install安装即可

 配置DNS-Forwarder和ChinaDNS

DNS-Forwarder配置比较简单,只需要设置监听端口和上游DNS即可,这里我设置了监听端口为5352:

f:id:briteming:20190617113622j:plain

df1

 

然后配置ChinaDNS的上游服务器,把原先使用UDP隧道转发的上游去掉,改为DNS-Forwarder的地址,这里是127.0.0.1:5352,另一个上游服务器保持不变,可以是114.114.114.114这种公共DNS,也可以是你的ISP的DNS:

f:id:briteming:20190617113814j:plain

 

完成

设置完成,如果你第一次使用ChinaDNS的话,需要在网络-DHCP/DNS中,把ChinaDNS配置为本地的DNS服务器,如下图所示,如果之前已经配置了,那这一步就可以忽略了:

f:id:briteming:20190617113935j:plain

在这个模式下,ChinaDNS使用DNS-Forwarder作为上游,而DNS-Forwarder又使用TCP协议直接向上游(通常是8.8.8.8)服务器进行查询,如果配合了SS,TCP查询会自动走SS线路,也同时解决了线路优化的问题。

Linux下获取进程正确的启动时间的几种方法

1.使用ps显示的进程运行后到现在经过的时间进行计算(Via)

#!/bin/bash
pid=$1
elt=$(ps w -p $pid o pid=,cmd=,etime= |awk '{print $NF}')
case $(echo $elt | sed -e 's/:/:\n/g' |grep ":" -c) in
"1")
elt=$(echo $elt |sed -e 's/:/ minutes ago /')
;;
*)
elt=$(echo $elt |sed -e 's/-/ days ago /' -e 's/:/ hours ago /' -e 's/:/ minutes ago /')
;;
esac
date -d "$elt seconds ago"
 
2.通过procfs里面的jiffies时间计算.

在Linux系统中,时间管理有两个基本概念:xtime和jiffies。

xtime主要给time系函数使用,结构比较简单(include\linux\time.h):

struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* nanoseconds, 纳秒,以前的版本是微秒*/
};
 

tv_sec就是大家平常所说的unix时间戳,在CMOS中维护,关机时由电池维持正常运行。

系统启动时,通过get_cmos_time()取cmos时间赋值。运行时,通过设置系统定时器,每隔一段时间触发一个节拍,他们管这个节拍叫tick。每触发一次tick,就会通过update_wall_time_one_tick()来更新xtime。

而jiffies是内核中的一个全局变量,它的功能看起来很简单:记录从系统启动以来的tick数。
在/proc//stat中( 源码请参考proc_pid_stat(),文件是fs/proc/array.c ),维护了进程的很多状态信息,其中第22项是进程启动时的jiffies值,通过它可以计算出进程启动时,系统已经开机的时间。把这个时间加上系统启动时间(/proc/stat),就可以得到进程启动时间。

#!/bin/sh
function show_start_time( )
{
  pid=$1
  JIFFIES=`cat /proc/$pid/stat | cut -d" " -f22`
  UPTIME=`grep btime /proc/stat | cut -d" " -f2`
  START_SEC=$(( $UPTIME + $JIFFIES / $(getconf CLK_TCK)))
  date -d "1970-01-01 UTC $START_SEC seconds"
}
 
脚本中100是“用户可见”的tick频率(tick_rate),它的值等于我们熟悉的常量CLOCKS_PER_SEC。为什么要说“用户可见”呢?实际上,新版本的内核tick_rate,已经远高于100了(i386的是1000),但以前很多程序,都依赖于这个数。为了兼容,于是内核又做了一层封装。

“不惜一切代价”:这个说法让人心痛

现在中美贸易战在中国更多的是口水战,而且很多人津津乐道地说:中国现在不惜一切代价!甚至还讲:中国的优良文化传统长达几千年,中国什么没有见过?

大家想一想,正是因为毛泽东的“不惜一切代价”,在五十年代饿死了多少人!五十年代有多少人被打成右派!五十年代初期有多少人上了朝鲜战场!有多少社会的精英被镇压!文化大革命,是“不惜一切代价”了,但多少人的一辈子的希望、一辈子的人生,多少人的青春、多少的家庭,在所谓“不惜一切代价”的过程中间,成为了那个“代价”!

“不惜一切代价”的1989年六四大屠杀,至今为止还是中共不敢公开讨论的一个话题,而且至今成为中国当代人内心世界里最深的一个痛。

什么叫不惜一切代价?几千万人的死亡不是代价吗?一个国家长期跟世界文明隔离不是代价吗?话讲得如此的轻狂、如此的无耻,很多人还津津乐道,什么中国有几千年的传统的文化,说什么几千年的中国的文明能够存活下来说明这种文明不可能没有好的地方,不可能没有作为一个中国人感觉到自豪的地方…

但是我们也要看一看,这样一种文化为什么始终不能跟世界文明接轨,始终不能成为世界文明的主流呢?

到了今天,一个政权要靠法西斯的手段来维护它的政权。这样一种文明,到了今天还没有进化。这难道不值得检讨吗?

中国连基本上的言论自由、基本上的政治的选择的权利、基本上的司法独立的精神独立的运行都没有,这是传统文化的结果?还是中国共产党的恶行所造成的呢?

我们在骄傲自己文化的同时,没有办法把文明的皮肤变白或者是变黑,没有办法改变自己是一个中国人的一种身份。但是正是因为是一个中国人,我们不仅应该是感觉到自豪,同时也应该有自责和自省。

文明冲突说法太危险,实在不可取

像昨天开的所谓的亚洲文明对话会——文明对话,这是一个很好的词——但是为什么2014年开始讲所谓的什么亚洲文明对话,始终对话不起来?为什么这一次的文明对话会没有几个国家领导人参加?

你看,印度总理来了吗?日本的首相来了吗?你要对话,那你的对话对象是什么呢?

对于“文明的冲突”这样一种说法,我很长时间以来一直给予批评的态度。早几天在自由亚洲电台我跟杨建利博士的对话里面,我就批评了美国国务院的一位政策设计局的官员所提出来的美国和今天的中国的矛盾是“文明的冲突”这样一种说辞。甚至我也批评了哈佛大学的教授亨廷顿所写的文明的冲突论。

我认为这种文明冲突论作为一个学术的讨论也许可以的,但是被极端分子所利用,打击其它宗教、打击其他族裔,甚至变成打击其它国家的法理或者是理论的依据,这是可耻而且危险的。

但是,文明与文明之间,不可能没有好坏之分,就像人与人之间不可能没有智力高低、品德好坏之分。一个国家也是这样,一个文明也是这样。

我们不能轻而易举否定自己的文明,不能轻而易举羞辱我们的祖先。但是作为新的一代人,我们不能因为有了祖先流传下来的文明,就失去了进化的能力。如果文明不能进化,我们反而没有脸面面对我们的先人。

现在习近平所讲的亚洲文明对话,没有办法得到世界主要国家的认同支持,甚至连亚洲国家都没有办法支持——尤其是亚洲的主要国家。

为什么文明对话这么长时间一再地开不下来?原来宣布了好几次要开,结果拖到现在才开?

习近平似乎想传递一个信息,就是说:我就当亚洲王算了,不跟你川普争霸天下。这就是在上上个星期的《今天大新闻》的节目中我所谈的观点。

我们明镜的节目,往往有时候是比新闻发生的事情还早一些讨论这个问题。当时参加讨论的有胡平、孟玄先生。我们讨论中,我表达的想法就是:习近平其实能成为一个亚洲王都没有可能性。在目前的情况之下,你没有让亚洲的民众和国家感觉到你有一种新的文明的形态。中华民族现有的文明的形态,很难让大家信服、尊敬和欣赏,更不用说愿意把中国这种文明模式延伸引进到亚洲各个国家了。

有一些国家的捧场,无非是看上你中国的钱袋子:你的到处撒钱,到处投资,当然人家欢迎啦!因为各个国家的领导人现在最需要解决的问题,就是就业问题,就是经济发展的问题。

但是中国把经济取得的一时的成就误解为是它的政治制度的结果,而忽视了它们这些国家,很多虽然有经济的问题,但是它们政治文明的基本框架已经建立起来。它们有三权分立,权力有基本上的制约,有言论自由,有独立司法。虽然经济有时候好一些,有时候坏一些,但这些问题有时是领导人的责任,有时也是大气候使其然,还有的时候是国民比较懒惰、国家福利太多等等。影响经济发展的因素很多,但是一个国家最基本的坚实基础是它的政治文明。有了这个政治文明,经济上才有调节的可能性。

而中国恰恰是没有基本上的政治文明。它所取得的经济成果跟老百姓的努力、跟全球化的过程、跟中国的起点基数太低、跟中国的人口红利等等很多因素都有关系。

习近平强调民族自豪感,但这个民族值得自豪吗?

我已经在几次的节目里面强调:中国今天的经济繁荣,如果没有共产党这样一种僵化体制的阻扰和破坏,中国的经济力量早就会表现出更加强盛的力量出来。

改革开放三十年,表面上是中国共产党领导了改革开放三十年,其实在我看起来恰恰相反:是中国的老百姓、商人、改革者,不断地去冲破这个制度的压迫所走出来的成就,而不是中国共产党的领导。

而在这个领导过程中间,中共恰恰是建立了一种自我标榜的模式:标榜低人权、低法治的所谓“中国模式”,认为没有民主也能够把经济搞起来。这是完全错误的,也是违背基本事实的一个结论。

事实上恰恰相反。中国这种低人权状况之下,中国的老百姓、商人、改革者,他们是用多么坚强的精神一步一步突破中共既得利益集团的控制,打破中共愚蠢的僵化制度,一步一步走出一片天地的!

但是这个成就这个桃子,现在中共要把它摘过来。你摘了这个桃子、拿了这个成果,以你的权力,以你的暴政,大家不敢说什么。但是,如果你以此来强化你所谓的社会主义的意识形态,以你所谓的中华文明来拒绝学习其它国家的文明,来以自己的文明自居,那么实际上,你就是以你中共的独裁自居。

一个真正优秀的文明,必须是在不断演化的过程中去吸收和学习别国的文明的。

现在这个世界的文明形式有很多种,宗教的信仰有很多种,社会的形态可以说是也有很多种。但是,基本上的价值观,对人权的基本尊重,对人权的基本保护,是必须通过独立的司法系统来保护的。这是政治文明的一种基本共识。今天的媒体存在很多问题,但是自由媒体作为监督的一种力量,一方面监督政府,另一方面为老百姓传递自由的声音。正因如此,新闻自由得到保护是一个国家文明程度的基本表现。一个国家的领导人不是你自己封的“定于一尊”,而是要通过公开的透明的程序,通过竞选所产生的领导人获得这种地位。

但是,今天的中国,正在以它的经济上取得的成就逆历史潮流而动。情况实际比我们看到的经济数据的糟糕还要严重很多。

有时候所谓的不惜一切代价,只是在媒体上表现反映出来。而这个国家的民众付出的代价,这个国家后面持续的经济力量的代价,只有经过漫长的时间才能表现出来。等到中国人再醒过来的时候,时间又过去了很多年。

我曾对习近平抱有期待

全球化的过程和互联网的发展,加上中国老百姓如此的勤奋和尚商的精神,确实使中国人可以有能力迅速地进入世界文明,甚至成为世界文明里面的一个很重要的关键性力量。但是现在的亚洲文明对话,实际上只是以文明对话的名义,为自己的独裁统治和愚蠢的统治和僵化的意识形态来寻找一个保护伞、一个借口而已。

我看了习近平的讲话,用几秒钟扫了一下,基本上没有新的文明含量,甚至连基本的文明的逻辑和政治逻辑都没有。

我非常为习近平担忧:因为我对他抱有一种期望,甚至这种期望到现在为止还没有完全丧失。在他上台之前和上台之后,我也一直反对集体领导制,主张行政权力的集中。

但是,相应的制约因素必须要建立起来。否则的话,行政权力集中最终必然会导致不可控制的独裁。现在习近平正在往独裁的方向走。如果他能够在独裁的道路上让这个国家能够转型,那他现在的独裁也许大家还可以原谅。但是,他现在所传递的意识形态、现在的施政方法,尤其是现在鼓动的“不惜一切代价”打中美贸易战,那是极其危险和极其恐怖的!

而这个代价,绝对不仅仅是我们刚刚看到的四月份经济指数的下降,也绝对不是简单的未来的股市国家队入场——即算是有国家队在支撑,也未必能够支撑下去。因为产业的转移,对中国市场信心的缺乏,让商人在中国市场始终没有安全感。不要说外国的企业,就是中国的国民,如果你不是政府采取极端的手段不让老百姓能够顺利移民,不让老百姓能够把资金自由的外延,我们看一看今天中国有多少精英人士会离开中国?

不惜一切代价的结果是:国家更加空虚!而这个代价,不仅仅是暂时的代价,而是经过漫长时间,这个国家和民族付出的代价。

中美贸易谈判破裂的内幕

现在越来越多的媒体报道、智库研究人员所提供的信息、来自于官员的消息,都证明了香港南华早报最开始披露出来的内容:中美贸易谈判在接近达成最后共识的时候,是中共中央总书记习近平最后拍板,撤回了原来双方经过艰辛谈判所形成的共识。

昨天纽约时报的报导披露说,150页的协议最后被中国修正成了105页。当美国的谈判代表接到这个中共的修正版的时候,发现接到的是一片“红色的海洋”。因为中共用红色字在原来的word文档协议上进行了删节。

现在的中共媒体上面,并没有向中国的老百姓披露出来,美国到底是怎么霸凌了中国?怎么去提出了一些不合理的要求?反而说反悔的是美国人,说中国在还没有签订合同的情况下,不存在一个必须遵守的承诺。但是大家都知道,这些已经形成的文本,实际上是双方非常艰辛的讨价还价所形成的共识。虽然没有形成正式的文本公开出来,或者说没有形成最后的生效的法律文本,但是要轻而易举否定达成的共识,虽然不能说是违背了法律条文,但是,这使双方原来的努力泡汤了,中方原来所建立的诚信也泡汤了。

那么习近平为什么会做出这么一个判断呢?根据纽约时报的长篇文章披露出来的消息,主要是习近平误判了川普,认为川普不断地给股市喊话就意味着川普非常着急。当然,我在点点今天事中也反复讲过这个道理:中美贸易谈判虽然是中国居于下风,中国虽然需要接受美国的一些条件——也就是说需要认清单,但是也不尽然所有有利条件都在川普这一边。如果中美贸易谈判所最终能达成协定,对美国有利,对中国也有利。但是如果达不成协议,对中国将是一个非常大的伤害。

对于一个不断地鼓吹美国经济很不错的川普总统来讲,他当然希望达成一个协议。对于习近平来讲,为了让经济有更好的发展,走出现在的经济困境,达成协议当然也是一个好事情。

所以去年在12月1号的阿根廷G20会议之后,他和川普总统的会谈上,习近平表示了一些应有的让步的姿态,而且自己亲自来认这个清单。

但是随着后来中国股市的好转,经济指数的改变,尤其是中共内部对习近平的误导,习近平的想法发生了变化。

现在的官僚系统在习近平“定于一尊”的领导下,从政治局常委到政治局委员,到各个部门,对习近平的任何政策和言语都不敢提出任何非议。相反,只有想尽一切办法去讨好习近平,向习近平谄媚。

所以有一些人跟习近平就报告说:现在的中国经济情况非常好,川普现在的处境非常艰难。美国内部的权力斗争很激烈,川普甚至跟联储会也有很激烈的分歧。为了连任,川普会急于达成协议。

川普要达成协议这是不假,但是把川普的情况讲得那么的悲惨,把中国的情况描述得那么美好,这是因为在习近平定于一尊的情况之下,他的部下、幕僚已经没人敢向他提供真实的情况。

我曾经在点点今天事里面指出来:就是他这么信任的,中学时候的同学的刘鹤,都不敢轻而易举向他讲真实的情况。刘鹤也只敢讲他所管理的经济这部分,其它的部分基本上不敢向习近平进言。

但是在中美贸易谈判中间,刘鹤一直是一个领导者。他当然知道,谈判的非常的艰难。但是没有人想到,有人在刘鹤后面捅一刀子,讲刘鹤他们现在谈判的立足点不对。如果达成了这么一个协议,那么大家最后面会把责任给习近平的头上,认为习近平就是一个李鸿章。 他们又说,实际上中国的情况不错,而川普现在是猴急,所以中国有条件、有理由,而且有力量去撤回原来做出的一些承诺

这些人在刘鹤后面捅刀子的同时,误导了习近平。而习近平现在实际上明显忘记了他上台的初心。

还记得他当时当选中共中央总书记的时候,他曾经有一番让很多人感觉到接地气的讲话。而且因为他父亲的原因,大家对他多少有好感。而且他在河北也好,福建也好,浙江也好,上海也好,虽然没有做出什么成就,也没有什么恶言恶语。对部下也好,对民众也好,都没有极端和恶劣的行为。所以那个时候,大家给予习近平了希望。习近平自己也似乎想做出一番事情出来。为了支持他能够做一些事情,反腐败也好,对于军队进行改造也好,那些中共的元老们自己既出于自己的利益,同时也认识到原来的不负责任的所谓的集体领导是很糟糕的一种体制,所以在一定程度上支持了习近平的权力的集中。

但是没有想到,习近平的权力集中以后,越来越上瘾,而且对不同的意见完全听不进去。他旁边的人想尽一切办法就是隔离出习近平跟真实意见的距离。甚至习近平跑到地方去视察工作,当地和他在中南海的那些部下,一起联手制定了所谓的安全计划,那些习近平所看到的接见的所谓“人民群众”,实际上是人民演员。所谓考察,看到的其实是演员演出的场景。那些场景也是使用了各种各样的舞台道具。所以,习近平越来越不了解真实的情况,也越来越听不到真实的声音。加上他的知识背景缺乏,加上他的视野狭小,加上他的其它方面的判断力地下,他越来越愿意只听见好的声音,那么他就做出了这么一个巨大错误的判断。

这个判断做出来以后,他没有想到的是:川普在那个时候已经跟普京通上电话了。随着美俄关系的改善,川普更有力量来对付习近平。这样一种状况出来以后,一下子使刘鹤的团队就变得高度紧张恐慌。所以刘鹤,还有廖岷,还有其他的谈判团队,在上个星期川普发完推文之后,本来是要取消刘鹤到美国访问的计划的。但是他们的谈判团队尤其是一些年轻的技术官僚紧急去游说,冒着一定的风险去游说习近平,最终让习近平改变主意,让刘鹤到美国来继续访问。

虽然达不成什么目的,但是至少使这个谈判还没有完全撕破脸,还在继续地进行。刘鹤回去以后开了一个紧急的政治局会议。有人说这个政治局会议是习近平试图想把中美贸易谈判破裂的责任由集体来承担,但是事实上中国的一些重大事件,包括副部级以上的人事任命,往往都是政治局会议在每个月的例会上进行讨论的。

也就是说,虽然习近平已经定于一尊,但是在决策的形式来讲,仍然是要通过政治局会议这个层次。在这个政治局会议上,做出了要发动媒体对美国进行批判的决定,要发动媒体把中美贸易破裂的责任推卸到美国人身上。这样的话,表面上看起来习近平似乎减轻了责任,但是现在天底下的人都知道:这一次最开始的决策,否定这个谈判原来所取得的共识的这个决策,并不是由政治局做出来的,而是由习近平自己做出来的。

而且正如香港南华早报所说,习近平说:谈判失败了我来承担责任。实际上当时他讲这个话,没有想到,谈判有可能真的是破裂!因为他的系统所给他提供的情报、研究报告、建议是:川普不会撕破脸皮。但是,没有想到撕破脸皮的情况真的出现了。

习近平这个时候才开政治局会议来进行讨论,使中美贸易谈判由政治局委员一起来讨论。实际上政治局委员这么一个会议,在最近一些已经早就是形式主义了。政治局委员这个层次里面,跟习近平一起的人占了一半以上。也就是说,习近平要做什么决定,这一些所谓的政治局只是鼓一下掌通过而已,习近平基本上没什么阻力。

而且大家都知道,政治局委员在习近平现在的治下,其实只是一种形式,一个所谓的集体决定而已,根本上的决定和拍板的权力还是习近平的。所以贸易谈判这个事情,失败的责任是习近平,成功的荣耀也是习近平。

现在情况变得这么糟糕,中国鼓动媒体来发动一场无厘头的批美运动,但是官方就始终不敢把原来谈判所出现的承诺和真实的情况向民众做出交待。但是,你煽动这种民族主义情绪之后,怎么把这样一个野兽从笼子里放出来再又收回去?

所谓的民族主义情绪也好,民主自由的要求也好,本来都是在中共可以控制的范围之内。他们用暴力的工具,以维稳的名义,早就把不同的声音压制在一定程度内了。但是现在,政治局会议或者是习近平本人,决定来煽动媒体批判美国,把责任推卸在美国身上,这实际上是给自己找上了一个巨大的麻烦。

民族主义在你需要使用的时候很管用,可以把帮助你把责任推卸到别的国家的身上。但是呢,它也为你在外交上进行谈判妥协增加了难度。因为民族主义情绪已经起来了,你怎么去抑制呢?你需要付出的代价就比较大。

所以,习近平利用媒体来发起反美运动,其实跟他最开始反悔中美贸易协定一样,都是非常错误的决定。这种错误的决定使他想重新去回到谈判桌,很认真地去寻求共识达成协议变得很困难,甚至让他和川普总统通电话、举行峰会都出现了一定的困难。

现在就看习近平敢不敢于及时纠正自己的错误,勇敢地来承担失败的责任了。要挽回已经逆转的方向,要么尽快跟川普通电话,要么顺势叫刘鹤团队尽快迎接美国团队,来形成恢复原来的一些共识,争取在六月底的时候,在大阪峰会上出现转机。

虽然未必一定来得及完成最后的版本,但是至少可以使情况不要恶化下去。如果中美关系继续恶化下去,点点今天事已经讲过很多次了:情况可能远远超过习近平所原来预估到的最糟糕的情况。这不是简单的像汪洋讲的GDP掉个1%那么简单的事情,那个代价可能的层次、涉及的范围,比原来预估的要严重很多。

实际上最近几个月以来,大家都看到了,习近平在各种场合下已经变得非常疲惫,非常紧张。在一带一路的峰会上,在最近的文明对话会上面,我们都不难看出,他的情绪已经受到中美贸易谈判非常大的影响。

在一带一路峰会的时候,中美贸易关系还没有最后撕破脸皮,还没有这么对着干。但是大家注意到日本媒体的长文章中一个细节:两年以前的一带一路峰会时,当时摄影机屏幕上能看到习近平的每一个动作。那个时候习近平跟各个领导人在一起,谈笑风生,充满自信。但是今年这个一带一路的峰会上,大家在会上,突然之间屏幕上就出现了习近平的讲话。

日本的记者猜测,这是因为中国不想展示出习近平更多的画面,尤其是讲话之前他那种情绪低落的样子。

看明镜电视的人都知道,我们在某一期节目里面报道了最近一段时间习近平的某些情绪,似乎使他显示出很疲惫的样子。

现在是习近平上任以来压力最大的时候。他怎么去处理这些事情?他是非常焦虑的。在焦虑情况之下做出更激进的反美措施,还是比较理性的重新回到谈判桌上,跟川普打电话或者是寻求共识?

这些事情,可能在未来一些天,随时可能会出现。

强制关闭你的系统的内核模块

我知道熬夜对健康不利。但谁在乎?多年来我一直是一只夜猫子。我通常在 12 点以后睡觉,有时在凌晨 1 点以后睡觉。第二天早上,我至少推迟三次闹钟,醒来后又累又有脾气。每天,我向自己保证早点睡觉,但最终会像平常一样晚睡。而且,这个循环还在继续!如果你和我一样,这有一个好消息。一个同学通宵开发了一个名为 “Kgotobed” 的内核模块,它迫使你在特定的时间上床睡觉。也就是说它会强制关闭你的系统。

你可能会问!我为什么要用这个?我有很多其他的选择。我可以设置一个 cron 作业来安排在特定时间关闭系统。我可以设置提醒或闹钟。我可以使用浏览器插件或软件。但是,它们都可以轻易忽略或绕过。Kgotobed 是你不能忽视的东西。即使您是 root 用户也无法禁用。是的,它会在指定的时间强制关闭你的系统。没有推迟选项。你不能推迟关机过程,也不能取消它。无论如何,系统都会在指定的时间停止运行。你被警告了!!

安装 Kgotobed

确保你已经安装了 dkms。它在大多数 Linux 发行版的默认仓库中都有。

例如在 Fedora 上,你可以使用以下命令安装它:

  1. $ sudo dnf install kernel-devel-$(uname -r) dkms

在 Debian、Ubuntu、linux Mint 上:

  1. $ sudo apt install dkms

安装完成后,git clone Kgotobed 项目。

  1. $ git clone https://github.com/nikital/kgotobed.git

该命令会在当前工作目录中将所有 Kgotobed 仓库的内容克隆到名为 kgotobed 的文件夹中。进入到该目录:

  1. $ cd kgotobed/

接着,使用命令安装 Kgotobed 驱动:

  1. $ sudo make install

上面的命令将 kgotobed.ko 模块注册到 DKMS(这样它会为每个你运行的内核重建)并在 /usr/local/bin/ 目录下安装 gotobed,然后注册、启用并启动 kgotobed 服务。

如何运行

默认情况下,Kgotobed 将睡前时间设置为 1:00 AM。也就是说,无论你在做什么,你的电脑都会在凌晨 1 点关机。

要查看当前的睡前时间,请运行:

  1. $ gotobed
  2. Current bedtime is 2018-04-10 01:00:00

要提前睡眠时间,例如 22:00(晚上 10 点),请运行:

  1. $ sudo gotobed 22:00
  2. [sudo] password for sk:
  3. Current bedtime is 2018-04-10 00:58:00
  4. Setting bedtime to 2018-04-09 22:00:00
  5. Bedtime will be in 2 hours 16 minutes

当你想早点睡觉时,这会很有帮助!

但是,你不能设置更晚的时间也就是凌晨 1 点以后。你无法卸载模块,并且调整系统时钟也无济于事。唯一的出路是重启!

要设置不同的默认时间,您需要自定义 kgotobed.service(通过编辑或使用 systemd 工具)。

卸载 Kgotobed

对 Kgotobed 不满意?别担心!进入我们先前克隆的 kgotobed 文件夹,然后运行以下命令将其卸载。

  1. $ sudo make uninstall

再一次,我警告你,即使你是 root 用户,也没有办法推迟或取消关机过程。你的系统将在指定的时间强制关闭。这并不适合每个人!当你在做一项重要任务时,它可能会让你疯狂。在这种情况下,请确保你已经不时地保存工作,或使用下面链接中的一些高级工具来帮助你在特定时间自动关闭、重启、暂停和休眠系统。

就是这些了。希望你觉得这个指南有帮助。还有更好的东西。敬请关注!

干杯!

资源


via: https://www.ostechnix.com/kgotobed-a-kernel-module-that-forcibly-shutdown-your-system/