Quantcast
Channel: 看得透又看得远者prevail. ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
Viewing all 20530 articles
Browse latest View live

六月的逃兵

$
0
0


(图片说明:六四天安门事件期间,这个被称作「王维林」的年轻人正在用自己的身体阻挡一队在天安门附近长安街上的坦克。这张照片是美联社记者Jeff Widener在1989年6月5日,离事发地半英里外的北京饭店6楼,用一支400mm镜头拍摄的。)


有一年,也是六月。我在美国的三大媒体公司之一做事。那是一个多事之春。从年初开始,就是前中共领导人的去世,然后又是前苏联领袖戈尔巴乔夫访华……到了六月初的一天夜晚,多事之春终于被划上了一个巨大的惊叹号,和一个更大的问号。
我那时还是中国公民,第二天早上,便忙不迭地去找到我的老板:是非之地,呆不下去了,我要辞职,脚板抹油,走人。
不曾想,老板也正在找我。他说,在北京饭店里,有一个我们的澳洲摄像师和他的英籍录音助理,刚刚拍下一些很重要的材料。老板说,要我自己亲自去取,而不是派在我手下帮忙的20来个广播学院的实习生去。这对我来说,可就进退两难了。本来我是来辞职的,现在却被派了任务,而且显然是挺重要的任务:到这一天以前,我从来没有过任何一次,需要自己去什么地方送取什么东西的。
我那时年轻,脑袋容易发热。这家公司对我很是不薄,80年代的中国,一天能付200美元,还是现钞。我想来想去,觉得不好在这个时候给人家掉链子,于是就答应了。但是,刚刚答应之后,就后悔了。因为老板说,"外面据说还算安全。"可我从他的语气中,能听出来他的这句话,还不如不说。外面显然不是那么安全。
我从我们办公的王府饭店,步行到了北京饭店。上午10点多钟,但街上很少有行人。偶尔能听到,有清脆的鞭炮般的声音,从各处传来。在长街的转角处,我看到一些北京市民,捶胸顿足,低声怒骂。一个老者,被几个年轻人两边架着,疾步向协和医院奔去。据说他的嘴被枪弹从一边打入,又从另一边穿出。老者低着头,身体向前倾着,显然是万分痛苦。
到了北京饭店大门口,只见一排很多个玻璃门都关着,只留了中间的一个,半开半掩,将将能容一个人侧身穿过进去。门边上,从里到外站了至少有一打身穿便服的,在那里执行公干的人。
我硬着头皮,向他们走去。
我的背包里,放着一盘刚刚启封的,全新的录像带,是为了换下我要取的那一盘有了素材的带子的。我面对这些执行公干的同胞们,心里尽量坦然地安慰自己说,我身上什么都没有,这带子上更是什么都没有。
一边想着,一边我已经与他们擦身而过,走到了大厅里。我只觉得,身后有很多眼睛在盯着我。但是,直到我走进电梯,看着电梯关了门,始终没有人喊我停下。
到了14楼, 我找到了我们的摄像组的房间,上前敲门。只听里面一阵悉悉索索,半天才开门。却原来两个老外以为是来抓他们的,先把摄像机从凉台上撤下来,藏到了床底下,然后还换上了睡衣,看上去俨然一对同志哥的样子,甚是可笑。见到是我,他们认识,松了一口气,立刻又把摄像机架回凉台,一边,摄像师把我带去的录像带装进机器,一边,录音师把我来取的那盘录像带交在了我的手上。
我乘电梯下楼,走到前庭。这一次,我的包里面放的,是有了内容的录像带。向大门口走去的时候,逆光,只觉得那门里门外,人影憧憧,但是都一动不动,明显是在盯着我向他们移动。那几十步,实在是我此生迈得最沉重,最漫长的步子。
当我走到那门口时,我终于可以看到那些人的脸孔。我只是感到,一种无声的压力,一种……愤怒。只是,他们还是没有拦住我,任我走了出去。
我离开北京饭店,快步走回王府饭店。刚一到,编辑就把我带回的录像带拷贝出来。他们拷贝的时候,我有意躲得远远的,不想知道那上面是什么。这样,如果有问题,我可以一问三不知,一推六二五。当然,这只是我自己主观地在自厢情愿,或者叫自欺欺人。
我正在想着对老板说辞职的事情,突然,老板又让我把那盘录像带的拷贝送到首都机场去"放信鸽"。我没辙,只好又去了机场。我对自己的安慰还是,我对录像带上的内容,一点都没有概念。
"放信鸽"是美国电视的专业用语,意思是,到机场等地方把材料交给任何看上去可靠的旅客,给他/她一些酬劳,托他/她带到航班要去的地方去。这是一个卫星传播普及以前的古老做法。但是,北京这个时候的卫星传送早已被切断,只有回到这个办法了。
首都机场里人山人海,都是惶惶然急于离开北京的外国人。除了人多以外,还有一点让人毛骨悚然:诺大的机场大厅内,排队的,挤来挤去找地方的人们无数,但多数都是一言不发,面色焦急,凝重。与平时这里那种人声嘈杂喧嚣相比,这个时候,空气中竟凝固着一种令人几乎毛骨悚然的--寂静。偶尔有人小声说话,也是莫名其妙的谨慎,好像不愿对方听到似的。
我在去香港的航班队伍中,找到了一个40岁不到的,商人模样的美国人。我将挎包里面的录像带拿出来,和一张100美元的钞票一起递给了他,一边解释说,我是某某美国电视公司的,请求他做我们的信鸽,希望告诉我他的名字,我好回到办公室就传真到香港,这样他下飞机时,就能立刻交给我们在那里接机等他的人……那时离开1997年还有好几年,香港的卫星传输系统自然没有被切断。
那个美国人看着我,又看了看手中的录像带。然后,他点了点头,脸上几乎没有表情。我记下了他的名字。罗伯特。罗伯特对我说了几句话,让我永志难忘。但是,请容我等下再复述。
我离开机场的时候,也许是疑心疑鬼,总觉得后面有人跟着我。我对自己唯一的安慰还是,我对那录像带上的内容,一无所知。
回到市内的办公室后,我再也不敢耽搁了,马上找到了老板,告诉他我完成了最后的任务,但是对不起,本人是个逃兵,现在不得不请辞了。老板似乎这时才意识到,我和他不同,是持中国护照的人。他想了想,表示理解,给我开了工资,放了生。
多少年过去了。这件事情,也一度慢慢被淡忘了。直到有一天,我看到了一个画面,一个被称为20世纪最能展现人类大无畏精神的画面。
我的记忆被激活了。
1989年的6月5日上午10点刚过,一个身穿白色衬衫的中国男青年,赤手空拳地横然挺立在隆隆的坦克车队前面,视死如归。包括我们和其它为数不多的几家境外新闻公司,在他挡坦克的长街旁边的北京饭店的楼上,拍摄下了他的形象。
数分钟以后,我在辞职的话还没有说出来之前,被老板指定,要我必须亲自去北京饭店,取回一盘录像带。取回来之后,又万般火急地要我去首都机场"放信鸽"……
从时间,地点,和重要程度等方面看,我这个逃兵,在完全不情愿的情况下,在每时每刻都在用"我不知道录像带上面是什么内容"试图自我安慰的情况下,无意中却给全世界在第一时间内送去了那一整代中国人中,最后一个不肯当逃兵的人的图像。
这里,我要特别说一下,我不是没有帮助和支持的。我今天想起当时的场面,我要专门地感谢北京饭店大门口,那些身着便衣的,执行公干的北京同胞们。以他们所在的位置,掌握的情报,和他们拥有的技术条件,说他们不知道14楼上有我们的摄像组在拍摄,是全然不可能的。说他们不知道我乘电梯上到14楼,并拿回了那盘录像带,是更加不可能的。但是,我刚才说过,他们看着我的时候,眼睛里面充满了愤怒。作为一个一心在想着当逃兵的我,自以为他们的愤怒,是冲着我来的。但是,我忽略了一点。这些人,下班以后,也是北京的老百姓。子弹绝对不会因为他们白天所做的工作,而躲开他们的亲人,朋友,街坊。今天,我只有一个解释,能够说通为什么他们放我进入那只容一个人出入的大门,又眼睁睁让我从那门内出来。这就是,他们做出了个人的或是集体的,绝不是没有危险后果的决定,他们要让世界看到那个大义凛然的同胞的形象,和他头上勇士的光晕。
最后,让我告诉你,首都机场上那个美国人罗伯特对我说的是什么。
"我十分,十二分地感到内疚和惭愧,在中国人最需要我的时候,我却什么都不能做,只有选择逃离,而且有这个特权能够逃离。这个钱,我不能拿。我虽然不知道这录像带里面是什么。但是请你放心,我会尽我最大的努力保护它,把它送到它应该去的地方,也算是我个人为中国人做的一点点事情。"
我今天回忆这些的时候,唯一的遗憾就是,罗伯特和我这一对逃兵中,有一个恐怕将永远不知道我们在逃跑的路上,有意无意地为世界做了什么。

送你如同送瘟神

$
0
0



分明是一头恶雕,却叫什么"李鹏",
你与你们魔首的作为,人神共愤。
你一生的"功绩"着实显赫:
六四屠城、三峡工程……

千夫所指,你本该在菜市口谢幕的,
却照例在高干病房两腿一伸……
且极尽哀荣,这简直太便宜你了,
莫非这就是"造化弄人"?

别以为走在这样的时辰,
便能逃避正义的公审,
一个屠杀民众还宰割长江的恶棍,
黄泉路上都会有追诉的冤魂。

八宝山快要搁不下你的罪孽,
偌大的中国横卧着你的罪证。
为使每道严惩均对得起你的罪恶,
阎王爷翻开了记载你罪状的账本……

年代向錢看 川普/習近平貿易戰,再談判

中共对〈坚持对华政策〉公开信的回应,包括发表国防白皮书,都显示中共深刻的不安全感和恐惧感

$
0
0

中共显然非常重视〈坚持对华政策〉这封公开信。中共动用大范围的宣传资源来对这封信的观点进行抨击,强调党所需的世界对中国的看法。从历史上看,中共认为只有对其构成威胁的「敌人」,才会进行持续地、重点地宣传攻势。
我们认为,中共对〈坚持对华政策〉公开信的回应,包括发表国防白皮书,都显示中共深刻的不安全感和恐惧感。下面,我们来看一下公开信的内容、签名人和出版时间,以解释中共为什么会有如此强烈的反应。
内容
中共认为公开信〈坚持对华政策〉对其有以下几点严重威胁:
•这封信支持川普政府「对抗中国正在不断进行的伤害美国及其盟友的行为」的战略和政策。
•这封信明确区分了中国、中国人民和中国共产党。信中写道:「我们坚定地支持中国人民,绝大多数的中国人民都希望过上和平的生活。但是,我们不支持中国的共产党政府,也不支持危险的习近平集团的控制。」
•信中指出,中共「在意识形态和实践中」拒绝遵守当今的国际秩序。
•信中指出,「中共唯一坚持不懈的原则是维持和扩大其权力。」
•这封信批评中国是一个「经常地和系统地压制宗教自由和言论自由的政权,包括监禁新疆一百多万公民、日益钳制香港的自治权」。
•信中指出,北京「要求中国人民和全世界接受其『奥威尔式胡言乱语』。」
•信中指出,中国「威胁要对自由民主的台湾发动战争」。
•信中指出,中共「腐蚀了它所触及的一切」。
•公开信呼吁川普政府「重新平衡我们与中国的经济关系,加强与志同道合的民主国家的联盟,最终打败中国在全球压制自由的野心。」
上述许多观点都是基于西方和中国媒体、学术和其他研究领域发现的事实。有关中共行为(宣传、腐败、扩张主义、军国主义)的观点在中共的公开行为中是明显的。
从中共的角度来看,这封信在曝光它的宣传和恶行的同时,击中了它的要害,如意识形态和人权。更重要的是,这封信清楚地区分了中共和中国人民;中共憎恨反共运动,特别是来自美国的反共运动。因此,中共采用一惯的宣传策略回应公开信,例如避免辩论公开信批评中共的细节,否认所有的错误行为,辱骂(「冷战活化石」、「零和思维」、「极端」),故意混淆公开信对中国与中共的区别,并加入更多的宣传(「写作组」专栏和国防白皮书)。
这些宣传策略旨在「掩盖」中文媒体对公开信的正面看法,同时对内进行意识形态宣传。换句话说,中共预期将与美国进行意识形态上的冷战对抗,因此要对大陆民众进行大量洗脑宣传,在反共大势中抢夺话语权。因为中共非常害怕与美国和自由世界的意识形态对抗中失败;一旦失去对中国人民思想的控制,民心也会随之而去,中共政权将危在旦夕。
因此中共在其强烈反应的宣传中自我暴露:为什么中共会非常关注一封由「极端的」、「偏执的」「杂牌军」签署的「非主流」信件。
签名者
7月26日的「辛识平」文章,题为「从联署人看所谓公开信的荒谬」,提供了中共为何如此关注公开信的线索。
这篇文章首先抨击公开信的执笔人,詹姆斯·E·法内尔,一位退休的美国海军上尉和前美国太平洋舰队情报和信息部门主任,「制造耸人听闻的『中国威胁论』」。然后,这封信注意到具有美国军事背景的签名者,说他们中的大多数已退休。文章又批评了「所谓『智库』和民间机构」的签名者,称他们发表的著作「无不显示对中国的强烈敌意」和「散发着冷战时代的陈腐味道」。最后再批「联署名单中竟然还夹杂着一些邪教分子」;中共外交部发言人亦在7月22日批评公开信时,将法轮功学员称作「邪教分子」。
根据对中共的长期研究,我们认为有必要「曝光」信件签名者的背景,因为他们各自的背景令中共恐惧:
• 美国军方和情报人员:虽然签署公开信的大部分美国军事和情报人员已退休,但中共自然猜测他们仍有能力影响川普政府的对华政策。中共还注意到,美国军事和情报人员参与了实际的行动,对中共的颠覆性军事和影响行动非常熟悉。
• 著名的中国评论家、记者、学者和智囊团研究人员:像美国军事和情报人员一样,这个群体中的人们对中共进行了深入的研究,充分了解中共的宣传、军国主义和扩张主义,以及中共严重侵犯人权的行为。
• 中国持不同政见者:这个群体中的一些成员积极参与组织海外的民主运动。一些成员还在美国国会、媒体和其它公共论坛上谴责中共的侵犯人权和其他颠覆行为。
• 法轮功:中共特别关注法轮功,因为中共在1999年发动镇压后,并没有摧毁法轮功,反而促使法轮功学员成为坚定的反共者。迄今为止,法轮功学员出版并传播了对中共高度批评的书籍,在民间发起了「退党」运动,建立了多语种新闻媒体,不断报导中共侵害人权和其他颠覆活动,并成立了一个商业上成功的中国传统舞蹈团,并在一些节目揭露中共对法轮功群体的迫害。经济学人》杂志2018年8月的一篇文章援引一位学者的话说,「中国打击法轮功的运动很可能是一场永无止境的消耗战。」
中共统一战线工作旨在渗透和控制非共产主义团体,同时在敌人的阵营中制造混乱。中共将此策略视为统一战线「法宝」。因为中共极为惧怕反共的个人和团体联合起来,共同推翻中共统治。从中共的角度来看,〈坚持对华政策〉公开信代表了反共统一战线的形成,中共对外宣传工作的失效,与美国和自由世界在意识形态上的对抗即将到来,最终令中共政权岌岌可危。
发表时间
中共多数会注意到,〈坚持对华政策〉公开信于7月18日发表,同日美国国务院也召开第二届促进宗教自由部长级会议。会议期间,美国副总统迈克·彭斯和美国国务卿迈克·蓬佩奥强烈批评中共侵犯人权行为,蓬佩奥还将中共的人权危机形容为「世纪的污点」。
我们之前曾写道:「中共谋求生存和称霸,并且会天然地偏执恶意揣测政敌和地缘政治敌人的意图。」中共不会认为公开信的发表和宗教自由会议的召开在时间上仅仅是巧合。根据事实推断,中共很可能会认为美国同时打意识形态战和人权战,跟中共争夺人民群众——这是中共的噩梦。如果中共相信情况确实如此,那么它对由「杂牌军」签署的「非主流」公开信持续的密集批判是符合逻辑的。
结论
我们认为,中共对〈坚持对华政策〉公开信的激烈反应可能是一把双刃剑。一方面,中共成功地将这封信描述为代表美国的危险的、「非主流」的「反华」声音。另一方面,许多中国大陆人习惯于反着理解中共的宣传,可能会更加好奇地「翻墙」,自己寻找英文版原文。来自中共的大量批评也可能引起西方主流媒体的关注,这些媒体在这封公开信发布时并没有报导。
附注
[1]「专栏作家」,例如,「辛识平」和「钟声」,是写作组或者宣传团队的集体笔名,负责引导主流思想。写作组最早在文革中出现。

林保华:中共不敢輕易出兵香港,因为出兵香港將重創中共权贵的利益

$
0
0
中國在7月24日借發表《新時代的中國國防》的國防白皮書機會,對台獨、藏獨、疆獨掃射一輪,這可看作是例行公事,但是美國也沒有放過,當天就有神盾級導彈巡洋艦穿過台灣海峽還以顏色。
比較特別的是,白皮書未提及港獨。中國國防部發言人吳謙在記者會上被問到對近日香港反送中示威的態度時才回答說:「我們正密切關注香港情勢的發展…部分激進示威者的行為挑戰中央政府的權威,碰觸一國兩制的原則底線,是絕對不能容忍」。至於當局會怎麼處理,他只說「駐軍法第三章第十四條已有明確規定」。他的回答也沒有提及港獨,而是「激進示威者」。
1996年公佈的香港特區駐軍法第九條規定共軍駐港部隊不干預特區地方事務,但第十四條則是,特區政府根據基本法規定,「在必要時可以向中央人民政府請求香港駐軍協助維持社會治安和救助災害」。吳謙拿出這一條出來,旨在恐嚇反送中的民眾,但是還有特區政府「要求」的條件。媒體也大作文章,更有假消息聲稱共軍裝甲車已經入城。
在6月12日香港警察對示威者大舉施暴以後,美國國防部亞太安全事務首席副助理部長海大衛(David Helvey)在13日就對中共駐香港部隊司令員陳道祥進行禮節性拜訪。陳道祥主動向海大衛明確表示,共軍不會違反「不干涉香港事務」的原則。這時強調的是第九條。
由此大致可以看出北京不想把香港事情鬧大而進行恐嚇,然而香港特首及其太上皇的中聯辦別有用心在擴大事態。而北京例如《環球時報》及拳匪網民也喊打喊殺來恐嚇香港民眾。
為何北京很早就定調不用軍隊干涉香港事務?這並非出自共產黨的善心,而是利益決定的。
出兵香港將重創中共权贵的利益
六四屠夫李鵬正好這個時候死了。大家想想如果六四屠城在香港重演會有什麼後果?不要說屠城,只要宣佈戒嚴,香港這個國際金融中心的所有交易都要停擺。1987年10月因為擔心程式交易引發的美股大跌影響香港,香港股市停市四天,結果開市時港股恆生指數暴跌三分之一,融資戶屍橫遍野。當時中國還沒有股市。現在香港股市的市值一半以上是中資,還有深港通、滬港通。香港如果發生股災,中國絕對跑不了。从而牽動中國的樓市、債市,中國的金融大災難絕對跑不了,從而危及整個中共政權。
而中美貿易戰中,中國剛剛表示要開放金融市場,出兵香港還開放什麼金融市場?且不說美國對香港會採取什麼措施,就是中美貿易談判也肯定談不下去了。
香港這隻會生金蛋的雞,現在金雞主人是中國的權貴,習近平再強硬、再衝動,其他派系也不會給這位軍委主席任意出兵香港。
因為香港是世界金融中心,目前的抗爭行動是透過網路進行指揮的游擊戰與運動戰,中國也不可能像在新疆一樣,對香港進行網路封鎖(断网),因為那样也必然造成金融市場的停擺。因此中共的方式只能是將武警滲透進入香港警察與黑社會,對示威者進行殘暴鎮壓。這也是林鄭月娥為何一直拒絕對警察濫權與黑社會介入進行獨立調查的原因。
在前幾次遊行中,有網友報導駐惠州的共軍出現異動,這也可能是恐嚇的動作。當然,這並不是說共軍百分之百不會出動,當習近平進行垂死掙扎已經完全失去理智的時候,也可能孤注一擲,那也不必特區政府提出出兵要求,雖然機會不大,然而這個風險也不能完全忽略。因此最後還是考驗中南海與特區政府的智慧。其實何止共軍不應干涉香港內政,首先中聯辦就不應干涉香港內政,他們綁架了整個香港為他們的烏紗帽服務,已經成為解決香港問題的最大絆腳石。

香港啟示錄-共產黨的話你也信?

$
0
0
倪匡說,香港的優點是自由,當自由消失了,將導致這城市毀滅。
一個大城市,即使是在世界經濟上有著重要地位的大城市,一樣可以遭到同樣的命運。不必摧毀這個大城市的建築物,不必殺害這個大城市中的任何一個居民,甚至在表面上看來,這個大城市和以前完全一樣,但是只要令這個大城市原來的優點消失,就可以令這個大城市毀滅、死亡。而這樣做,可以只出自幾個人愚蠢的言語和行動。僅僅只是幾個人狂悖無知的決定,就可以令得一個大城市徹底被毀,它可以仍然存在地圖上,但只是一具軀殼,不再是有生命的一座城市。
(这段话太应景了。有远见)
這段話摘自香港作家倪匡在1983年出版的科幻預言小說《追龍》,36年後,也就是今年的四月,倪匡在一個電台訪問節目裡坦承,他筆下的「東方大城市」講的就是香港。倪匡創作期間正值中英談判香港前途問題,當時許多港人對於香港未來充滿焦慮,《追龍》故事裡一個「戴了太陽眼鏡的主要人物」,說的就是當年中共總書記趙紫陽,故事裡的「趙紫陽」不解地問這大城市裡的人「你們怕什麼?」故事人物回應:「當然怕,就是怕你們把一個大城市徹底毀滅。」

倪匡這篇36年後的專訪說到他如何能如此精確地預言香港的處境,論述一針見血、相當精彩,談到「一國兩制」,倪匡說:「香港被中共統治後,共產黨有自己的統治原則,現在人們討論一國兩制被破壞,我聽了不禁失笑,我說他們很天真……我根本不相信有一國兩制這回事,有什麼破壞不破壞?不存在這個問題嘛,共產黨說了算,有什麼一國兩制?一國兩制是共產黨說的,共產黨說的,幾時靠得住過?」

至於香港有什麼優點消失了?倪匡表示:「香港的優點是自由,當自由消失了,將導致這城市毀滅。言論自由是所有自由之母。現在有立法會議員說的話不中聽,就被取消議員資格,這完全是違背自由社會的原則。」

對於共產黨,倪匡表示:「聽共產黨提出來的口號便覺得很滑稽,實現中國夢?何謂中國夢?整天叫人發夢,你說奇不奇怪?坊間流傳一句倪匡的話說:『妓女比共產黨更可信。』這句話實在太冤枉了,我從沒有說過這樣的話,熟悉我的人都知道,我很尊重妓女的,這句話對妓女很侮辱。」

談到香港的未來,倪匡又說:「共產黨管治的地方怎麼會有希望?沒有希望的,(香港)等於中國大陸任何一個城市一樣。因此作用愈來愈小,就剩下共產黨的貪官要在這裡匯錢到西方世界,不然香港還有什麼作用?」

倪匡幼時曾就讀華東人民革命大學,參加人民解放軍成為基層軍官,甚至自願前往內蒙大漠參加勞改,但也在這過程中逐漸瞭解共產黨的本質。在一次任務中他被誣陷「反革命罪」,被重判十年,於是一路從大漠往南逃,靠吃老鼠、螞蟻、棉花充飢,走了三個月的路到達廣州,再偷渡到香港,從此未踏足中國。倪匡從不掩飾其反共的立場,他認為「中國官僚資本主義是最無情的資本主義,他們不會同情老百姓的。」「共產黨最可怕之處是要洗腦,控制別人的思想意志,人在共產黨的制度裡只會變成完全服從的機械。」

也因為這樣的經歷,在香港人多數依舊沈迷在「一國兩制,五十年不變」的紙醉金迷之際,倪匡即透過一本科幻小說精準預言香港的未來。在今年四月的這場香港電台專訪裡,倪匡儘管看似羽扇綸巾、滿臉笑意,但對香港現狀與共產黨的評論,卻是刀刀見骨、重擊人心。

倪匡對香港的未來顯然是悲觀的,所以他在《追龍》裡用「青龍吞噬」影射中共接收香港的景象,在故事裡無所不能的主角衛斯理對此同樣無計可施,因為「別以為世上所有的事都可以通過努力而達到目的,事實上,世上有太多的事,再努力也達不到目的。」百萬香港人過去一個月試圖用行動反擊這尾「邪龍」,而台灣人呢?套句倪匡的話:「難道共產黨的話你也信?」

银行过载,地产有灾

$
0
0


这几天的新闻比较有意思,一个是招行发布业绩快报,依然业绩靓丽增速可观,但蹊跷的是银行股并没有跟着利好上涨,这就颇有点类似于当今股市行情,大家都知道股票便宜,可就是没钱买股票啊,如之奈何?感受到没钱的,同样来自于银行:近两个月以来,银行发行债务发上了瘾:民生银行和华夏银行发行了400亿永续债,浦发银行胃口稍微小了点:只要300亿。接着就是工行也发了800亿的永续债。

这还只是开始,根据不完全的统计信息,总共还有九家银行排队等着要发4500亿的永续债。永续债,这个以前小白散户们从来没有听说过的新名词,忽然变成了资本市场最热的新名词。银行们的业务依然还很红火,报表上的利润很不错,各项指标看起来也很健康。但就像无缘无故打氨基酸的人一样,它们已经感受到了自己身体上的亚健康状态,实在让自己耐受不住操劳,所以,虽然对外宣称自己体质良好,没病没灾,但还是忍不住想要补充点能量,否则就是浑身有气无力的硬气不起来。
有钱的银行也缺钱了。央行已经放水放到连自己都害怕,放的越多,资金饥渴症就越突出。太多的资金进入了低效、无效的领域,要么变成了无法挪动的混凝土,要么进入了不能增值裂变的领域,这些低效资产慢慢变成了负债,吞噬着流动性。不管借钱的主体是政府还是企业,又或者是变成房奴的个人,他们拥有的资产看起来都很光鲜亮丽,但是剥去光鲜亮丽的外衣后又会发现惊心动魄的另一面:这些资产都是低变现率低流动性的负债,哪怕现在看起来资产大于负债,但其实要他们拿出现金来,却几乎都是一致的困难。你觉得政府很有钱,但政府的预算都盯着那些看起来很值钱的土地能够拍卖出去再换回现金流来补窟窿;你觉得那些企业大到可以进入世界五百强,可是如果要他们拿出一笔现金来,才会发现他们也在眼巴巴地等着银行批额度给自己渡过难关。至于个人,那就更惨了,那些号称千万富翁的人,每个月都在为下一个月的房贷焦头烂额。
流动性枯竭正在逼近每个领域。股市的成交量如此惨淡,已经逼得大股东都爆仓了,他们原来都是稳坐钓鱼台专门收割散户的那一群特权阶层,如今却也可怜巴巴地成了挨镰刀的韭菜。接下来要挨这一超级大镰刀的,只能是地产商人了,几百家房企破产的信号,不是结束,而是开始。银行自己没钱,只能过河抽板,先保自身再说。那在接下来的日子里,缺钱就将成为常态。流动性一旦收缩,所有的资产就瞬间翻转,变成了负债,你曾经越有钱,现在就会变得越艰难——因为你的负债规模也必然比别人大,负债率也必然比别人高。
你将进入一个让人无法翻身的时代。
因为你已经进入了没有梦想,只剩泡沫的时代,所有资产都像被僵尸咬过的病体,成为一个新的感染源,谁接手都要遭殃。银行收了欠债者的房产,胀死了自己,耗费掉自己的流动性,只能靠变卖资产来释放流动性,而变卖意味着资产贬值,贬值自然就会拖累盈利,盈利下降又会打压自身估值,自身估值的降低又拖累了企业规模,于是,一系列复杂的连锁反应就此像失控的切尔诺贝利核电站一样,埋葬了所有参与者。抛盘侠惨不忍睹可以预见,接盘侠也将受损却会让许多人难以理解,但现实就是这么残酷,这样的有毒资产,想要洗净毒性,重新焕发生机,少说也得被倒手五六次以上,才有最后的接盘侠能够从中获利,而在此前介入的,都会受伤铩羽而归。
目前,实体产业已经萧条很久,基本上已经处于螺旋式下旋的中半段以下,虽然说不上离触底还有多远,但就算再怎么暴雷,也算不上惊天动地。世界最大的鞋厂都已经不在东莞了,中国最大的钢厂之一武钢也都成为历史了,这些超大实体消泯都没给人们多大震撼,那还有什么更大的事件能够让人触目惊心呢?
要说有,大概也就只有招保万金绿融恒碧之类的超级房企突然跳水死亡了。当然,此前安邦、万达、海航几家曾经打了先头,结果也被顶了下来,现在看起来风平浪静的,似乎危局已过。但危机往往却是在第一波已经过去,一切看起来正要重新向好的时候,最容易爆发出来,而且往往还是不可控的,毫无征兆的。所以,接下来的某个时间段内,要是突然爆出某个特大房企资金链断裂,呈现冰山式崩塌时,你千万不要太惊讶。

http代理服务器程序-ProxPy

$
0
0
A Python HTTP/HTTPS Proxy.
ProxPy is a highly customizable HTTP/HTTPS proxy, written in Python. It is very handy for web penetration testers and for developers interested in testing their web applications.
ProxPy works as a "man-in-the-middle" between the browser and the target application. It has been developed with the purpose to be easily customizable. At this aim, users can write plug-in with minimal effort. Plug-ins are written in Python, and can modify HTTP/HTTPS requests and response on-the-fly.
Please note that ProxPy is currently under heavy development, so the plug-ins interface may change in the near future.

If present, the proxy_mangle_request and proxy_mangle_response methods are invoked on each HTTP request and response, respectively. In this example, the plug-in performs the following operations:
  • For each HTTP request, the value of the User-Agent HTTP header is set to "ProxPy Agent"
  • For each HTTP response, any occurrence of the "Google" substring is replaced with "elgooG" Obviously real-world plug-ins are typically more complex than this.

Usage

To test the plug-in described in the previous section, run ProxPy with a command-line similar to the following one:
$ ./proxpy.py -x plugins/changeagent.py 
[*] Server 0.0.0.0 listening on port 8080
Then, the browser should be configured to connect through ProxPy on TCP port 8080. All available command-line options are shown invoking ProxPy with the "-h" switch.

from https://github.com/BackupGGCode/proxpy


Linux桌面系统下,丢弃 DNS 伪包

$
0
0
iptables -N dnsfilter -t mangle
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x042442b2,0x0807c62d,0x253d369e,0x2e52ae44,0x3b1803ad,0x402158a1,0x4021632f,0x4042a3fb,0x4168cafc,0x41a0db71" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x422dfced,0x480ecd63,0x480ecd68,0x4e10310f,0x5d2e0859,0x80797e8b,0x9f6a794b,0xa9840d67,0xc043c606,0xca6a0102" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xcab50755,0xcb620741,0xcba1e6ab,0xcf0c5862,0xd0381f2b,0xd1244921,0xd1913632,0xd1dc1eae,0xd35e4293,0xd5a9fb23" -j DROP
iptables -t mangle -I dnsfilter -p udp -m udp -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0xd8ddbcb6,0xd8eab30d,0xf3b9bb27,0x4a7d7f66,0x4a7d9b66,0x4a7d2771,0x4a7d2766,0xd155e58a" -j DROP
iptables -t mangle -I PREROUTING -m udp -p udp --sport 53 -j dnsfilter
当然也适用于基于 Linux 系统的路由器,Tomato,DD-WRT,OpenWRT 等,把脚本丢到路由器启动脚本里面即可。
------------------

通过ttl判断,过滤欺骗污染.
  获取你的dns服务器正常响应包的ttl,
  以正常的ttl=44举例如下:
  iptables -A INPUT -p udp -sport 53 -m ttl --ttl-lt 44 -j DROP
  iptables -A INPUT -p udp -sport 53 -m ttl --ttl-gt 44 -j DROP
  iptables -A INPUT -p udp -sport 53 -m ttl --ttl-eq 44 -j ACCEPT

DNS server software

$
0
0

Here is a list of DNS software that is open source, is currently (as of 2016) being maintained, and that has authoritative and recursiveDNSSEC support:
  • BIND is the swiss army knife of DNS servers. It has a lot of features and can do pretty much everything. It's also a big binary and sometimes difficult to configure. CVE BIND supports DNSSec.
  • Unbound and NSD make up a suite of DNS servers; they are both from NLnet Labs.Basically, one (NSD) puts your web page on the Internet; the other (Unbound) looks for web pages on the Internet. NSD CVE(None of those entries look to point to NSD; it appears to have no CVE entries) Unbound CVE Both support DNSSec.
  • Knot DNS and Knot Resolver are two new DNS servers for the 2010s (an authoritative and recursive component); the recursive resolver is from 2016. Both support modern DNS features, such as DNSSec. Like NSD and Unbound, Knot DNS serves DNS records and Knot Resolver looks for DNS records on the Internet.So far, there do not appear to be any CVE reports for either server, but both packages are fairly new. There’s a good writeup at LWN by the implementer about Knot DNS.
  • PowerDNS (which like Unbound/NSD, is two separate programs) has a lot of flexibility with connecting to databases or what not to resolve a DNS name. Used by Wikimedia, among others. CVE.
Here are some other DNS servers:
  • DjbDNS. Great tiny two-program DNS suite that sadly hasn't been updated by DJB since 2001. Yes, it does have security problems (That's a CVE link). Note that there are at least two security issues with DjbDNS which do not have CVE numbers.For anyone who wants to use DjbDNS, use N-DjbDNS, which is (as of mid-2015) patched against all known security holes.
    There are patches to give the authoritative half DNSSEC support; there is no DNSSEC support for the recursor.
  • MaraDNS. It was once a single program, now two separate programs (like Unbound/BSD and PowerDNS) Easy-to-configure; tiny binary suitable for embedded systems. CVEMaraDNS does not support DNSSEC nor EDNS.
There are many many other DNS servers, both open source and non-open source. Here is an incomplete list of the open source ones:DnsMasqpdnsdPosadisMyDNSMyDNS-ngSDNS (Public domain, local download link), DnsJAVA

Other lists

from https://maradns.samiam.org/dns_software.html
---------------

DNS Server (and Related) Software for Unix

Here is a list of the real choices, comparing and contrasting BIND9 with all known alternative DNS server implementations for Unixes -- many that in particular deployments will prove superior:




Table of Contents

Maintained open source packages:

Unmaintained open source packages (deprecated!):

Related Software:

Proprietary Software:

(See list at page bottom.)





Guide for the Perplexed

If like most people you are unclear on how a recursive nameserver, an authoritative nameserver, and a forwarding nameserver differ, please see my explanatory anecdote: 1, 2.


Maintained open source packages:


  • BIND9 (link) is a full-featured recursive server, authoritative, and caching nameserver, bundled with a resolver client library. This is a from-scratch rewrite of the hopelessly spaghetti-coded legacy BIND8 codebase that Paul Vixie inherited from UC Berkeley: Vixie commissioned its creation by Nominum, Inc., who wrote it solely from the BIND8 specifications without reference to the old codebase.

    Coded in C.
    http://www.isc.org/software/bind/
    Licence: ISC Licence, a simple permissive licence with warranty disclaimer.
    Dovecot imapd author Timo Sirainen post in 2007 some comments (warning: unmaintained page): Code relies on several ISC wrapper libraries for key functions, code has lots of asserts and sanity check, "in general the code just feels heavy — functions have tons of variables, some functions are huge, locks for thread safety, lots of goto jumping to deinitialization parts if something went wrong".
    BIND9 is slow and large compared to many competitors, and the monolithic codebase seems overfeatured.
  • Bundy (link) is an authoritative server and DHCP daemon, initially (2010) developed as BIND10 at ISC, and then handed off (in 2014) to third-party developers when ISC decided to refocus on improving BIND9.

    Coded in C++ and Python.
    http://bundy-dns.de/
    Licence: ISC Licence, a simple permissive licence with warranty disclaimer.
  • CurveDNS (link) is a caching forwarder server capable of either forwarding regular (non-authenticated) DNS packets, or of boxing DNSCurve-authenticated queries and forwarding the resulting regular DNS packets and then boxing the resulting regular DNS responses to DNSCurve-authenticated responses. It supports both DNSCurve's streamlined and TXT formats, caching of shared secrets, both UDP and TCP, and both IPv4 and IPv6. Thus, you would normally deploy it as the DNSCurve-supporting front-end to a different authoritative nameserver.
    Coded in C by Harm van Tilborg, Jeroen Scheerder, and Lieuwe Jan Koning. Compilation requires Marc Lehmann's libev and the Computer Aided Cryptography Engineering project's NaCl (Networking and Cryptography library). Daniel J. Bernstein's daemontools are recommended but not required for management.
    http://curvedns.on2it.net/
    Licence: 2-clause BSD licence.
  • Deadwood (link) is a recursive server with several enhancements, for Unix and Win32, by Sam Trenholme, author of MaraDNS (for whose recursive component it's a compatible replacement). Deadwood is implemented as a non-threading daemon.
    At this writing (2010-10-05), Deadwood v. 3.0.01 is a feature-complete release. It's very small and fast: One 2.9 beta was the second smallest executable among recursive nameservers for Unix at 64,418 bytes as compiled for CentOS 5, versus zinq-djbdns's dnscache at 45,016 bytes, compiling using "-Os" optimisation and stripping the binary. (Unmodified dnscache v. 1.05, not recommended on account of unfixed bugs, weighs in at 43,644 bytes using the same options.)
    Comparing Win32 versions, the Deadwood beta's binary was 144,237 bytes (-O3 compiler optimisation and unstripped), PowerDNS recursor is 503,860 bytes (prebuilt binary), Unbound is 1,745,920 bytes (prebuilt binary), and BIND9 is 4,055,552 bytes (prebuilt binary).
    Enhancements over dnscache's basic recursive service:
    • "DNS wall" that filters any private IP addresses out of DNS responses to protect networks against DNS rebinding attacks.
    • Ability to read and write the cache to disk.
    • Optional ability to "resurrect" domains by serving expired data from cache if no data within TTL can be fetched.
    • Ability to filter out AAAA IPv6 responses (or to compile in full IPv6 support if desired).
    • Code that stops AR-injection spoof attacks.
    • Multiple inflight merging.
    • Flexible parser for server configuration files.
    • Support for DNS responses over TCP transport.
    • Caching of CNAME responses.
    • Caching of SOA responses.
    • Ability to countermand upstream NXDOMAIN redirections (ip_blacklist feature).
    Deadwood can be compiled for either Win32 or for Linux, and is available as source code. (Win32 binaries are available for download.) Linux functionality has been (thus far) author-tested on CentOS 5 only.
    Coded in C by Sam Trenholme.
    http://maradns.samiam.org/deadwood/
    Licence: Two-clause BSD licence.
  • djbdns (link) is a suite of specialised-role, related DNS server utilities (and two client pieces) by Daniel J. Bernstein, Research Professor, Department of Computer Science, University of Illinois at Chicago and author of the qmail MTA.
    (I'm being charitable in classifying djbdns as a "maintained offering", because, even though it was orphaned in 2001, its newly (a/o 2007) open-source (arguably) legal status permits third-party maintainers to put together an unofficial 1.06 release to bring it into the 21st century -- which may or may not happen but is worth hoping for.)
    • djbdns is an omnibus package of all of Bernstein's DNS server software.
    • tinydns is the authoritative-only DNS daemon.
    • dnscache is the caching recursive server. It is so far (2008) unique among *ix recursive nameservers in implementing this functionality without needing to use threading.
    • walldns is the specialised authoritative-only DNS daemon for reverse-zone data, designed to minimise public leakage of inside host data.
    • rbldns is the specialised authoritative-only DNS daemon for DNS blocklist data about blocks of IP addresses such as dial-up IP lists.
    • axfrdns is the TCP-based AXFR zone-transfer server. It also handles some other TCP-based queries, such as requests for SOA records and (rare) DNS replies exceeding the 512-byte maximum size of a (regular, non-EDNS0) UDP datagram. As a consequence of its ability to output RFC 1035 ("BIND") zonefiles for AXFR zone transfers, axfrdns is also usable as a format converter. (NOTE: Absent third-party patches, the various djbdns utilities omit support for IETF NOTIFY, IXFR, outgoing AXFR, DNSSEC, TSIG, A6, DNAME, bitstring labels, Dynamic DNS, negative TTLs (NCACHE), and other modern DNS features.) It is generally a good idea to set up axfrdns running on the same IP as tinydns, if you want support for large packets, or will offer zone transfers.
    • axfr-get is the AXFR zone-transfer client, pulling down other authoritative servers' data in RFC 1035 ("BIND") format and writing that data in tinydns's database format.
    • dns is the DNS client library.
    • pickdns was the DNS load-balancing utility, but its functions were merged into tinydns as of djbdns v. 1.04 and above.
    Through 2007, fans of djbdns (and components thereof) would often assert that it was "free software" or "open source". It was not. However, in late 2007, Bernstein asserted that djbdns (like qmail) would prospectively become public domain by his own fiat.
    Dovecot imapd author Timo Sirainen posted in 2005 some comments (warning: unmaintained page).
    Recommended patches:Codebase has been unmaintained since v. 1.05 in 2001, except for through third-party patches. In consequence, until someone collects, merges, and harmonises a reasonable set of those patches (2009-09-08 note: There are now four forks, as noted below) , users must collect and apply the following fixes to the v. 1.05 source tree, and compile locally:
    • Do 'echo "include /usr/include/errno.h >> conf-cc"', to make the djbdns tools' source code compilable with modern Linux C libraries (updating the errno definitions in djbdns and tcpserver),
    • apply a dnscache patch to prevent it from dying if it is remotely DoSed by an attacker sending it the SIGPIPE signal and then closing the socket before the write finishes (i.e., the patch makes dnscache ignore SIGPIPE),
    • apply a tinydns patch to reduce mmap() overhead,
    • apply a dnscache patch to add support for negative TTLs (caching of unsuccessful lookup results),
    • apply a dnscache patch (1, 2) to prevent it erroneously returning SERVFAIL on some queries over TCP,
    • apply a dnscache patch to support oversized UDP packets up to 4096 bytes in length (while still correctly truncating responses over 512 bytes when sending them to stub resolvers over UDP),
    • apply two dnscache patches to make it become willing to cache SOA records, and to send only one response back to each flood of identical requests, thus greatly reducing the program's resistance to cache poisoning,
    • apply a tinydns patch (1, 2) to add native support for SRV RRs (not strictly necessary for creation of SRV records or other unsupported types such as AAAA, SPF, TXT, NAPTR, and DomainKeys, as you can always use the generic record format for arbitrary data types -- but nice to have as "syntactic sugar" -- and please note that proper native support for IPv6 has largerissues than just AAAA support),
    • apply a tinydns patch to fix a file-descriptor leak,
    • apply a tinydns patch making its error-handling on zonefile syntax errors more robust (obviously not an essential patch, but helpful),
    • apply a dnscache patch to make its logging less chatty,
    • apply two patches to fix dnscache's, tinydns's, and axfrdns's erroneous treatment of CNAMEs (1, 2),
    • apply (on Linux only) an epoll patch (to speed up various djbdns tools by using Linux 2.6.x's "epoll(4)" I/O event notification facility instead of "poll(2)"),
    • apply one of two patches (where one's usage model makes this useful) to make the various djbdns tools support binding to multiple IPs (1, 2) -- and, in fairness, the Bernstein-recommended alternative of running multiple daemon instances, one per IP, is usually fairly practical and has operational advantages,
    • apply a dnscache patch to update the (obsolete) root servers list,
    • apply a dnscache patch to its use of the Recursion Desired ("RD") bit, to make dnscache able to function correctly in a pure forwarding role (if you happen to need it in that role),
    • apply a "dns" (djbdns client library, if you happen to use that module) patch to correct a bad coding choice that makes it unable to correctly deal with the hostname of a recursive or forwarding server that maps to multiple IP addresses,
    • either tune dnscache's fixed-upper-bounded (but configurable) cache size to local requirements, or comment out dnscache's cache.c source line that limits the upper bound on cache size to 10^9 bytes by default ("if (cachesize > 1000000000) cachesize = 1000000000;"), to let it float, and
    • apply an axrfdns and tinydns patch to correct a security-damaging bug in large-packet TCP data handling that permits a limited form of cache poisoning.
    • Patch dnscache to add use of SipHash, a pseudo-random function useful for fixiing a problem discovered in 2012 with dnsccache's djb33 hash function that makes dnscache vulnerable to cache poisoning (by inducing collisions in the hash table).
    • You also might want manpages, which, unbelievably, are deliberately missing from most of Bernstein's software.
    (Caveat coder: I cannot vouch for the quality of those code snippets, nor guarantee that they won't cause other problems or be mutually incompatible. I know only that they were efforts to address real deficiencies in the base code.)
    Also tinydns.org and Jonathan de Boyne Pollard's page document other problems that might warrant patching before compilation. Some problems will remain, such as frequent failure to resolve Akamai and some other companies' DNS (on account of their use of admittedly ugly and baroque delegations without glue records), where other nameservers will have no problems.
    It should also be noted that, by default, djbdns requires ancillary package ucspi-tcp (Bernstein's idiosyncratic superserver, though there are ways to substitute xinetd/inetd, etc.) and also recommends daemontools (Bernstein's idiosyncratic toolset for managing system services, though there are workarounds (1, 2) to avoid most of that need). Daemontools, if used, enforces a non-standard filesystem hierarchy for its and djbdns's components.
    djbdns (specifically, dnscache) was the first recursive nameserver to randomise query source UDP ports as a security precaution, and to separate recursive and authoritative service, which is best practices.
    Critical claims to the contrary notwithstanding, it is indeed possible to run dnscache and tinydns on the same IP. See Felix von Leitner's djbdns FAQ for that and other common questions.
    Coded in C by Daniel J. Bernstein.
    http://cr.yp.to/djbdns.html
    Licence: Asserted to be "public domain".
    • zinq-djbdns: (link) Mark Johnson has created a maintained fork of djbdns as part of his umbrella project of adopting Dan Bernstein's unmaintained software. Thus the term "zinq", which is from Zinq Is Not Qmail. As of v. 0.05, it adds these changes to Bernstein's v. 1.05:
      Updated obsolete root-nameservers roster "dnsroots.global"
      Uses automake/autoconf, instead of Bernstein's build process, and got rid of spurious compiler warnings.
      Applied the patch to dnscache to make it ignore SIGPIPE, which can be used to DoS it.
      Patched dnscache to quadruple its upper bound on cache size from 10^9 bytes to 4x10^9 bytes.
      Patched dnscache to prevent it erroneously returning SERVFAIL on some queries over TCP.
      Patched dnscache to support oversized UDP packets up to 4096 bytes in length (while still correctly truncating responses over 512 bytes when sending them to stub resolvers over UDP).
      Patched tinydns to add native support for SRV and NAPTR records.
      Supplied manpages, from Gerrit Pape's set.
      Patched axfrdns and tinydns to correct a security-damaging bug in large-packet TCP data handling that permits a limited form of cache poisoning.
      Coded in C by Mark Johnson and Daniel J. Bernstein.
      Formerly at http://sourceforge.net/projects/zinq/ (which no longer exists); seems to have moved a/o 2010 to https://github.com/tenchman/TTLinux/tree/master/apps/dns/zinq-djbdns
      Last maintained in 2010.
      Licence: Asserted to be "public domain".
    • Debian djbdns/dbndns: (link) Debian developer Gerrit Pape maintains four Debian binary packages (dbndns, djbdns, dnscache-run, tinydns-run) based on one Debian source package (djbdns). Pape applies these changes to Bernstein's v. 1.05:
      In both binary packages "djbdns" and "dbndns":
      Supplied manpages (by Gerrit Pape).
      Patched to use glibc, system errno.h headers.
      Updated the /etc/dnsroots.global configuration file to replace obsolete root nameservers list.
      Patched to support parallel build through "make -j".
      Patched to install binaries into /usr/bin.
      Patched to make daemontools, ucspi-tcp "Recommends" rather than "Depends" packages.
      Patched axfrdns and tinydns to correct a security-damaging bug in large-packet TCP data handling that permits a limited form of cache poisoning.

      Applied to binary package "dbndns" only:
      Patched tinydns to add native IPV6 support.
      Patched to allow a maximum of 20 concurrent outgoing SOA queries to hardenit against remote spoofers of DNS responses (but this patch may soon be backed out).
      I haven't worked through binary package dnscache-run's and tinydns-run's metadata to see what patches Pape applied to it, but it's whichever subset of his patches are applicable from those used ot create binary package "djbdns".
      Coded in C by Gerrit Pape and Daniel J. Bernstein.
      http://packages.qa.debian.org/d/djbdns.html
      https://tracker.debian.org/pkg/djbdns
      Licence: Asserted to be "public domain".
    • N-DJBDNS: (link) Red Hat developer Prasad J. Pandit has created a djbdns fork and proposed it (2009-03) for inclusion in Fedora Project. Prasad's fork was named RH-djbdns until July 2011, when he renamed it njbdns (new djbdns), later modified to N-DJBDNS. As of v. 1.05.3 (2009-08-17), it adds these changes to Bernstein's v. 1.05:
      Uses automake/autoconf, instead of Bernstein's build process.
      Works with /sbin/service.
      No longer requires daemontools.
      tinydns now reads /etc/djbdns/tinydns.conf and logs to /var/log/tinydns.log. Default installation destination prefix is /usr/ (in the RPM .spec file).
      Changed dnscache conffile to /etc/djbdns/dnscache.conf
      Changed dnscache to log to /var/log/dnscache.log", write PID file to /var/run/dnscache.pid, and accept some command-line options.
      Patched axfrdns and tinydns to correct a security-damaging bug in large-packet TCP data handling that permits a limited form of cache poisoning.
      Patched dnscache to prevent it erroneously returning SERVFAIL on some queries over TCP.
      Patched dnscache to update obsolete root nameservers list.
      Applied the patch to dnscache to make it ignore SIGPIPE, which can be used to DoS it.
      Patched to use system errno.h headers.
      Renamed CHANGES to ChangeLog, added Pandit's entries.
      Changed various utils to use system header files.
      Some comments added, and a more-conventional coding style applied. All coding made portable to FreeBSD and probably other Unixes. New manuals for several commands. Commands now accept command-line options.
      As of 1.05.3, only the following djbdns tools are (thus far) compiled/installed: dnscache, dnsipq, dnsq, dnstracesort, tinydns, tinydns-data, tinydns-edit, tinydns-get, dnstrace, and a couple more. Pandit is proceeding to revamp the other pieces, gradually.
      Coded in C by Prasad J. Pandit and Daniel J. Bernstein.
      http://pjp.dgplug.org/djbdns/
      (.spec file, source, SRPM, bugzilla)
      Licence: GNU GPLv2 or later. (See .spec file.)
    • LolDNS: (link) Joshua Small created the LolDNS fork of djbdns 1.05 in February 2009, to "go beyond the many current forks of just perpetuating the product, and to actually do away with the things that djbdns used to get slammed for."
      Patched to use glibc, system errno.h headers.
      Patched to no longer require daemontools, ucspi-tcp.
      Patched to add an equivalent to BIND9's $GENERATE auto-generated entry directive.
      Patched to add support for SRV records.
      Patched to support binding to multiple IP addresses.
      Patched to call chroot() before dropping privilege.
      Adds new management and logging daemons.
      Coded in C by Joshua Small and Daniel J. Bernstein.
      https://lolware.net/2013/09/23/loldns.html
      http://lolware.net/loldns-STABLE5.tar.gzhttps://github.com/technion/loldns
      Note: Small recommends checking out the latest svn trunk snapshot, instead of using tarball code.
      Licence: Joshua Small has specified a licence of his own devising for his additions to Bernstein's code, the first two clauses of which grant a simple BSDish permissive licence (making code usable for any purpose; derivative works can be created and distributed by anyone), provided that there is no warranty (third clause) and that Small's small graphical "so much win" image remains included in some way (the fourth and final clause). Daniel Bernstein has asserted his v. 1.05 base code to be public domain".
  • DNRD (Domain Name Relay Daemon) (link) is a small caching-only server for NAT / IPmasq networks.
    Coded in C by Natanael Copa, Brad Garcia, and Nathan Angelacos.
    https://github.com/benjaminpetrin/dnrd, formerly at
    http://dnrd.sourceforge.net/.
    Licence: GNU GPLv2 or later.
  • dnsjava (link) is an authoritative-only server, DDNS client, and related tools, written in Java by Brian Wellington. Patched only on Aug. 6, 2008 to randomise UDP source ports for recursive queries as a security precaution.http://www.dnsjava.org/
    Licence: Newer BSD licence.
  • Dnsmasq (link) is a small caching forwarder server (no recursive service -- iterative queries only) with local-only authoritative service for a group of NATted / IPmasqued machines (optionally pulling names from DHCP leases).
    This package is often embedded in firewall/gateway appliance boxes. Did not implement serious randomisation of source UDP ports on outgoing recursive queries as a security precaution until July 11, 2008 (v. 4.3), when the use of inadequate system-libc random number generators was junked and replaced with Dan Bernstein's SURF random number generator, borrowed from dnscache.
    Coded in C by Simon Kelley.
    http://www.thekelleys.org.uk/dnsmasq/
    Licence: GNU GPLv2 or later.
  • dnsproxy (link) is is a proxy daemon that answers 53/tcp & 53/udp DNS queries, and forwards the recursive and authoritative queries separately so a pair of specialised daemons (e.g., NSD and Unbound, or tinydns and dnscache) can handle each, but still only use a single public-facing IP address. The two daemons accepting the forwards may be local or they might be elsewhere (as in a firewall situation). Requires libevent. Runs chrooted and unprivileged.
    Coded in C by Armin Wolfermann.
    http://wolfermann.org/dnsproxy.html
    Licence: MIT Licence.
  • dproxy (link) was/is a small caching forwarder server with a disk-based cache, suitable for small networks and workstations.
    Coded in C by Matthew Pratt. As of 2016, the legacy dproxy 1.x code has been unmaintained since 2005, but the dproxy-nexgen code at GitHub appears to be maintained (updated 2014).
    https://github.com/vicgarin/Actiontec-V1000H/tree/master/bcm963xx_V1000H-31-121L-11/userspace/gpl/apps/dproxy-nexgen
    https://sourceforge.net/projects/dproxy/
    Licence: GNU GPLv2 or later.
  • gndsd (Geographic DNS Daemon) (link) is an authoritative-only non-caching server with native support for DNSCurve authentication of DNS contents. The "geographic" in its name refers to its plugin interface for geographic (or other sorts of) balancing, redirection, and service-state-conscious failover, which is an optional capability. Several example plugins are provided, including gdnsd-plugin-georeg, which uses MaxMind's commercial Region-format database to do geographic balancing and failover of a given hostname to a set of geographically dispersed IP addresses. A basic HTTP monitoring service for failover is included, as are hooks for implementing other failover methods. Compilation requires pthread suppor, Marc Lehmann's libev, and the Computer Aided Cryptography Engineering project's NaCl (Networking and Cryptography library).
    Coded in C by Brandon Black for Logitech, Inc.
    https://github.com/gdnsd/gdnsd, formerly at
    http://code.google.com/p/gdnsd/
    Licence: GNU GPLv3 or later.
  • Knot DNS (link) is an authoritative-only server developed by CZ.NIC, the .CZ domain registry, with particular emphasis on suitability for TLD operators. It is implemented as a threaded daemon using a number of programming techniques to make it very fast, notably read-copy-update. Code is mostly lock-free, scales well on SMP systems, and operates non-stop even when adding or removing zones. Supports DNSSEC and EDNS0 extensions including NSEC3. Does AXFR/IXFR. Supports dynamic updates, response rate limiting, automatic DNSSEC signing.

    Runtime depends on several libraries including userspace-rcu. Configuration files use simplified YAML format.
    Coded in C by the CZ.NIC team.
    https://www.knot-dns.cz
    Licence: GNU GPLv3 or later.
  • ldapdns (link) is an LDAP database-based authoritative and caching server (no recursive service -- iterative queries only). Despite use of a database, it's much faster than BIND9.
    Coded in C by "Mrs. Brisby".
    http://ldapdns.sourceforge.net/
    Licence: GNU GPLv2 or later.
  • MaraDNS (link) is a general-purpose, fast, lightweight, authoritative, caching forwarder, and recursive server, fully supporting zone transfers, which runs unprivileged, performs its own chroot, and includes its own buffer-overflow-resistant string library and random number generator. Module "zoneserver" does authoritative service only. Module "maradns" can do both recursive and authoritative DNS. Includes a converter Python script to convert zonefiles from RFC 1035 ("BIND") format to MaraDNS's similar "csv2" format. Code uses RAM-based caching. Daemon must currently be restarted if any zonefile records are changed, currently requires the OS have robust threading support for its recursive service, and currently doesn't support NOTIFY or IXFR.
    Starting with the 2.0 release, MaraDNS defaults to using the provided Deadwood recursive nameserver code (see separate entry) for its recursive functionality.
    As of June 21, 2015, there is no security or maintenance support for the obsolete 1.x branch, and it is strongly deprecated.
    Excellent security history. Among other things, MaraDNS's recursive module randomised source UDP ports on outgoing recursive queries using a strong RNG from the very beginning. Also, recursive server attempts to be careful about cache poisoning resulting from trusting glue records passed out-of-bailiwick.
    Code is written in C by Sam Trenholme.
    http://maradns.samiam.org
    Licence: Two-clause BSD licence, on v. 1.1 and later.
    Dovecot imapd author Timo Sirainen post in 2007 some comments (warning: unmaintained page): "Should be secure. Code doesn't look too bad, but it's using a lot of gotos."
  • MyDNS-NG (link) is a MySQL or PostgreSQL-based authoritative and caching forwarder server (no recursive service -- iterative queries only) suitable for very large sites. In such roles, it's faster and more responsive than BIND9, even though the latter uses a RAM-based cache.
    Coded in C by Howard Wilkinson and Dan Moore.
    http://www.mydns-ng.com/
    Licence: GPLv2 or later.
  • NSD (link) is a high-performance, small, authoritative-only daemon, with DNSSEC support, and able to directly re-use RFC 1035 ("BIND") zonefiles (which it compiles to binary format for speed). Package includes the zonefile compiler ("zonec"), the core nsd daemon, the zoneserver, and a zone transfer program.
    Coded in C by a number of authors including Alexis Yushin and Erik Rozendaal.
    http://www.nlnetlabs.nl/nsd/
    Licence: Newer BSD licence.
  • pdnsd (link) is a small caching forwarder server, coded in C by Paul A. Rombouts and Thomas Moestl, with a disk-based cache, suitable for small networks and workstations. Has had some buffer-overflow and stability problems, in the past, but in general has sound design (e.g., always randomised source UDP ports for recursive queries).http://members.home.nl/p.a.rombouts/pdnsd/
    Licence: GNU GPLv3 or later.
  • PowerDNS: Was a combined authoritative and recursive nameserver package through v. 2.9.20. Starting with the next releases (April 21, 2007), those functions were split into new packages "PowerDNS Authoritative Server" and "PowerDNS Recursor", which please see.
    PowerDNS was originally proprietary software, open-sourced under GNU GPLv2 on 2002-11-25.
  • PowerDNS Authoritative Server (link) is an authoritative-only server with modular structure supporting various back-end information stores such as SQL databases (MySQL, PostgreSQL, Oracle 8i, Oracle 9i, IBM DB2, and others via ODBC), RFC 1035 ("BIND") zonefiles and other file formats, and LDAP directories. Supports AXFR zone transfers. Partial DNSSEC support. Fast but also a bit bloated. Compiling the package requires satisfying some convoluted dependencies, notably the need for Boost C++ class libraries. Default configuration assumes propagation of nameservers to related hosts via replication at the level of the back-end database store, but optionally the adminstrator can also enable RFC 1034 / RFC 1995 "zone transfers" (using NOTIFY/AXFR) as implemented in BIND9. Package can be configured to refer incoming recursive queries to a (any) separate recursive nameserver by a specified IP/port. Has internal chroot function. Does not support BIND9-style "views": One can emulate that mode by running multiple nameserver instances. (Copy /etc/init.d/pdns to /etc/init.d/pdns-[name]. The script automatically parses $0 for "name" and reads /etc/pdns/pdns-[name].conf as its configuration file.)
    Coded in C++ by Norbert Sendetzky and others.
    http://www.powerdns.com/en/products.aspx
    Licence: GNU GPLv2.
  • PowerDNS Recursor(link) is a recursive nameserver. Has a programming interface for scripting in the Lua programming language. Pleasantly small and fast. Did not meaningfully randomise UDP source ports on outgoing recursive queries until March 2008, after Dan Kaminsky's private warnings about DNS security problems, at which time the authors added a strong random-number generator.
    Coded in C++ by Norbert Sendetzky and others.
    http://www.powerdns.com/en/products.aspx
    Licence: GNU GPLv2.
    In January 2010, PowerDNS Recursor (through v. 3.1.7.1) was discovered to be vulnerable to being buffer-overflowed by deliberately bad public DNS data or queries being aimed at it, leading to possible full system compromise, cache poisoning, and redirection of users to IPs controlled by attackers. This horrific bug was fixed as of v. 3.1.7.2, but is not a reassuring sign about PowerDNS Recursor's code quality.
  • rbldnsd (link) is a small, fast authoritative-only server for DNS blocklist information (and can also serve other types of zone data).
    Coded in C by Michael Tokarev.
    http://www.corpit.ru/mjt/rbldnsd.html
    Licence: GNU GPLv2 or later.
  • Technitium DNS Server (link) is a specialised forwarder with filtering ("ad blocking") optionally supporting DNS-over-TLS and DNS-over-HTTPS transports. Includes DHCPd, SOCKS5 proxy support, local authoritative stub zones.
    Coded in C# using .NET Standard 2.0. Runs on Linux using Mono Framework or .NET Core.
    https://technitium.com/dns/
    Licence: GNU GPLv3
  • Twisted Names (link) is an authoritative, caching forwarder, and recursive server, also functioning as a resolver library
    Coded in Python by Twisted Matrix Laboratories (Jp Calderone and others).
    http://twistedmatrix.com/trac/wiki/TwistedNames
    Licence: MIT/X.
  • Unbound (link) is a fast, small, modular caching, recursive server, from the same people (NLnet Labs) who produced the excellent NSD authoritative-only nameserver, with additional help from VeriSign, Inc. and Kirei. Unbound does not itself do authoritative service, but does do "stub-zones" (local data or AS112 zones). It is claimed to be fully RFC-compliant, including DNSSEC validation.
    Also of possible interest is Dnssec-Trigger, an add-on for Unbound running on an end-host (laptop or desktop computer), signaling Unbound to use DHCP-obtained forwarders for DNSSEC-capable nameservice of that has been probed and found accessible, or failing that to use Unbound's own AUTH queries, or failing that to notify the user and switch to unauthenticated DNS only. (As of 2016, this code is experimental.)
    Coded in C.
    http://unbound.net/
    Licence: BSD.
  • YADIFA (Yet Another DNS Implementation for All (link) is an authoritative server developed by the operators of the .eu TLD. Supports EDNS0, DNSSEC with NSEC and NSEC3. Includes a SQL back-end alongside an RFC 1035 ("BIND") zonefile back-end, and dynamic zone updates. Future versions are planned to include recursive service, caching, validation of zone data, split horizon, dynamic provisioning of new domains without restart, forwarding, and a DNSSEC signing service.
    Coded in C by EURid coders.
    http://www.yadifa.eu/
    Licence: 3-clause BSD.


Unmaintained open source packages:


(The July 2008 DNS security blowup made starkly obvious that it's in general dangerous to run poorly maintained DNS nameserver software. Some of the below-cited, unmaintained or apparently neglected codebases may be of interest for other reasons, e.g., adoption for revival & update by sufficiently interested coders.)
  • BIND8 (link) should be scrupulously avoided, for reasons cited above. (Some BIND8 code still lives on, in the DNS resolver library libresolv, shipped as part of GNU libc = glibc in typical Linux and BSD distributions. This is regrettable, but the occasional security failures in that codebase should not be attributed to BIND9. Note that the BIND8-derived 'stub resolver' in glibc does not enable EDNS0 in its queries.)
    Licence: Simple permissive licence with warranty disclaimer.
    Note that it is possible via NSS calls (and /etc/nsswitch.conf configuration) to call the BIND9-derived lwresd lightweight recursive daemon (entry about which, please see, below), instead of the legacy BIND8-based code furnished with glibc.
  • CustomDNS (link) was/is an authoritative-only daemon, based on dnsjava, for both static addresses and its variant form of dynamic DNS. Java and Perl code by Eric Kidd, based in part on Brian Wellington's dnsjava package. Unmaintained since July 2000.http://customdns.sourceforge.net/
    Licence: LGPL and MIT/X.
  • dents (link) was an authoritative, caching forwarder, and recursive server, fully supporting zone transfers, but is perennially unfinished, and is almost certainly dead, at this point. Coded in C by Johannes Erdfelt.http://sourceforge.net/projects/dents/
    Licence: GNU GPLv2 or later.
  • Eddieware Enhanced DNS Server (aka "lbdns") (link) was/is a load-balancing authoritative DNS server. Coded in Erlang by the Eddie Team. Unmaintained since 2003.http://eddie.sourceforge.net/lbdns.html
    Licence: Erlang Public Licence, a Swedish variant of MPL 1.0.
  • GnuDIP (link) was/is an authoritative-only server for Dynamic DNS (supporting the RFC 2136/3147 DNS Dynamic Update protocol) coded in Perl by Mike Machado, but only "minimally maintained" and needing a new primary maintainer, a/o 2003.http://gnudip2.sourceforge.net/gnudip-www/
    Licence: GNU GPLv2 or later.
  • lbnamed (link) was/is a authoritative-only daemon for static and dynamic information, with a load-balancing multi-machine architecture, written in Perl by Roland Schemers. Unmaintained since 2005: See replacement "Standard::DNSServer.http://www.stanford.edu/~riepel/lbnamed/
    Licence: Newer BSD licence.
  • lwresd (link) was/is a lightweight recursive[-resolver] daemon (thus the name) with caching, created by ISC (maintainers of BIND9) by stripping down the recursive and caching code in BIND9 and making it available separately (as a library). It is local-only, being capable only of listening for UDP-type port 921 DNS queries on IPv4 loopback address 127.0.0.1 (or one or more different address specified using "lwserver" lines in /etc/resolv.conf). It is also capable of handing off queries to separate nameservers listed via "nameserver" lines in /etc/resolv.conf, as forwarders, but, if there are none such, or if forwarding fails, falls back on its own internal recursive routines, starting with a built-in roster of root server hints. Configuration file, closely following BIND9's named.conf format, is /etc/lwresd.conf.
    Because lwresd returns queried values in its own format ("lightweight resolver protocol"), Linux systems will need to also install library nss_lwres, which unfortunately currently (2008) has been unmaintained since 2001 at upstream location ftp://sources.redhat.com/pub/glibc/old-releases/. That "glue" library being present, in turn, permits modifying /etc/nsswitch.conf to call a "lwres" routine (when available) in place of the legacy BIND8-based "dns" routine in glibc. Suggested format for /etc/nsswitch.conf is: "hosts: files lwres [NOTFOUND=return] dns"
    As of 2005, lwresd is said to be "stale code" that hasn't been touched in a year or two, doesn't respect DNS TTL, and has a few other issues. Upstream source code is available inside ISC's BIND9 package.
    http://www.isc.org/software/bind/
    Licence: Simple permissive licence with warranty disclaimer.
  • moodns (link) was meant to be a authoritative and recursive server, but never passed alpha state. Discontinued. Coded in C by Michael Wolf.http://sourceforge.net/projects/moodns/ and http://www.maradns.org/download/non-maradns/
    Licence: Newer BSD licence, GNU GPLv2 or later.
  • MyDNS (link) was/is a MySQL or PostgreSQL-based authoritative and caching forwarder server (no recursive service -- iterative queries only) suitable for very large sites. In such roles, it's faster and more responsive than BIND9, even though the latter uses a RAM-based cache. Unmaintained since 2006, so interested parties should probably look at MyDNS-NG or PowerDNS, instead. Coded in C by Dan Moore. http://mydns.bboy.net/
    Licence: GPLv2 or later.
  • Oak DNS Server (link) was/is an authoritative and recursive server, supporting dynamic DNS updates and AAAA records. Doesn't need to run privileged. Development release as of August 2008 is still being [re-]written to take advantage of the dnspython libraries, and still lacks recursive service or update support. Coded in Python by Ed Stoner.http://www.maradns.org/download/non-maradns/ (Gone from http://www.digitallumber.com/oak .)
    Licence: GNU LGPL.
  • Pliant DNS Server (link) was/is an authoritative and caching forwarder server (no recursive service -- iterative queries only). Written in the Pliant language by Hubert Tonneau. Seems to be unmaintained.http://fullpliant.org/pliant/protocol/dns/
    Licence: GNU GPLv2.
  • Posadis (link) was/is a fast authoritative, caching server, written in C++ by Meilof Veeningen. Sadly unmaintained since 2004.http://posadis.sourceforge.net/http://www.posadis.org/
    Licence: GNU GPLv2 or later.
  • SDNS (Secure DNS) (link) was/is an authoritative-only server, created for the US Federal government (and thus genuinely public domain) by Anthony Carathimas, Eric Thomas, Fred Cohen, and Darrian Hale at Sandia Labs in the 1990s, with the specific aim of high security. Last maintained, 2001.http://www.maradns.org/download/non-maradns/sdns.tar.bz2
    Licence: Actual, real public domain.
  • Stanford::DNSserver (link) was/is lbnamed (see separate entry), reworked and packaged as a Perl module by Rob Riepel and others. Last maintained April 2006.http://www.stanford.edu/~riepel/lbnamed/Stanford-DNSserver/
    Licence: Newer BSD licence.
  • Trick or Treat Daemon (ToTD) (link) was/is a small caching forwarder server, suitable for small networks and workstations. Coded in C by Feike W. Dillema and members of the WIDE Project.http://www.vermicelli.pasta.cs.uit.no/software/totd.html Last maintained August 2006.
    Licence: Simple permissive licence (Dillema's code) and older BSD licence (WIDE Project code).
  • Yaku-NS (formerly ENS) (link) was/is a small, fast authoritative, caching forwarder, fully supporting zone transfers, aimed at embedded use. Does internal chroot, and attempts to prevent stack-smashing. Coded in C by Salvatore Sanfilippo. Appears to be unmaintained.https://github.com/antirez/yaku-ns
    Licence: GNU GPLv2 or later.


Related software:


  • GNU adns (link) is a resolver library for C (and C++) programs, and a collection of useful resolver utilities, coded in C by Ian Jackson.http://www.chiark.greenend.org.uk/~ian/adns/
    Licence: GNU GPLv2 or later.
  • Ares (link) is an asynchronous resolver library in C by Greg Hudson.ftp://athena-dist.mit.edu/pub/ATHENA/ares/
    Licence: MIT/X.
  • BIND DLZ (BIND Dynamically Loadable Zones) (link) is a set of patches for BIND9 to make it use your choice of numerous back-end databases instead of flatfile RFC 1035 ("BIND") zonefiles, and reduce memory usage (since BIND9 no longer needs to load everything into RAM at once). Coded in C by Rob Butler.http://bind-dlz.sourceforge.net/
    Licence: Simple permissive licence with warranty disclaimer.
  • Constrict (link) is a Python library for access to information parsed from the libbind library provided by BIND8. Coded in Python by Jason Smith.http://www.oes.co.th/projects/Constrict
    Licence: GNU GPLv2.
  • dnsibs (link) is a daemon offering Perl/CPAN code (notably the Mail::SpamCannibal anti-spam tool and dbtarpit) access to DNS blocklist data stored in a BerkeleyDB database. (It apparently doesn't serve up normal sorts of DNS information, which is why I put it in the "related" category.) It's coded in C by Michael Robinton.
    http://www.spamcannibal.org/docs/dnsbls.html
    Licence: GNU GPLv2 or later.
  • dnspython (link) is a Python toolkit for programmatic access to DNS functions, by Bob Halley. http://www.dnspython.org/
    Licence: Simple permissive licence with attribution requirement and warranty disclaimer.
  • FireDNS (link) is a resolver library with emphasis on speed and asynchronous processing. Has low-timeout blocking functions. Can be used to replace standard libc resolver library functions like getbyhostname with much faster equivalent code. Written in C by Ian Gulliver.http://firestuff.org/projects/firedns/
    Licence: GNU GPLv2.
  • LDAP sdb (link) is a patch to enable BIND9 to reach an LDAP back-end database instead of flatfile RFC 1035 ("BIND") zonefiles, using the simplified database interface "sdb". Coded in C by Stig Venaas.http://www.venaas.no/ldap/bind-sdb/
    Licence: Simple permissive licence with warranty disclaimer.
  • ldns (link) is a library for access to DNS/DNSSEC data, relying on CPAN's NET::DNS module. Written in C by NLnet Labs.
    http://www.nlnetlabs.nl/ldns/ Licence: Newer BSD licence.
  • nscd (link), name service caching daemon, is a local cache with no other nameserver functionality, providing caching of host, passwd, and group database data. The hosts data caches both positive and negative results data, in separate caches. nscd is furnished as part of the glibc codebase, and is a reimplementation of an idea first provided in Sun Solaris. It is needed primarily on hosts using slow authentication services such as NIS, NIS+, and LDAP. The glibc/Linux implmentation is notorious for being a bit buggy. Licence: GNU GPLv2.
  • Net::DNS (link) is a resolver library, coded in Perl by Michael Fuhr, Olaf Kolkman, and Chris Reinhardt.http://www.net-dns.org/
    Licence: GNU GPLv2 or later, or Artistic Licence.
  • Poslib (link) is a resolver library and authoritative-server library in C++ by Meilof Veeningen.http://posadis.sourceforge.net/poslib/
    Licence: GNU GPLv2 or later.
  • Resolvconf (link) is a client- (resolver-) side utility to mediate write access to the DNS client's /etc/resolv.conf file, keeping track of nameservers listed there and preventing multiple packages (DHCP clients, system-local nameservers, other) updating that file from interfering with each other. For it to work, software touching /etc/resolv.conf must be Resolvconf-aware. At this writing (2009-08), most but not all such software is Resolvconf-aware. There are two implementations: Original/Debian Resolvconf, http://packages.qa.debian.org/r/resolvconf.html coded in C by Thomas Hood; and Openresolv, http://roy.marples.name/projects/openresolv, coded in C by Ray Marples.
    Licence: GPLv2 (Hood's).
    Licence: BSD Licence (Marples's)
  • skadns (link) is a small, asynchronous resolver library, coded in C by Laurent Bercot.http://www.skarnet.org/software/skadns/
    Licence: Original BSD licence with advertising clause.
  • systemd-resolved (link), one of the constituent binaries in systemd, has included a caching stub resolver routine since August 2014. GNU LGPLv2.1 or later.
  • unscd (link), micro name service caching daemon, is a local cache with no other nameserver functionality, providing caching of host, passwd, and group database data. The hosts data caches both positive and negative results data, in separate caches. unscd is a from-scratch reimplmentation by Denys Vlasenko of the design of glibc's nscd, with the aim of avoiding nscd's bugs and offering more crashproof operation by running a threaded process that offloads NSS lookups to child worker processes. It is needed primarily on hosts using slow authentication services such as NIS, NIS+, and LDAP.
    Licence: GNU GPLv2.
--
Cheers,                                Before enlightenment, caffeine.
Rick Moen After enlightenment, caffeine.
rick@linuxmafia.com



Proprietary software:





See also:
To do:
http://www.corpit.ru/mjt/udns.html

http://daniel.haxx.se/projects/c-ares/ c-ares by by Daniel Stenberg and
others (derived from ares library written by Greg Hudson at MIT.
Asyncrhonous. See notes on http://www.corpit.ru/mjt/udns.html about it
and adns.

Notes about libresolv at https://lwn.net/Articles/665055/ .

ldns https://www.nlnetlabs.nl/projects/ldns/

systemd-resolved.service stub resolver, etc.

https://github.com/coredns/coredns

More at https://packages.gentoo.org/categories/net-dns 
 
from http://linuxmafia.com/faq/Network_Other/dns-servers.html
---------
 
djbdns

Other DNS software

Management tools

twalets authorized browsers edit the tinydnsdata file. ldap2dnsconverts an LDAP DNS database to a tinydnsdata file. tinyadminis a graphical interface to the LDAP DNS database used by ldap2dns.
mkdnsconverts a MySQL DNS database to a tinydnsdata file. It lets authorized browsers edit the MySQL DNS database.
sql2tinydnsis similar to mkdns.
dhcp_dnswatches dhcpd for new DHCP address assignments, and publishes those addresses through tinydns.
tinydyndnspublishes dynamic IP addresses authenticated through POP connections.

Servers

ldapdnspublishes DNS information from an LDAP database. MyDNSpublishes DNS information from a MySQL database.
Posadispublishes DNS information from BIND-style zone files. Security history: Buffer overflow, allowing attackers around the Internet to take control of the server; fixed in m5pre2 (2002.03.30). Someone announced an exploitable buffer overflow in m5pre2 a few weeks later; the history here isn't clear from the Posadis web pages.
NSDpublishes DNS information from BIND-style zone files. Security history: Unclear. The NSD documentation includes bugs like ``Very strange coredump in hash_destroy() that happens sometimes'' without any analysis of their security impact. Is that an exploitable buffer overflow?
PowerDNSpublishes DNS information from MySQL databases, PostgreSQL databases, Oracle databases, IBM databases, LDAP databases, or BIND-style zone files. Security history: Unclear, like the NSD security history.
MaraDNSis a general-purpose DNS server.
lbnamedis a load-balancing DNS server.
lbdnsis another load-balancing DNS server.
Oak DNS Serveris a good example of why novices shouldn't try to write DNS software. The digitallumber.net domain, served by Oak DNS Server 1.0, is inaccessible to a huge number of clients that try AAAA lookups before A lookups: the server incorrectly returns NXDOMAIN for AAAA, effectively wiping out its own A record.

Caches

pdnsd is a DNS cache. Security history: Remotely exploitable buffer overflow; fixed in 1.1.7a (2002.01.18). MaraDNS can act as a cache.
I don't know why anyone would want to use these caches in place of dnscache.

DNS clients

adnsis a DNS client library. aresis a DNS client library.
perldnsis a DNS client library for Perl.

The Buggy Internet Name Daemon

BIND is a monolithic server/cache; it also includes a client library, libresolv. Security history: IQUERY buffer overflow in BIND before 8.1.2-T3B (1998); NXT buffer overflow in BIND before 8.2.2-P4 (1999); nslookupcomplain buffer overflow in BIND before 4.9.8 (2001); TSIG buffer overflow in BIND before 8.2.3 (2001); CNAME buffer overflow in libresolvbefore 4.9.9/8.2.6/8.3.3/9.2.2 (2002); SIG buffer overflow in BIND before 4.9.11/8.3.4 (2002); getnetbyname buffer overflow in libresolv before 4.9.11 (2002). All of these allowed attackers around the Internet to seize control of the program.

from http://cr.yp.to/djbdns/other.html 

年代向錢看 習近平是天下第一貪!表弟齊明洗錢被逮! 川普/龐皮歐天天盯中國、香港!香港是中共貪官洗錢第一站!

中共最怕的事情来了 港府分裂已经公开化

香港的"乱"会让北京骑虎难下吗?

$
0
0
长平
十多年前,我在香港出席一些讲座和沙龙,或者通过在报纸上发表文章,提醒香港人"一国两制"本质上就是一个骗局。这不仅因为我了解"一国两制"曾经在西藏试验过,对台湾提出过,国内也大规模搞过"村民自治",均以失败告终;而且因为我知道,从根本上说,民主与专制势同水火,"一国"岂容"两制"?还因为,我无法忘记李鹏"5.19"讲话时的那张脸,它宣示着这个政权将会不顾一切地维持权力,当"一国"和"两制"发生冲突的时候,必然毫不犹豫地放弃承诺。
六四镇压让中共在国际社会声名狼藉,在国内更是千夫所指,但是跟中共历史上犯下的所有罪孽一样,它也成为其维持统治的正面资源,那就是它的宣传机器常常挂在嘴边的"什么样的风浪没有经过,什么样的阵势没见过",意思是说在它70年的统治中,饿死了几千万人,打死了几百万人,把坦克开上天安门广场镇压示威民众,那又怎样了呢?它并没有受到正义的审判,反而在鲜血浸透的土地上发展壮大,今天开始公开嘲笑人类的自由民主理想。
总是听见人们说,"梁振英给中央添乱"、"林郑让北京骑虎难下"、"习近平错过了走向民主的机会"……这些都是基于错误的前提假设,以为中央想要维持"一国两制",以为北京在乎国际形象或政治伦理,以为习近平的目标是让中国走向民主。六四镇压是中共作为杀人者又一次巅峰冒险体验,至少到目前为止它认为自己赢了,而且利加利,利打利,利滚利,越赚越多。二十年前,邓小平、杨尚昆等"六四屠夫"去世时悼词中遮遮掩掩所称的"政治风波",到李鹏讣告里又恢复成了"反革命暴乱"。在这种稳赚不赔的杀人生意面前,香港那点"乱"怎么会让北京骑虎难下?不信你再回头去看看李鹏"5.19"讲话时的那张脸?
十年前我的那些意见让很多香港民主人士感到不适,因为他们的目标是让北京兑现"一国两制"的承诺。有些人主张为此可以放弃支持内地的民主运动,以求中央放心,"井水不犯河水"。事实上,相安无事并不是北京追求的目标。"中央"比谁都清楚,并不存在和平共处的"一国两制"这回事,"不是东风压倒西风,便是西风压倒东风",控制一切是强大的专制政权的本质需求。要么和中国内地人一起推进整个国家的政治民主,要么谋求香港独立,这是很多香港人到今天也不愿意直面的现实选择,尽管越来越多的人明白"一国两制"已死。
对抗议者实施暴力袭击还不是元朗事件的全部意义
证明1+1=2在数学上很有意义。媒体和个人都应该对元朗事件深入调查,呈现真相。民间社会也应该促进香港警方和政府专项调查,公布事实。但是,对于社会公众来说,1+1=2不证自明。如果有一只动物,看起来像鸭子,叫起来像鸭子,走起来也像鸭子,那它无疑就是一只鸭子。元朗事件亲历者感受是警黑勾结,现场视频看起来是警黑勾结,逻辑推理的结论也只能是警黑勾结,那么它就是警黑勾结。
观看视频02:09

香港“最黑暗的一夜”

官方不作为不给出所谓权威结论,这本身就是专制政权的一个陷阱。直到今天,很多人对六四的辩护都是"谁也不知道死了多少人","没有权威结论",所以你就不称之为屠杀;谁都知道人权律师被警方绑架失踪了,但是在官方正式承认之前,媒体报道也只能说"家属声称"、"据传",听起来只是道听途说似的;那些本来就不想惹麻烦的媒体,正好有个"专业"借口不予报道--没有来自当事双方的平衡意见,不能仅仅报道一家之言。于是专制政权如鱼得水,为所欲为。
因此,对抗议者实施暴力袭击还不是元朗事件的全部意义。更重要的是,通过这种场景可以传递是非可以混淆,黑白可以颠倒,警匪可以勾结,天理可以埋没,邪恶可以嚣张的绝望感。这也正是中共长期在中国内地成功灌输的价值观。

未普:从三门峡到三峡,中共没有进步

$
0
0
50年代强行上马、以失败告终的三门峡工程,再次进入人们的视野。

三门峡工程是中国政府上世纪50年代在黄河中上游修建的第一座大型水利工程,由苏联专家设计。三峡工程是上世纪90年代在长江上游修建的大坝。两个工程前后相隔近40年,从毛泽东、邓小平到江泽民,跨越了几个不同的中共执政时代。虽然中国国力今非昔比,中共统治从无产阶级专政时代进化到威权时代,中国经济从中央计划为主到市场调节为主有了长足的进步,但中国政府在大型水利工程上的决策体制没有进步,在压制不同声音、迫害异己方面,依然一意孤行。仔细梳理这两项工程的前因与后果,令人不由地为他们的相似性而感慨。

第一个相似性,三门峡工程和三峡工程都是政治工程。50年代初,毛泽东对三门峡工程上马与否曾屡次犹豫不决,但架不住「圣人出,黄河清」的蛊惑,想在自己手里实现这一美梦。1955年7月,全国人大会议上将三门峡水库的修建上升到了政治高度,提出「黄河清,圣人出。圣人出而天下治」。这几乎扼杀了所有反对声音。

至于三峡工程,邓小平于1986年5月在中央政治局常委会议上说得非常直白,「上三峡工程有政治问题,不上三峡工程政治问题会更大,」只要技术和经济问题能够得到解决就应该上。他说:「轻易否定搞三峡工程不好。」九十年代执政的江泽民为了巩固自己的中共总书记地位,竟拿三峡工程与李鹏做政治交易,李鹏当总书记不成,却获得了堂而皇之地以三峡工程为自己家族谋私利的巨大机会。

第二个相似性,两个项目均以政治工程迫害科学良知,压制不同意见。黄万里先生是三门峡工程最后的反对者,他以知识分子的良知和科学精神舌战群儒长达七天,苦口婆心地告诫,万万不可在中国的命脉大河筑高坝,却拦不住三门峡工程的上马。他写的《花丛小语》于1957年6月19日在清华大学校刊上发表,毛泽东看过后非常不满,认为他把国内形势描绘成春寒料峭,雨声凄切,静悄悄,微言绝,「这是甚么话?」紧跟著,《人民日报》以「甚么话」为标题展开了对黄万里的批判,黄万里的右派命运就此被注定。《中国水利》1957年9月号配合全国反右大批判,出了批黄专号,专门批评黄万里的治黄主张,指责黄万里反对三门峡工程是反对共产党领导,「鼓吹外行不能领导内行」,企图「取消党对科学技术的领导」。

这顶右派帽子,黄万里一戴就是20馀年。他后来虽然被摘掉了帽子,但邓小平和江泽民时代,他却继续被以另一种形式迫害。黄河三门峡工程的失败证明了黄万里的观点和理论是正确的,黄万里应该参与长江三峡工程可行性论证。但邓江时代的官僚体系把黄万里排除在三峡工程的可行性论证之外;不准他带研究生,不准他出书,甚至在校庆期间,清华校友追思黄万里的集会,也被迫取消。

第三,在中共的政治工程中,大批中国知识分子选择对党忠诚,听党的话,放弃真理,成为「歌德派」和「但丁派」。这些人是黄万里最不屑与之为伍的。黄曾问:为甚么在1957年三门峡工程讨论会上,除了他外无人敢说真话?「请问,国家养士多年,这是为甚么?」他批评这些「歌德、但丁派」为了对领导说好听的话,竭力靠拢组织,竟不惜舍弃自己认识到的真理。

这些无骨者在三门峡项目上,一边倒地选择支持苏联专家「高坝、大库、蓄水、拦沙」的方案。等到三门峡造成的灾害成为现实,他们又摇身一变称自己是当初反对三门峡上马的英雄。钱正英和张光斗就是这方面典型的例子。由于他们听党的话,党信任他们,重用他们,因此不断地给他们以甜头,诱使他们对党更忠诚。1986年钱正英出任长江三峡论证领导小组组长,张光斗担任特邀顾问,而当时的黄万里正被清华大学冷冻。

从三门峡工程到三峡工程的决策体制看,中共依然政治挂帅,依然迫害良知,依然顺我者昌、逆我者亡。

一个基于go的http代理服务器程序:http-proxy

$
0
0
A very simple http proxy example wrote in Golang.

from https://github.com/LauTrond/http-proxy
-----

我的补充说明:
在linux vps上。先搭建go环境。然后,
cd $GOPATH
go get -u -v github.com/LauTrond/http-proxy

(在$GOPATH/bin/里面就会生成可执行文件http-proxy)

/root/go/gopath/bin/http-proxy -listen 127.0.0.1:7080

意思是仅允许vps上的程序连接7080端口。

nano /etc/systemd/system/http-proxy.service
内容如下:
[Unit]
After=network.target

[Service]
ExecStart=/root/go/gopath/bin/http-proxy -listen 127.0.0.1:7080
Restart=always

[Install]

WantedBy=multi-user.target

然后,
systemctl start http-proxy
systemctl enable http-proxy

这个http-proxy可用做各类tunnel程序的后端。比如kcptun的后端:

快速找到应用软件Hosts的方法

$
0
0
对于本地应用软件(例如Dropbox),如何快速找到其可用Hosts呢,今天我就介绍一下通用的快速找到本地应用软件可用Hosts的方法。
  基本思路是,通过Sniffer嗅探器来监控本地应用的网络连接情况,然后整理其访问域名,找到这些域名的真实IP,将这些IP添加到Hosts文件即可。
  我使用的是一个名为DNSQuerySniffer的嗅探工具,该工具能够实时显示本地电脑的DNS查询记录,对于每一个DNS解析查询,显示以下信息:主机名,端口号,查询ID,请求类型,请求响应时间,响应代码等记录,并返回的DNS记录的内容。
  以Dropbox软件为例,先关闭其他没用的客户端软件,打开DNSQuerySniffer,然后运行Dropbox,记录下其访问过的域名。使用一个Ping工具找出这个域名对应的ip地址。
  找到可用IP后,就可以添加这个IP到Hosts文件里了,先关闭“电脑管家”、“360安全卫士”这类工具,然后编辑C:\Windows\System32\drivers\etc\hosts文件,在文件结尾添加一行“可用IP地址 目标域名”即可。
  之后如果“电脑管家”、“360安全卫士”等工具检测hosts文件提供风险,只需信任这个文件并将其添加到白名单即可。
  域名添加到Hosts文件中,DNSQuerySniffer就不会再检测到该域名的解析,然后继续运行Sniffer嗅探器和应用软件,一个一个找出所有的无效域名,然后手动将每个域名都添加到Hosts文件即可。
  此方法是通用的寻找本地应用软件可用Hosts的方法,适合所有本地应用软件域名解析错误导致无法运行等问题。
用到的工具:
------------
DNSQuerySniffer:
网络嗅探工具,能够实时显示本地电脑的DNS查询记录。对于每一个DNS解析查询,显示以下信息:主机名,端口号,查询ID,请求类型,请求响应时间,响应代码等记录,并返回的DNS记录的内容。还可以将DNS查询信息输出到CSV等文件。
用它我们可以找到本地应用的Hosts,简直是 Firefox中的ipvfox,Chrome中的ipvfoo 的高级版。话说我就是靠ipvfoo找到百度网盘的ipv6地址,从此开启了一篇好贴,拯救了多少校园网按流量计价的少年(天哪我现在讲话怎么是这种风格)。
如月光博客所说,我们只要使用这个工具,记录下网站或本地应用访问过的、但被DNS污染的域名,再使用一个Ping工具找出这些域名对应的可用IP后,就可以添加这个IP到Hosts文件里了。域名添加到Hosts文件后,DNSQuerySniffer就不会再检测该域名的解析。

open source projects

$
0
0
the following is the list of open source projects which has Chinese companies as active supportors.
Notable Open Source projects started by Chinese:
This list is incomplete, I hope one day there will be a Chinese company out reach even more open source communities like Redhat

基于python的TCP 层的路由-TcpRoute

$
0
0

TcpRoute, TCP 层的路由器。对于 TCP 连接自动从多个线路(允许任意嵌套)、多个域名解析结果中选择最优线路。
通过 socks5 代理服务器提供服务。目前支持直连及 socks5 代理线路。
已经使用 go 重写,地址:https://github.com/GameXG/TcpRoute2/

windows 安装

有二进制文件发布,直接下载 dist/tcpRoute.exe 、dist/config 修改配置并执行即可。

linux 安装

$ sudo pip install greenlet gevent dnspython
$ vi config.json #修改配置
$ python tcpRoute.py

配置

config.json 为配置文件,json格式。
{
"log_level":"INDO",
"port":7070,
"nameservers":"system",
"nameservers_backup":["8.8.8.8","8.8.4.4","208.67.222.222","208.67.220.220"],
"upstream":
{
"type":"multipath",
"list":
[
{
"type":"direct",
"source_ip":"0.0.0.0",
"source_port":0
},
{
"type":"socks5",
"host":"127.0.0.1",
"port":5555,
"upstream":
{
"type":"direct",
"source_ip":"0.0.0.0",
"source_port":0
}
}
]
},
"IpBlacklist":[]
}
"logLevel":"INDO", 为日志级别。一般 INFO 即可,调试时可以使用 DEBUG 。
port 为对外提供代理服务的端口。目前只支持 socks5 无密码 协议。浏览器等代理服务器填写 127.0.0.1 ,端口填写这个端口号,协议选择 socks5 即可。
nameservers 、nameservers_backup 为DNS解析服务器地址,在 nameservers 解析出错时会启用 nameserversBackup 解析。 支持过滤域名纠错,支持过滤部分DNS欺骗,在 nameservers 解析错误后会尝试 TCP DNS协议。
可选的格式:
  • "system"使用系统DNS解析
  • "8.8.8.8"使用 "8.8.8.8"解析
  • ["8.8.8.8","208.67.222.222"] 使用两个服务器进行解析
upstream 为使用上级代理。支持代理服务器嵌套,多代理自动选择等功能。
"type":"multipath", 类型表示本上层代理为多代理聚合,负载均衡策略为对每个连接自动选择最快的线路连接目标网站。"list"是上层代理服务器列表。
"type":"direct", 表示直连,可以指定源地址。在多线路(电信+联通)时可以通过指定多个源地址配合路由器实现自动选路。
"type":"socks5", 表示 socks5 代理,"host"、 "port"为上级代理的地址及端口。
TcpRoute multipath 聚合代理会同时尝试使用直连及所有的代理服务器建立连接,最终使用最快建立连接的线路。TcpRoute 会缓存检测结果方便下次使用。
IpBlacklist 为静态 ip 黑名单,黑名单上的ip不会用来建立连接(目前直连线路使用)。一般不需要配置,系统会自动检测异常ip并屏蔽。 格式为["123.123.123.123","456.456.456.456"]

具体细节

  • 对 DNS 解析获得的多个IP同时尝试连接,最终使用最快建立的连接。
  • 同时使用直连及代理建立连接,最终使用最快建立的连接。
  • 缓存10分钟上次检测到的最快线路方便以后使用。
  • 解析不存在域名获得域名纠错IP,并添加到 IP黑名单
  • 使用不存在DNS服务器解析域名,获得异常IP,并添加到 IP黑名单
  • 不使用异常的dns解析结果。

感谢


-----------------------------------------------

TcpRoute , TCP 层的路由器。对于 TCP 连接自动从多个线路(电信、联通、移动)、多个域名解析结果中选择最优线路。

TcpRoute2

Build Status release GitHub license platform
TcpRoute , TCP 层的路由器。对于 TCP 连接自动从多个线路(允许任意嵌套)、多个域名解析结果中选择最优线路。
TcpRoute 使用激进的选路策略,对 DNS 解析获得的多个IP同时尝试连接,同时使用多个线路进行连接,最终使用最快建立的连接。支持 TcpRoute 级别 Hosts 文件,支持黑白名单。提供代理、hosts 信誉度功能,只通过不安全的代理转发 https 等加密连接,提高安全性。当配合 redsocks、Proxifier 作为全局代理时可以启动“强制TcpRoute Dns解析”,强制将浏览器本地 DNS 解析改为代理服务器进行DNS解析来更好的优化网络连接,避免 Dns 污染造成的网络故障。
增加了反运营商 http 劫持功能,有两种方式,简易拆包反劫持及ttl反劫持。
通过 socks5 代理协议对外提供服务。
代理功能拆分成了独立的库,详细代理url格式及选项请参见 ProxyClient,目前支持直连、socks4、socks4a、socks5、http、https 等线路。其中 socks5 支持用户名、密码认证,http、https 支持用户名、密码基本认证。

安装

在 releases 有各个系统的 zip 包。根据系统下载对应的 zip 文件。解压后复制 config.toml.example 为 config.toml ,并根据 toml 内说明配置好上游代理即可。
Windows 下有图形界面,TcpRoute2-windows-gui-386.zip、TcpRoute2-windows-gui-amd64.zip 即带图形界面的版本。

配置

默认使用当前目录下的 config.toml 文件。
# TcpRoute2 配置文件
# https://github.com/GameXG/TcpRoute2
#为 TOML 格式,格式说明:https://segmentfault.com/a/1190000000477752

# TcpRoute 监听地址
#目前只对外提供 socks5 协议。
#
# addr = "127.0.0.1:7070"
#默认值,表示监听 127.0.0.1 的 7070 端口,仅本机使用 TcpRoute 时建议这样配置。
#将浏览器代理设置为 socks5 127.0.0.1:7070 即可使用 TcpRoute 代理访问网络。
#
# addr = ":7070"
#监听所有 ip 地址的 7070 端口,允许其他计算机使用 TcpRoute 访问网络时建议这样配置。
#将浏览器代理设置为 socks5 TcpRoute计算机IP:7070 即可使用 TcpRoute 代理访问网络。

addr="127.0.0.1:7070"


####################
#客户端dns解析纠正功能
####################
#当发现浏览器等客户端进行了本地dns解析时本功能将强制转换为 TcpRoute 进行dns解析。
#使用 redsocks、Proxifier 实现全局代理时,应用程序会进行本地dns解析,启用这个功能将强制为代理进行dns解析。
#开启这个功能将避免应用程序本地dns解析时无法避免 dns 污染的问题,同时代理负责DNS解析也能更好的优化网络访问。
#
# chrome 默认是远端dns解析,当不使用 redsocks、Proxifier 时不需要这个功能。
# firefox 很早之前默认是本地 dns 解析,不过可以修改为远端dns解析。目前是什么情况就不知道了。
#
# https 协议下 TcpRoute 是通过 SNI 功能来获得的目标网站域名。
#因为 WinXP 系统下 IE 所有版本都不支持 SNI 功能,所以 windows xp IE 下 https 强制远端解析功能无效。
#
#例子:
# PreHttpPorts=[80,]
# PreHttpsPorts=[443,]
#这个是默认值,对 80 端口的 http 请求启用,对 443 端口的 tls 连接启用。
#
# PreHttpPorts=[0,]
# PreHttpsPorts=[0,]
#关闭这个功能
#
#原理:
# TcpRoute 接收到目的地址是域名的请求将不执行“客户端dns解析纠正功能”,
#但当目的地址是 ip 时,将会读取客户端发出的请求,http 读取 hosts 字段获得域名,https 通过 SNI 功能获得域名。
#之后将目标网站ip替换为域名,再执行转发操作。


####################
#线路
####################
#
# TcpRoute 将根据一定的策略使用这里指定的线路(上游代理)将收到的请求请求转发出去。
#
#目前的策略是 TcpPing ,即同时使用多个线路建立连接,最终使用最快建立连接的线路处理请求。
#当某条线路访问某网站出现异常(响应超时、连接重置等)时将会被记录下来,下次访问同一网站时将跳过这个线路。
#允许通过黑白名单指定每个线路允许、拒绝访问指定的网站。
#
#目前上游代理支持 直连、http、https、socks4、socks4a、socks5 及 ss 协议,其中 http、https、socks5、ss 支持密码认证。
#注意:直连也必须手工指定,当不指定时将不会使用直连转发请求。
#
##########
#线路(上游代理)配置说明
##########
# [[UpStreams]]
#
# Name="direct"
#线路名字,主要是日志使用。默认值为 ProxyUrl 项的内容。
#
#
# ProxyUrl="direct://0.0.0.0:0000"
#线路(上游代理) URL
#提供代理的类型、地址、用户认证方式等信息。
#默认值为:"direct://0.0.0.0:0000"
#
#支持 直连、http、https、socks4、socks4a、socks5 等协议,其中 http、https、socks5等支持密码认证。
#允许多层嵌套代理。代理部分已经拆分成了独立的库,详细配置信息可以到 https://github.com/GameXG/ProxyClient 参看。
#
#可以通过参数指定一些特殊选项,例如,https 代理是否验证服务器 tls 证书。
#参数格式为:?参数名1=参数值1&参数名2=参数值2
#例如:https://123.123.123.123:8088?insecureskipverify=true
#全体协议可选参数: upProxy=http://145.2.1.3:8080 用于指定代理的上层代理,即代理嵌套。默认值:direct://0.0.0.0:0000
#
#支持的代理协议:
# http 代理 http://123.123.123.123:8088
#可选功能: 用户认证功能。格式:http://user:password@123.123.123:8080
#可选参数:standardheader=false true表示 CONNNET 请求包含标准的 Accept、Accept-Encoding、Accept-Language、User-Agent等头。默认值:false
#
# https 代理 https://123.123.123.123:8088
#可选功能: 用户认证功能,同 http 代理。
#可选参数:standardheader=false 同上 http 代理
#可选参数:insecureskipverify=false true表示跳过 https 证书验证。默认false。
#可选参数:domain=域名 指定https验证证书时使用的域名,默认为 host:port
#
# socks4 代理 socks4://123.123.123.123:5050
#注意:socks4 协议不支持远端 dns 解析
#
# socks4a 代理 socks4a://123.123.123.123:5050
#
# socks5 代理 socks5://123.123.123.123:5050
#可选功能:用户认证功能。支持无认证、用户名密码认证,格式同 http 代理。
#
#等代理
#
#直连 direct://0.0.0.0:0000
#可选参数: LocalAddr=0.0.0.0:0 表示tcp连接绑定的本地ip及端口,默认值 0.0.0.0:0。
#可选参数: SplitHttp=false true 表示拆分 http 请求(分多个tcp包发送),可以解决简单的运营商 http 劫持。默认值:false 。
#原理是:当发现目标地址为 80 端口,发送的内容包含 GET、POST、HTTP、HOST 等关键字时,会将关键字拆分到两个包在发送出去。
#注意: Web 防火墙类软件、设备可能会重组 HTTP 包,造成拆分无效。目前已知 ESET Smart Security 会造成这个功能无效,即使暂停防火墙也一样无效。
# G|ET /pa|th H|TTTP/1.0
# HO|ST:www.aa|dd.com
#可选参数: sleep=0 建立连接后延迟多少毫秒发送数据,配合 ttl 反劫持系统时建议设置为10置50。默认值 0 。
#
# DnsResolve=true
#是否执行本地dns解析,只建议直连、socks4 线路设置为 true 。
#设置为 true 时将由 TcpRoute 进行本地 DNS 解析,目前主要是同时使用本地操作系统dns解析及 TcpRoute hosts dns解析。
#解析获得多个IP时将会同时建立到多个ip的连接,最终使用最快建立连接的ip。
#设置为 false 时将由上游代理负责dns解析。建议 http、https、socks4a、socks5 等代理都设置为 false 。
#默认值 false
#
#
# Credit=0
#线路的信誉度
#代理线路不安全时建议使用这个选项。
#当信誉度低于 0 时将不会通过这个线路建立明文协议(http、ftp、stmp等)的连接。
#各协议需要的信誉度:https://github.com/GameXG/TcpRoute2/blob/master/netchan/dialchan_filter.go#L19
#默认值 0
#
#
# Sleep=80
#使用本线路前等待的时间(单位毫秒)
#主要目的是降低上游代理的负担。
#建议直连线路设置为 0 ,代理线路设置为 80(毫秒) 。
#国内 baidu、qq tcping一般是30ms,这里设置为80ms(0.08秒),
#可以使得大部分国内站点不会尝试通过代理访问,降低上游代理的负担。
# 0.08秒的延迟很低,并且建立连接后会缓存最快连接记录,不会再次延迟,所以不建议删除。
#当目标网站匹配域名白名单、黑名单,即手工指定线路时,Sleep 参数无效。
#默认值 0
#
#
# CorrectDelay=0
#修正延迟
#某协议缺陷,协议并不会报告是否连接到了目标网站,所以无法获得真实的建立到到目标网站的耗时。
#无法获得准确的到目标网站的耗时将使得 tcpping 策略无法准确的评估各个线路的速度,所以增加了这个选项用来手工修正。
# tcpping 策略评估最快建立连接的线路时会以 “建立连接的实际耗时 + CorrectDelay” 进行评估,选出最快建立连接的线路。
#
#
######
#域名白名单
######
#当前线路的域名白名单(线路级别),白名单内的域名将只从当前线路转发。
#当一个域名同时存在多个线路白名单内时,将会同时从多个线路尝试建立连接。
#单个线路可以配置多个白名单,每个白名单一个 [[UpStreams.Whitelist]] 即可。
#当不存在 [[UpStreams.Whitelist]] 项目时即表示不配置白名单。
#当目标网站匹配域名白名单、黑名单,即手工指定线路时,线路的 Sleep 参数无效。
#
# [[UpStreams.Whitelist]]
#
# Path="direct.txt"
#允许本地文件及 http 、https 白名单文件。
#本地路径是相对路径时,实际路径是相对于 config.toml 文件所在目录。TcpRoute 会检测 hosts 文件修改并自动重新载入。
# http、https 域名文件将按 UpdateInterval 间隔定时更新。
#不允许单个 [[UpStreams.Whitelist]] 下面出现多个 Path 指定多个白名单文件。
#多个白名单需要分别放到不同的 [[UpStreams.Whitelist]] 下面。
#默认值:必填
#
# Path="https://raw.githubusercontent.com/renzhn/MEOW/master/doc/sample-config/direct"
#感谢 renzhn MEOW 维护的境内网站白名单
#
# Path="https://raw.githubusercontent.com/GameXG/TcpRoute2/master/direct.txt"
#感谢 puteulanus 整理的 unblock youku 最小国内网站白名单。
#
#
# UpdateInterval="24h"
#网络 hosts 文件更新间隔
#最小有效值 1 分钟, 格式为:"1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
#下载失败时 UpdateInterval 不会生效,将等待 1 分钟重试。
#默认值: "24h"
#
#
# Type="suffix"
#域名类型
#指定域名文件的匹配类型
# base 完整匹配,默认值。即 www.abc.com 只匹配 www.abc.com ,不匹配 aaa.www.abc.com 。
# suffix 后缀匹配。即 abc.com 匹配 abc.com、www.abc.com、aaa.www.abc.com,不匹配 aaaabc.com。
#注意,想匹配 *.cn 的域名请直接使用 cn ,而不要使用 .cn ,程序内部会自动增加"."。
# pan 泛解析匹配。即 *.abc.com 匹配 www.abc.com 、aaa.www.abc.com。不匹配 .abc.com。?.abc.com 匹配 a.abc.com。
# regex 正则匹配。即 ^.+?.com$ 匹配 www.abc.com 、aaa.www.abc.com。注意:完整匹配时不要忘记 ^$ 。
#默认值:"base"
#
######
#域名黑名单
######
#同域名白名单
# [[UpStreams.Blacklist]]
#同白名单。
#
# Path="proxy.txt"
#
# Path="https://raw.githubusercontent.com/renzhn/MEOW/master/doc/sample-config/proxy"
#感谢 renzhn MEOW 维护的网站黑名单
#
# UpdateInterval="24h"
# Type="suffix"


#直连线路例子:
#注意:直连也必须手工指定,当不指定时将不会使用直连转发请求。
[[UpStreams]]
Name="direct"
ProxyUrl="direct://0.0.0.0:0000"
DnsResolve=true
# DnsResolve 表示是否执行本地dns解析,直连线路建议指定为 true。

#直连线路域名白名单
#各个线路的白名单、黑名单是独立的,可以通过多个 [[UpStreams.Whitelist]] 指定多个白名单。
[[UpStreams.Whitelist]]
Path="https://raw.githubusercontent.com/GameXG/TcpRoute2/master/direct.txt"
#感谢 puteulanus 整理的 unblock youku 最小国内网站白名单。
UpdateInterval="24h"
Type="suffix"

#代理线路例子:
[[UpStreams]]
Name="proxy1"
ProxyUrl="socks5://123.123.123.123:5050"
Credit=0
# Credit 表示代理信誉度,低于0的将不会通过当前线路转发明文协议(http、ftp等)的请求。
Sleep=80
# Sleep表示使用本线路前等待的时间,单位毫秒。
CorrectDelay=0
# CorrectDelay 表示当前线路修正延迟,某协议建议设置为 50-100 之间的值,非某协议代理设置为 0。


####################
# Hosts 功能
####################
#独立与操作系统的 hosts,只对于代理生效。
#允许通过多个 [[hosts]] 项来同时使用多个 hosts 文件 。
#
# [[Hosts]]
#
# Path="hosts/racaljk_hosts.txt"
# hosts 路径,同域名白名单,允许本地、http、https文件。
#默认值:必填
#
# Path="https://raw.githubusercontent.com/racaljk/hosts/master/hosts"
#感谢 https://github.com/racaljk/hosts 项目维护 hosts
#
#
# Type="base"
# hosts 域名类型,同域名白名单。标准的 hosts 文件都是 base 类型。
#默认值:"base"
#
#
# UpdateInterval="24h"
#网络 hosts 文件更新间隔
#最小有效值 1 分钟, 格式:"1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
#下载失败时 UpdateInterval 不会生效,将等待 1 分钟重试。
#默认值:"24h"
#
#
# Credit=-100
# hosts 信誉度
#同线路信誉信誉度,对于小于 0 的 hosts文件将只用于 https 等自带加密的协议。
#在某些情况下为了防止 http 明文协议分析阻断连接,建议设置为小于 0 的值。
#默认值:0

#一个例子
[[Hosts]]
Path="https://raw.githubusercontent.com/racaljk/hosts/master/hosts"
#感谢 https://github.com/racaljk/hosts 项目维护 hosts
Credit=-100

强制代理服务器 DNS 解析功能

redsocks、Proxifier 全局代理及部分应用会执行本地DNS解析,这样将无法很好的执行优化。启用这个功能后 TcpRoute2 将在发现客户端执行了本地 DNS 解析时强制改为代理服务器进行DNS解析来更好的优化网络连接。
解决了路由器通过 redsocks 配置成全局透明代理时无法应对dns污染的问题。
由于 https 协议是通过 SNI 功能来获得的目标网站域名,所以 WinXP 系统下 IE 所有版本都无法使用 https 强制远端解析功能。

信誉度功能

增加了代理信誉度、dns信誉度的功能,对于信誉度低的代理将只允许 https 、smtp ssl 等本身支持服务器认证的协议。这样使用不安全的代理也能比较安全。

Hosts 功能

增加了代理级别的 hosts 文件,支持本地及网络hosts文件。通过hosts即使在不存在上层代理的情况下也可以优化网络访问。hosts 文件同样也有信誉度功能。
感谢 https://github.com/racaljk/hosts 项目维护 hosts 。

白名单、黑名单功能

允许指定的域名走指定的线路,指定的域名不走指定的线路。 黑白名单是线路级别的,而不是全局的,每个线路都有自己的黑白名单。
感谢 https://github.com/renzhn/MEOW 维护了国内域名白名单。

防运营商 HTTP 劫持功能

拆包反劫持功能

通过拆分 http 请求到多个 tcp 包来实现简易http反劫持功能,只能应付简单的http劫持。 通过 SplitHttp 选项开启,默认关闭。 注意:部分杀毒软件、防火墙会重组 http 请求tcp包,造成这个功能无效。
基本不会造成性能损耗。
实现原理:当目标端口是80时,发出的请求一旦包含 GET、POST、HTTP、HOST则会被拆分到多个TCP包发送。

ttl 反劫持功能

ttl 反劫持是独立的程序,需要单独启动ttl反劫持程序,并将直连线路的 sleep 设置为10至50之间的值。
实现原理:当发现 http 连接建立时,将会发送错误数据、连接重置命令混淆http连接。通过设置 ttl 值使得错误数据、重置命令不会到达目标网站,只会在网络中传递,经过并干扰可能存在的http劫持系统。
sleep 的目的是建立连接后不立刻发送数据,而是等待 ttl 反劫持程序发送混淆内容后再发送实际数据。 一般ttl反劫持程序发送混淆数据的耗时为10-30毫秒,sleep设置为大于这个值即可。

具体细节

  • 对 DNS 解析获得的多个IP同时尝试连接,最终使用最快建立的连接。
  • 同时使用直连及代理建立连接(可设置延迟),最终使用最快建立的连接。
  • 缓存10分钟上次检测到的最快线路方便以后使用。
  • 解析不存在域名获得域名纠错IP,并添加到 IP黑名单。



当信息成为权力和利益争夺战的一部分时,真相消失,你我都只是被操纵的棋子罢了

$
0
0

我们生活在一个充满影响力的世界中,生活在由喧嚣的社交媒体构成的镜像之中,广告、软文、黑客、AI、伊斯兰国、普京、特朗普无不在控制我们对信息的关注和选择。在这种超现实氛围中,我们不仅失去了对和平与民主的控制,也让我们不知道真相为何物。

到底在哪里才可以看到对现实的客观看法?到底哪种叙述才更能接近真相?在社交媒体上,极端主义者压制了清晰报道的客观性和平衡性,这是一场看不见的信息战,一只看不见的手搜集了你的个人信息,挖掘出你的希望和恐惧,以此谋取最大的政治利益。

在俄罗斯,本书作者Peter Pomerantsev观察到俄罗斯媒体如何被操纵,不断制造出普京的领袖光环,“阴谋论取代了意识形态,对话坍塌成相互指责,每一个论点都只是信息战的一环。”而在英美,剑桥分析公司挖掘社交媒体上的数据,利用在线“行为动力学”的研究如何助推民粹主义,影响选举。

Pomerantsev的父亲是乌克兰诗人和小说家,在20世纪70年代被克格勃逮捕,因为他传播了“有害文学”并最终被流放到伦敦,母亲曾分享她丈夫勇敢的言论自由活动,随后制作了有关苏联警察国家遗产的纪录片。而在看似信息自由流动的今日,这种真实、勇敢的声音却越发难以听见。

没有一个人能够豁免于某一种特定的观点,我们每个人都被自身的处境所塑造,这并不能使世界上所有关于事实的版本都同样可信,或许我们更应该提防自身的弱点,努力在这个令人迷失的信息时代,去寻找真相。

·缅甸即使有民主,它也未必是自由的

那是2012年末,一个缅甸朋友告诉我,她的偶像是昂山素季。当时的缅甸正处于新旧交替的历史节点之上。三年后,昂山素季通过缅甸久违的大选取得执政权,但这位曾经为缅甸民主化做出过杰出贡献的诺贝尔和平奖得主与执政者不久后却坐视罗兴亚人种族清洗而不加干预。

我不知道那个朋友后来是否改变了她对昂山素季的看法,但香港岭南大学的Roman David与香港大学的Ian Holliday则用《缅甸自由主义与民主》一书提供了他们的观察与思考。本书从19世纪殖民时期开始讲起,运用历时四年收集的大量田野资料,包括深度访谈与调查,结合各种法律文本与报告,系统梳理了缅甸的政治史和政治构成。本书认为,缅甸即使有民主,它也不是自由的,甚至可能因此引致不自由,并得出有限自由主义这一结论。

·有钱真的可以为所欲为,乃至收买正义本身吗?

2005年,亿万富翁Jeffrey Epstein被指控与年仅14岁的少女发生性行为,随后警方对Jeffrey Epstein进行了长达近一年的调查,一个牵涉诸多权贵名流的未成年少女性侵网络浮出水面。然而面对刑事指控,Jeffrey Epstein运用他的广泛的资源成功逃脱重罚。

在这本Filthy Rich中,三名作者综合了媒体报导、调查与庭审记录、相关人员访谈,从Jeffrey Epstein的童年开始挖掘,试图理解此人如何发迹,如何组织少女性交易网络,以及为什么警方调查需要花那么多时间,以及爱泼斯坦的量刑为什么这么轻。但更重要的是,通过Jeffrey Epstein其人的事例,本书揭开了更多值得深思的问题,包括强奸文化,包括权贵在法律面前的特权。

本月初,Jeffrey Epstein再次因同样的罪名被捕。

近年来,无神论变得越来越有影响力,并被更多人接受,无神论者对自身的主张越来越自信:他们认为普遍人权的确立不需要以宗教为基础,而现代科学有力地反驳了上帝的存在,没有人生来就一定会信仰宗教。

在这本书中,Christian Smith列举出一系列证据,并解释了为什么我们应该对这些无神论者关于道德、科学和人性的主张持怀疑态度。他并不认为无神论必然是错误的,而是它的倡导者正在推进既不合理也不现实的主张。他们坚定的世界观提供了无益的论据,并促成了当今政治格局的日益两极分化。每个参与有神论无神论辩论的人,在共同的道德反思中,都应该致力于谨慎的推理和严谨的批判。我们需要更多地了解无神论,并评估它对现实社会的意义。

·“印度有泰姬陵,伯克利有Moe's Books。”

Moe's Books是一家书店,Moe Moskowitz在1959年与妻子开办了这家店,现在这家店由他们的女儿在经营,它被称为是美国最好的书店之一。书店的四个楼层中20多万本新书和二手书被放在一起,其中包括中世纪研究和哲学等学术主题。

在20世纪60年代,Moe's books也是反战等示威活动的背景,甚至有一张海报,上面有一名抗议者在被催泪瓦斯包围的同时反击,而这就发生在Moe's books的门口。

书店的创始人Moe Moskowitz不仅销售激进的书籍,他本人也非常有趣,在一篇报纸文章中被称为“秃顶的知识分子”后,他创立了一个“捍卫秃顶知识分子协会”;因为喜欢百吉饼而创办了百吉饼协会,并把这种美食带入了伯克利;他帮助资助了伯克利的迷幻乐队,在著名的伍德斯托克音乐节上,这支的乐队表演了抗议越战的歌曲。

Moe Moskowitz虽然已经去世,但Moe's books现在仍然继续营业,有机会去伯克利,不妨一游,肯定不会让爱书人失望。

《1984》的预言已经照进现实,立足于当下时代的Empty Hearts似乎预见到更离奇的未来。这部反乌托邦作品来自德国著名的当代小说家Juli Zeh。故事就发生在短短几年后,整个世界都好像摇摇欲坠:川普下台,英法相继脱欧,全球范围的金融危机、武装冲突、移民潮和民粹主义运动此起彼伏,民主政治面临被摧毁的危机,许多人不是陷入沮丧和忧郁,就是转而对周遭发生的事视而不见,只专注于个人的生活。

身为妻子、母亲Britta,同时也是一名成功的商人,她不再思考每日新闻具有什么意义,将注意力都放在家人和自己的事业上。而她的事业,是经营一间专门防治自杀的诊所。然而这个看似完全合法正当的诊所,与获利丰厚的企业The Bridge,有着不可言说的关联。Britta表面上经营诊所,实际上运用由她的员工、程序设计师Babak所设计的复杂算法,深入挖掘网络信息,辨识出具有自杀倾向的“候选人”,经过筛选后,将名单引荐给任何需要自杀炸弹客执行攻击的组织,以获取报酬。运用算法,他们得以减少附带伤害、避免临阵胆怯的炸弹客,秘密企业The Bridge,也因此有效地控制了整个市场,恐怖攻击自此几乎不可能不靠The Bridge发生。这也是为什么,当两名身穿炸弹背心的不知名男子,在莱比锡机场被捕,会让布丽塔如此惊愕。那不是由巴巴克的算法所招募的候选人。接着,The Bridge的数据库遭窃、一名诊所员工被谋杀,促使布丽塔和巴巴克躲藏起来、隐匿行踪。而紧跟在他们之后的,是一个全新型态的恐怖组织:Empty Hearts……


·神圣美国?圣经与“独立宣言”的核心原则其实是相互矛盾的

当今美国的政治气候充满争议,这使得我们更有必要追根溯源,重新思考美国政治的根基究竟是什么?一般认为,宗教在美国政治运作中的作用向来重要。基督教民族主义者断言,我们的国家建立在犹太 - 基督教原则的基础上,并提倡将行动建立在这一流行的历史主张之上。但这种信念真的可靠吗?

本书作者是自由宗教基金会的宪法律师安德鲁·塞德尔(Andrew L. Seidel),他试图反思美国的立国之本与宗教之间的关系。书中他将十诫与宪法相比较,并将圣经教义与美国的创始哲学进行对比,以此论证圣经与“独立宣言”的核心原则其实是相互矛盾的。作者通过研究认为,美国并非建立在圣经之上,而且基督教民族主义实际上也不那么“美国”。

·当今美国激进青年群像

自2016年美国大选以来,大学校园爆发了暴力抗议活动,他们要求更加安全的校园空间,也对那些较为激进的组织所不赞成的观点保持了沉默。谁是这些抗议背后的领导者,他们想要什么?在本书中,自由主义记者Robby Soave试图通过对年轻激进分子的描绘来回答这些问题。

在特朗普时代,千禧一代的激进主义已经上升到新的高度。对此,本书作者可能并不认同他们的动机和目标,但他尊重他们的想法并提出了合理的质疑。我们将在书中看到当今激进青年的概貌,这将吸引自由主义者,保守派,中间派自由主义者,以及任何因为以社会正义的名义践踏言论自由和正当程序而感到震惊的人。

金门战役:解密中共9000官兵全军覆没的真相

$
0
0
金门位于厦门以东,距大陆最近处约5.5 海里。大金门岛面积为124平方公里,金门县城位于该岛西部。小金门岛面积为15平方公里。此外,尚有大担、二担等几个小岛。大金门东部山高岸陡,不易攀登;西半部地势较平坦,其北岸为泥沙滩,利于登陆,是国民党军的防守重点。岛上除少数要塞工事外,在登陆地段还加修了野战工事,敷设了障碍物。
大小金门原有国民党军李良荣第二十二兵团全部、青年军第二○一师及第十二兵团第一一八师防守,共约两万人。厦门岛解放后,金门守敌受到很大威胁。蒋介石为固守金门,于10月10日后,又陆续将潮汕地区的国民党精锐胡琏第十二兵团的第十八、十九军增防金门。至10月24日,金门敌军的总兵力已增至4 万余人。
10月15日厦门解放后,18日,叶飞决定以第二十八、二十九军各一部共7个团的兵力,在第二十八军首长指挥下,担任攻取大金门的任务,以第三十一军一部攻取小金门,20日发起攻金战役。稍后,又解除了第三十一军的任务,决定攻取大小金门统由第二十八军担负。时第二十八军军长朱绍清在上海治病,政委陈美藻在福州从事接管工作,参谋长也不在位,军中只有副军长肖锋一人。
第二十八军受领进攻金门岛的任务后,开始准备渡海作战。由于沿海船只大部被敌人破坏,征集到的船只仅能装载一个营。船只严重不足,第二十八军不得不将进攻金门的时间由20日推迟到23日。第十兵团司令部一面催促第二十八军加紧准备,一面要求集中各军所有船只以保障第二十八军攻金作战。21日,第十兵团发现国民党军胡琏第十二兵团抵达金门湾,其部队由潮州、汕头开始船运。23日,又侦悉该敌第一一八师已抵达大金门,后续部队正在海运途中。但第十兵团对该敌是撤回台湾还是增援金门判断不定,因而未采取应变措施。这时,第二十八军已集中可装载3个团兵力的船只。第十兵团首长认为,必须乘敌增援部队未到达金门之时,抓住战机,发起渡海作战,攻取金门。第一梯队航渡3个团,返航后第二梯队至少还可航渡2个团,一夜能运过5个团的兵力,敌我力量对比可达1∶1 ,足可巩固阵地,解决残敌。因此,决心于24日夜发起战斗。
战斗部署是:以第二十八军第八十二师第二四四团、第八十四师第二五一团、第二十九军第八十五师第二五三团共3个团为第一梯队,由第八十二师师长钟贤文统一指挥,分别自莲河、大嶝岛、澳头东北角海湾起渡,在大金门岛北部湖尾乡至古宁头段登陆突破,首先攻歼该岛西半部之敌,尔后会同后续梯队攻歼东半部之敌。预定3天解决战斗。
24日晚8时,9000余名官兵乘坐300条战船,兵分三路,乘夜渡海攻击金门。船行不久,海面刮起三四级东北风,潮水缓缓上涨。由于征集的水手都来自福州、泉州等地,不熟悉航道,事先又未经过训练,协同不力,调度不灵,加上3个团没有统一指挥,通信联络不畅,造成各团船队自行航行。
25日零时,金门岛一点红守军一排长查哨时误触地雷,轰的一声巨响,守军全被惊醒,惊慌中以为解放军来犯,匆匆进入阵地。就在这时,借着微弱的月光,发现海面上有一大片黑压压的船队,以泰山压顶之势而来,遂按事先约定计划,连开三枪。这支船队是我主攻第二四四团,团长兼政委邢永生见守军已经发现我军,立即用电台向指挥所报告:"离敌5里,立即开炮!"我军炮群骤然开火,火光映红夜空,金门大战拉开序幕。
在炮火掩护下,二四四团在一点红抢滩登陆。这一日是金门全年潮水最高的日子,蒋军在海滩的第一道防线,包括碉堡、铁丝网,几乎被水淹了一半,士兵站在碉堡里面的水中。主攻团船队顺风乘潮,猛扑海滩,收势不住,许多船只冲过了碉堡,船头插入沙滩。防守碉堡的蒋军不得不反过身来向后面射击。由于风浪太大,我官兵很多晕船,加之渔船腥味重,官兵闻不惯,大多呕吐,体力大减。邢永生指挥战士们纷纷跳海,以自制的三角架等泅渡工具,向敌阵突破。主攻团登陆后,被敌人坚固碉堡火力压制在空阔的滩头,几名"爆破英雄"身绑炸药包,爬到碉堡附近或冲进碉堡,与碉堡同归于尽。正在激战中,敌人坦克突然袭击,因部队没有反坦克武器,伤亡惨重,队形大乱,部队各自为战,冒死冲锋,前锋曾抵金门县城,终被打垮。部队打乱后,团长邢永生手中只掌握几个班的兵力,在一点红海滩上耸立起一个两米高的竹竿,竿上挂一个大灯笼,上书"二四四团登陆点",邢永生在灯笼下指挥作战。几辆坦克向这里扑来,邢永生喊道:"赶快向西突围,向二五一团靠拢!"但敌坦克和国民党军迅猛冲来,战斗中,邢永生身负重伤被俘,后被杀害。
25日2时,两个助攻团二五一团和二五三团的船队被大风吹到古宁头一带。二五一团团长刘天祥、政委田志春和二五三团团长徐博、政委陈利华指挥部队迅速登陆。已经预知解放军进攻的国民党守军,以猛烈火力阻击。解放军不顾死伤枕藉,前赴后继,拼抢海滩。渡船乘着风浪,向海滩猛冲,海潮后退,几乎所有的船只都搁浅海滩。我军跳船登陆,迅速扫荡海滩守敌。天尚未全明,助攻两团占领海滩,在"有几个人打几个人的仗,不等待,不犹豫,向里猛插"的战术思想指导下,在没有按照原定作战计划,迅速将渡船返回的情况下,只留下一个营坚守海滩和船只,其余向纵深冲击,猛烈扩大战果。
与此同时,胡琏第十二兵团开始在后方登陆金门岛。天刚刚亮,国民党空军唯一的中型轰炸机大队起飞,对我军搁浅在海滩的船只轮番轰炸,国民党海军同时用舰炮猛烈轰击。我军第一梯队船只全部被毁,船队燃烧起火,熊熊火焰几十米高,等候渡船返回的第二梯队攻金官兵,在大陆这一侧看得清清楚楚,急得跺脚痛哭,不住向天鸣枪。指挥登陆作战的第八十二师师长钟贤文,听到所有船只被毁的消息,当即晕倒在指挥所里。
25日上午,胡琏部第十八军投入战场,在坦克掩护和炮兵配合下,分三路发起全面反攻。我军两个助攻团在没有统一指挥的情况下,在古宁头半岛及其东海岸约两平方公里的地域,面对敌人的优势兵力,血战不退。一无名高地先后易手7次,国民党守军死尸在阵前层层叠叠,血流成河。国民党守军再次冲锋,高地上我军只剩下一名教导员、一名指导员,其余均牺牲,两人知道胜利无望,同时举枪自杀。
战斗越来越残酷,第二梯队官兵在大陆一侧只闻金门激烈的枪炮声,无法航渡增援。第十兵团紧急搜调渡船,25日全天只搜集到装载4个连兵力的船只,根本不可能扭转战局。军部有人认为敌我兵力太过悬殊,增援一两个营只能增加无谓的伤亡。肖锋打电话向叶飞请示。叶飞指示:"只要有一线希望,就要派兵增援,同胡琏兵团打到底!"遂决定派二四六团团长孙云秀率4个连增援金门。增援官兵均知此一去必不返,但个个视死如归。他们把背包留下,写上自己家乡亲人的地址,身上的钢笔、笔记本、钱包等统统掏出来,请部队转交给自己的亲人。战士们尽可能地多带手榴弹,彼此紧紧握手,相约"最后一颗留给自己!"团长孙云秀请通信员转告副军长肖锋:"我死后,请部队代我告知洛阳城东老家父母,并让妻子王佩兰改嫁。"
26日凌晨,孙云秀率二四六团和二五九团各两个连的增援部队渡海增援。由于风浪太大和敌海军封锁,船队被吹散,仅4个排登上古宁头,与顽强坚持血战的刘天祥、徐博部会合。天亮后,胡琏第十二兵团主力部队投入战斗,铺天盖地反扑而来。我军寡不敌众,孙、刘、徐率军血战,激战竟日,伤亡惨重。我军愈打愈少,将士们不仅两天两夜未进一粒粮食,连水源也断了。
27日凌晨,肖锋给坚守古宁头的部队发来一封电报,全文如下:
敬爱的邢永生同志、孙云秀同志、刘天祥同志、田志春同志、徐博同志、陈利华同志并转全体指挥员、战斗员和船工:亲爱的同志们,自10月24日晚21时,为了解放祖国东南沿海岛屿,你们乘坐木船战胜八九公里的惊涛骇浪,在金门岛西北岸十里海滩实行坚决的突破,为歼灭蒋介石的残余溃众,付出了宝贵的鲜血,不少同志牺牲了年轻的生命。我英勇善战的人民子弟兵,在后无船只增援的情况下,血战两昼夜,给数量大大超过我军的敌人以惨重的杀伤,捣毁了敌人很多军事设施。由于领导错误判断了敌情,我10个战斗建制营遭到失败,写下了极其壮烈的史篇。目前还活着的同志们,正抱着有我无敌的决心,继续战斗。为保存最后一份力量,希望前线指战员机动灵活,从岛上各个角落,利用敌人或群众的竹木筏及船只,成批或单个越海撤回大陆归建。我们在沿海各地将派出船只、兵力、火器接应和抢救你们。
但是,此时,敌人已经将我登陆部队重重包围,不可能撤回大陆归建了。
27日天亮,国民党军向我古宁头阵地发起总攻,像潮水一般的敌人从三个方向涌来。敌海军军舰绕到古宁头北面的海上,用重炮向地面炮火射击不到的死角轰击。飞机也出动,低空扫射。孙、刘、徐等被敌分割包围,战斗极为残酷。二四六团团长孙云秀和几个战士被围,经激烈战斗,眼见突围无望,孙云秀突然跃起,对着敌人高喊:"过来吧,我就是团长!"他打倒几个敌人后,对准自己的太阳穴开枪自杀。国民党军史上讲:"孙匪云秀极为彪悍,饮弹自尽后,尸体兀自屹立不倒。"至10时许,古宁头陷落,刘天祥牺牲,徐博率部分残余官兵遁入深山打游击,敌使用一个师的兵力搜山,徐博被俘,后被杀害。
进攻金门岛的战斗,共毙伤国民党军9000余人,但登岛部队共3个多团9086人(内有船工、民夫等350 人)大部分壮烈牺牲,一部被俘。这是解放战争中人民解放军的一次重大损失。
金门战斗后,第十兵团专门召开会议进行战役检讨,总结出这次战斗失利的主要教训是:在胜利的形势下,高级指挥员轻敌麻痹,盲目乐观,战斗任务尚未全部完成,就过早地转移了工作重心,忙于城市接管,把攻打金门的指挥责任交给了第二十八军;对渡海登陆作战的特点和困难认识不足,船只准备不充分;对敌情掌握不准确,对国民党军第十二兵团两个军增援金门,敌我力量发生重大变化的情况未及时察觉,只强调抓住战机,仍按原计划发起战斗;战斗组织指挥不严密,不同建制的3个团没有统一指挥,仓促发起战斗,这就难以避免造成严重的损失。进攻金门岛战斗虽然失利,但登陆作战的指战员们顽强拼搏、英勇献身的战斗精神是永不磨灭的。
10月29日,毛泽东以中央军委名义亲笔拟写《严重注意攻击金门岛失利的教训》的电文,致电第三野战军和其他各野战军前委。电报先转述第三野战军副司令员粟裕等人对第十兵团首长的批评:"你们以3个团登金门岛,与敌3个军激战两昼夜,后援不继,致全部壮烈牺牲,甚为痛惜。查此次损失,为解放战争以来之最大者。其主要原因,为轻敌与急躁所致。当你们前次部署攻击厦门之同时,拟以一个师攻占金门,即为轻敌与急躁表现。当时,我们曾电你们,应先集中力量,攻占厦门,而后再转移兵力攻占金门,不可分散力量。但未引起你们深刻注意,致有此失。"随即指出:"当此整个解放战争结束之期已不在远的时候,各级领导干部中主要是军以上领导干部中容易发生轻敌思想及急躁情绪,必须以金门岛事件引为深戒。对于尚在作战的兵团进行教育,务必力戒轻敌急躁,稳步地有步骤地歼灭残敌,解放全国,是为至要。"
11月14日,第三野战军政治部就金门战役失利后的政治工作等问题,致电第十兵团政治部,要求正确向兵团将士解释金门战役失利的原因:主要是战役指导思想上重厦(门)不重金(门),轻敌急躁,缺乏细致的组织工作与技术上的充分准备,受气候变化及地理条件的影响,等等.
-----------------

国军守将揭秘金门战役解放军登岛部队致命弱点


当时的刘云瀚可能对守住金门岛并不抱希望,但作为守岛主力的他,只能硬着头皮坚持下去。不久他发现了解放军的致命弱点,那就是没有援兵。于是他的19军和友军发起了反攻,竟然将登岛的解放军全部歼灭,立下了一个意外的大功。
第19军这个番号,在读者的印象中可能只有史泽波的上党之败。要评价起来,这个军的战斗力实在不怎么的,但这是有原因的。抗战初期的19军在王靖国的带领下和日本人打得还是挺凶的,光旅团长就阵亡了好几位。可在阎锡山的怀柔政策以及只要番号不管实力的“扩军”下,19军的战斗力自然就下降了。晋军的部队,是出了名的“空军”,缺额实在太多了,阎老西又不肯精减,这就导致许多师级单位人数奇缺,甚至出现了只有600人的师。所以,要说在上党覆没的19军到底有多少兵力,谁都说不清楚,因为在中央那边的备案可是满员的甲种军啊。内战末期的19军是在东拼西凑的情况下成立的,当时谁都不会想到,这样一个军竟然成了延续蒋家王朝的关键因素。这历史,实在是太让人捉摸不透了。
刘云瀚,江西大庾(今大余)人,生于1910年9月23日。刘云瀚以他黄埔七期工科的资历,竟然能在五年内就考上陆军大学正则班第十一期,这不是一般人所能比的。从陆大十一期毕业出来的参谋人才不在少数,刘云瀚就是在这个时候被陈诚看中,并招为幕下的。在陈诚的提拔和照顾下,刘云瀚的近半军旅生涯都在办公室度过,直到抗战爆发,才被下放到部队担任第11师参谋长。后来陈诚编组第六战区司令长官部,刘又被调过去担任办公室主任,俨然一副陈氏代言人的尊容。
为了完善刘云瀚的资历,陈诚还让他当过第5师师长和第11师师长。“巧”的是,在他当师长的时候,这两个部队都没干啥事,对刘云瀚来说,实在是幸运之极,我们也可以从中看出陈诚对刘是极为爱护的。但这也包含着致命的缺陷,那就是刘云瀚的参谋业务再出色,也只能是一名纸上谈兵的将军。
抗战后期的刘云瀚再次被陈诚调到后方坐办公室,他先后担任过军政部人事司司长、后勤司令部人事处处长等职,通过他的运作,替陈诚安插了大批土木系人员到全国各部队机关中,可谓是土木系筹划掌握全国机关的中枢。抗战胜利后,国民政府设立国防部,并对原军事委员会所辖机关进行改组。这个时候,刘云瀚被任命为国防部第1厅(人事)副厅长。当时的厅长是于达,属胡宗南系统,陈诚是不甘心把人事主导权转交给胡的,于是特地安插刘在第1厅,好对于达进行牵制。刘云瀚则在功成身退之后,又被陈诚任命为第5厅厅长,这个部门负责的是全国军队的动员、编成、训练等事宜,自从成立开始就长期由土木系执掌,在继方天、郭汝瑰之后,刘云瀚便成了第5厅的第三任厅长。
刘云瀚坐办公室是极其称职的,但在带兵打仗方面实在是不行。这不,陈诚为了继续培养刘云瀚的资历,又把他下放到部队去了。刘云瀚的职务是第86军(初称新编第5军)中将军长,不过这回和他当师长的时候不一样,他需要在天津这座被解放军团团包围的城市内进行最后的抵抗。刘云瀚一到职就后悔了,估计这时候他会埋怨老长官把他送进这个火坑。他的86军是由杂七杂八的地方保安部队编起来的,唯一可以依靠的正规军26师又是一支在华北和东北两次遭到重创的部队。带着这样的部队来抵抗如狼似虎的解放军,那和拿着鸡蛋砸石头没有任何区别嘛。
1949年1月14日,刘云瀚所寄予希望的东局子据点被解放军攻克,一天后,他在军部成了解放军的俘虏。刘云瀚觉得自己八成是再和军队无缘了,成了俘虏的他,在河北永年的解放军官团里十分配合解放军的工作,这使解放军对他的印象极佳。在考虑到他是陈诚的亲信之后,决定把他放回国统区,或许在关键时刻能起到劝说陈诚的作用。而对前途已经不抱希望的刘云瀚在得到这样一个消息后,显得十分兴奋,他当下就许诺回到国军会怎样怎样作出贡献,其实他自己心里明白,只要回去了,谁还管那些许诺啊。不管怎样,在刘云瀚极为“诚恳”的表露心迹之后,被解放军“派”到国统区做“策反”工作去了。
陈诚对于“艰难突围”归来的刘云瀚依旧像以往那样信任,并且任命他为新成立的19军军长。刘云瀚当时快哭了,怎么又要下部队啊?当他带着部队去金门驻防时,估计快崩溃了,因为解放军对金门发起了进攻。当时的刘云瀚可能对守住金门岛并不抱希望,但作为守岛主力的他,只能硬着头皮坚持下去。不久他发现了解放军的致命弱点,那就是没有援兵。于是他的19军和友军发起了反攻,竟然将登岛的解放军全部歼灭,立下了一个意外的大功。
谁说我刘云瀚不会领兵打仗啊,金门就是最好的例子。晚年的刘云瀚对他的生平基本不做回忆,唯独对金门之战写有专文,这或许也能使读者了解到刘云瀚对金门之战的战绩是十分自豪的。刘云瀚在战后被再次调去坐办公室了,他先后担任过国防部战略计划研究委员、工兵学校校长、联勤总部工程署署长、供应司令部副司令等职,于1981年5月17日在台北病逝。
Viewing all 20530 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>