Total Pageviews

Wednesday, 31 January 2018

不講理的姑娘


電影 '翠翠' 插曲,30年代的电影就是这么有情趣。

Tuesday, 30 January 2018

比锂离子电池更优的钒电池正在崛起


一种鲜少谈起的电池用金属,过去一年来价格大涨逾130%,超过人们常说的钴、锂、镍,它叫作“钒”(vanadium),名气虽不响亮,但表现却真不凡。钒呈银蓝色,名称源自于北欧主掌美丽的女神之Vanadis。带动价格大涨的主要原因是供给吃紧以及钢铁业对钒猛下订单,占总量需求量的90%。但分析人士预料,未来钒的用途将转变。BMO资本公司指出,钒可用于工业规模的电池,有助于消弭再生能源业每天的尖、离峰电力供给量落差,将创造庞大的新市场,并成业界竞相争夺的原料。当前电力储存设备的主要科技是锂离子电池,但钒流电池却有其优势,包括电力可储存更久,且可以重复充电及放电,但功率不会受到明显影响;而且容易回收,完全不受电力储存计划的空间限制。瑞士帕拉投资公司董事麦纽斯基指出,钒流电池在大规模电池应用上比锂离子电池更优,已是不争的事实。业界专家指出,中国正开始以钒流电池作为新选项。政府正在推广这项科技,并已在大连新建钒流电池备载设施,规模比特斯拉在澳新建的电池模组大一倍。

如何启动火狐安全模式及进入延伸模组列表

问︰虽然Firefox和Chrome都是十分安全的浏览器,只不过,黑客仍然有办法去入侵Firefox和Chrome,近日Firefox和Chrome都出现一些恶意延伸模组,那些模组会造成甚么问题?

李建军︰这些恶意模组,暂时主要帮助黑客榨取一些不当利益,例如利用听众的电脑运算能力采矿,或用听众的电脑点击YouTube网站,令Google广告客户蒙受损失,暂时未有偷取私隐,或令电脑瘫痪等问题,但肯定会令电脑运行速度,以至网络频宽大受影响。

只不过,这种技术一旦出现就会后患无穷,除了黑客最终目标可能是偷取信用卡资料,甚至偷取你的Google户口资料。Google户口对中国听众而言,尤其值得担心,因为除了黑客对你的谷歌户口有兴趣,中国当局亦对你的Gmail资料有兴趣。而怀疑与中国当局有关的黑客,在香港经常用钓鱼电邮手段,意图偷取泛民主派政治人物的电邮资料,因此,对听众而言,这些恶意延伸模组虽然只是一种新的入侵手法,但听众仍然要加以警惕和提防,保障自己和朋友的安全。

问︰一般而言,听众的浏览器会因甚么情况,安装这些模组而懵然不知?

李建军︰在Chrome上有部分恶意模组,曾经是Chrome Web Store伪装成合法的模组出现,因此在Chrome Web Store安装模组时,必须留意模组的开发商,是否一些可靠的公司或个人,因为Chrome Web Store的审查机制,一如Google Play一样,都是相对宽松。

而在Firefox上,发现那些模组的用户,多数是钓鱼电邮的受害者,或者浏览一些不明来历网站而被黑客暗中安装这些恶意模组,所以除了要小心一些不明来历网站外,更要留意一些钓鱼电邮。如果你对邮件内容有疑问,不要随便打开当中的连结,打开含有恶意代码的网站,以策安全。

问︰假如真的不幸怀疑自己的浏览器被恶意延伸模组入侵,那么听众可以有甚么方法移除这些恶意模组,是否要将浏览器铲除并重新安装,才有办法移除恶意延伸模组?

李建军︰由于Firefox有安全模式,只要关闭Firefox,并以安全模式启动,延伸模组列表就会重见天日,接著就可以删除有问题的模组。这集翻墙问答,我准备了视频,示范如何启动安全模式以及进入延伸模组列表,欢迎听众浏览本台网站,收看有关视频。

至于Chrome就麻烦一些,因为Chrome并无安全模式的设计,必须要找到恶意延伸模组相关的Javascript档案后,再重新启动Chrome来移除有问题的模组,这涉及比较高的技术难度。不少网上保安网站都指出与这些恶意模组相关的js档案,只要在作业系统上找到这些档案,并加以删除就可以。

问︰除了Firefox,那现时最常用的浏览器,包括手机、平板电脑上的浏览器,或Safari和Edge,又会否受到恶意模组的问题困扰而需要多加防范?

李建军︰虽然苹果Safari有延伸模组功能,只不过Safari的延伸模组必须要经过苹果公司的严格审批,因此,市面上连可以用的安全模组都相当少,更不要说恶意模组。微软Edge的模组安装和审查机制,与苹果相当类似,因此难有这类问题。

至于手机和平板电脑,在iOS上,就算Chrome和Firefox都不能安装任何延伸模组,因此不受影响;而Android方面由于受制于手机作业系统的有限资源和环境,亦几乎难有延伸模组可以安装成功。因此受这问题困扰的听众,主要都是使用电脑的听众。
来自https://www.rfa.org/cantonese/firewall_features/virusextension-01262018083636.html?encoding=simplified

一个有关低端linux vps的博客-lowendguide.com

http://www.lowendguide.com

Monday, 29 January 2018

传统IT架构已经追不上大数据应用的需要


共享经济、订制式租赁、技术及数据资源的按需付费等等,正进一步把拥有权和使用权分离。2017年11月的洛杉矶车展上,沃尔沃和林肯宣布推出计程车服务,保时捷也推出自家租赁服务,涵盖了很优惠的保险条款、道路救援、全车清洗等。很多消费者并不在乎是否真正拥有一辆车,他们只想使用汽车,把麻烦的事情留给其他人处理。不过,这些新经济模式都离不开新的数据建设:数据共享与敏捷开发、快速的云计算能力、更适合于非结构性数据的存储架构、安全数据流通及保护等等。不可不知,传统的IT架构已经追不上大数据的需要。过去国内一些技术公司提出“去IOE”(不用IBM、Oracle、EMC)并不完全是国家战略层面的意义(如信息安全),部分原因也是因为IOE设备或软件在测试阶段过不了关。在新经济发展的模式下,中外市场都是如此。据阿里巴巴集团前副总裁车品觉称,Google在数据处理方面,也遇到过IOE的数据处理能力不能满足需要的问题。在2017年还有另一个值得重视的业内消息,即Amazon为其AWS部门的数据服务引入了按秒计费模式,这意味着客户能以更低的价格使用特定工具。此举在云计算行业掀起了很大波澜,并为弹性的技术共享趋势开创了先例,Amazon、Google及阿里开始尝试把自己的高科技工具,提供给那些无力支付高昂费用的客户,例如小型企业和个体经营者。想像一下,如果你能以按秒付费方式去访问那些强大的深度学习模型,将是何等梦寐以求的事!如果传统的IT架构已经不太适应大数据的需要,这就对IBM等公司的业绩持续下滑提供了一个很好的解释.

央行官员披露发行数字货币的系统思路


近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,中国央行也在组织进行积极探索和研究。中国人民银行副行长范一飞日前撰文,对中国央行的数字货币发行安排,首次提出了详细和系统的思考。考虑到央行官员是首次系统阐述央行发行数字货币的思路,特将核心内容载于此,以飨客户。
一、中国央行数字货币应采用双层投放体系。
大国发行央行数字货币是一个复杂的系统工程。我国幅员辽阔、人口众多,各地区经济发展、资源禀赋和人口受教育程度差异较大,在设计和投放(发行)、流通央行数字货币过程中,要充分考虑系统、制度设计所面临的多样性和复杂性。比如,需要考虑网络覆盖不足的偏远地区的使用问题。如果采用单层(one-tier)投放,将面临上述因素所带来的极大考验。为提升央行数字货币的便捷性和服务可得性,增强公众使用意愿,可考虑采用双层(two-tier)投放,来应对上述困难。
“双层投放”有利于充分利用商业机构现有资源、人才、技术等优势,通过市场驱动、促进创新、竞争选优。商业银行等机构的IT基础设施应用和服务体系已比较成熟,系统的处理能力较强,在金融科技应用等方面已经积累了一定的经验,人才储备较为充分。在商业银行现有的基础设施、人力资源及成熟的应用和服务体系之外,另起炉灶、重复建设,对社会资源是巨大的浪费。在安全、可靠的前提下,中央银行与商业银行等机构可以密切合作,不预设技术路线,充分调动市场力量,通过竞争来实现系统优化,共同开发、共同运行。而且,大众已习惯通过银行等商业机构处理金融业务,双层投放也有助于提升社会公众对央行数字货币的接受度。
“双层投放”有助于分散化解风险。在以往银行间支付清算系统的开发过程中,央行积累了丰富的经验,但银行间清算支付系统是直接服务金融机构,央行数字货币是直接服务公众,涉及千家万户。如果仅靠央行自身力量进行研发,支撑如此庞大的系统,既要满足安全、高效、稳定的目标,还要满足用户体验需求,很不容易。同时,央行还受制于预算、资源、人员和技术等客观约束,通过两级投放的设计,可避免将风险过度集中。“双层投放”可以避免“金融脱媒”。“单层投放”下,央行直接对公众投放数字货币,央行数字货币与商业银行存款货币将形成竞争关系。显然,由央行背书的央行数字货币的信用等级高于商业银行存款货币,会对商业银行存款产生挤出效应,可能出现“存款搬家”,进而影响商业银行的贷款投放能力。
此外,商业银行吸纳存款能力降低会增加其对同业市场的依赖,抬高资金价格,增加社会融资成本,损害实体经济,引发“金融脱媒”。为保持其放贷能力和金融稳定,央行将不得不对商业银行进行补贴。极端情况下,还会颠覆现有金融体系,出现央行包打天下的“大一统”局面。
综上,“中央银行-代理投放的商业机构”的双层投放模式是既适合我国国情,又能够充分利用现有资源、调动商业银行积极性的选择。(1)不改变流通中货币的债权债务关系。为保证货币不超发,代理投放机构需要向央行按100%全额缴纳准备金。公众所持有的央行数字货币依然是中央银行负债,由中央银行信用担保,具有无限的受偿性。(2)不改变现有货币投放体系和二元账户结构,不会构成对商业银行存款货币的竞争,不会增加商业银行对同业拆借市场的依赖,不会影响商业银行的放贷能力,也就不会导致“金融脱媒”现象。(3)由于不影响现有货币政策传导机制,不会强化压力环境下的顺周期效应,因此也不会对现行实体经济运行方式产生负面影响。最后,该模式更有利于发挥央行数字货币的优势,节约成本、提高货币流通速度,提升支付便捷性和安全性。此外,由于具有央行背书的信用优势,有利于抑制公众对私有加密数字货币的需求,巩固我货币主权。
二、在双层投放体系安排下,我国的央行数字货币应以账户松耦合的方式投放,并坚持中心化的管理模式。
为保持央行数字货币的属性,实现货币政策和宏观审慎管理目标,我国的央行数字货币双层投放体系应不同于各种代币的去中心化发行模式。第一,因为央行数字货币仍然是中央银行对社会公众的负债,其债权债务关系并未随着货币形态而改变,因而仍必须保证央行在投放过程中的中心地位。第二,需要保证并加强央行的宏观审慎与货币政策调控职能。第三,不改变二元账户体系,保持原有货币政策传导方式。第四,为避免代理投放机构超发货币,需要有相应安排实现央行对数字货币投放的追踪和监管。
因此,央行数字货币应坚持中心化投放模式。不过,这里所说的中心化投放模式与传统电子支付工具也有所不同。电子支付工具的资金转移必须通过账户完成,采用的是账户紧耦合方式。央行数字货币则应基于账户松耦合形式,使交易环节对账户的依赖程度大为降低。这样,既可和现金一样易于流通,又能实现可控匿名。央行数字货币持有人可直接将其应用于各种场景,有利于人民币流通和国际化。
另外,如果没有交易第三方匿名,会泄露个人信息和隐私;但如果允许实现完全的第三方匿名,会助长犯罪,如逃税、恐怖融资和洗钱等犯罪行为。所以为取得平衡,必须实现可控匿名,只对央行这一第三方披露交易数据。在松耦合账户体系下,可要求代理投放机构每日将交易数据异步传输至央行,既便于央行掌握必要的数据以确保审慎管理和反洗钱等监管目标得以实现,也能减轻商业机构的系统负担。
三、中国现阶段的央行数字货币设计应注重M0替代,而不是M1、M2替代。
现阶段,M1和M2基于商业银行账户,已实现电子化或数字化,没有用数字货币再次数字化的必要。支持M1和M2流转的银行间支付清算系统(如大小额支付系统和网上支付跨行清算系统等)、商业银行行内系统以及非银行支付机构的各类网络支付手段等运转正常,且在不断完善升级、日益高效,能够满足我国经济发展的需要。用央行数字货币替代M1和M2,既无助于提高支付效率,还会造成对现有系统和资源的巨大浪费。相比之下,现有纸钞和硬币的发行、印制、回笼和贮藏等环节成本较高,流通体系层级多,且携带不便、易被伪造、匿名不可控,存在被用于洗钱等违法犯罪活动的风险,实现数字化的必要性与日俱增。
另外,非现金支付工具,如传统的银行卡和互联网支付等,都基于账户紧耦合模式,无法完全满足公众对易用和匿名支付服务的需求,不可能完全取代M0,特别是在账户服务和通信网络覆盖不佳的地区,民众对现钞的依赖程度仍然很高。央行数字货币保持了现钞的属性和主要特征,满足了便携和匿名的需求,将是替代现钞的最好工具。
正因为央行数字货币是对M0的替代,不应对其计付利息。这样既不会引发“金融脱媒”,也不会由此引致通胀预期。相应地,也不会对现有货币体系、金融体系和实体经济运行产生大的冲击。同理,由于央行数字货币是M0替代,所以也应遵守现行所有关于现钞管理和反洗钱、反恐融资等的规定。为配合反洗钱等相关工作,可要求相关机构就央行数字货币的大额及可疑交易向央行报告。同时,为引导央行数字货币应用于小额零售业务场景、不对存款产生挤出效应,避免套利和压力环境下的顺周期效应,可对其设置每日及每年累计交易限额,并规定大额预约兑换。
必要时,也可考虑对央行数字货币的兑换实现分级收费,对于小额、低频的兑换可不收费,对于大额、高频兑换和交易收取较高费用以增加兑换成本和制度摩擦。在利率零下界的情况下,这种安排还可为央行实施负利率政策创造条件。
四、对央行数字货币加载智能合约应保持审慎态度。
根据尼克·萨博(Nick Szabo)给出的定义,智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。智能合约被写入计算机可读的代码中。一旦达到触发条件,由计算机自动执行。可以加载时间、信用等前置条件,也可以被应用于缴税、反恐融资等多种场景中。
然而,如前所述,央行数字货币是对M0的替代,具有无限法偿性,即承担了价值尺度、流通手段、支付手段和价值贮藏等职能。原有现钞并未承载任何其他的社会与行政职能。《中华人民共和国人民币管理条例》规定,禁止故意损毁人民币。所以,在现钞上添加额外社会或行政功能实际上有损毁人民币之嫌。
为保持无限法偿性的法律地位,央行数字货币也不应承担除货币应有的四个职能之外的其他社会与行政职能。加载除法定货币本身功能外的智能合约,将影响其法偿功能,甚至使其褪化为有价票证,降低我国央行数字货币的可自由使用程度,也将对人民币国际化产生不利影响。还会降低货币流通速度,影响货币政策传导和央行履行宏观审慎职能。同时,还可能侵犯公民隐私权,不利于个人权益保护。
最终分析结论(Final Analysis Conclusion):
中国央行官员的上述系统思考,至少代表了部分央行人士对未来发行数字货币的原则和方向的思考,值得市场高度关注和思考!

三家中国企业反对博通收购高通,为高通站台


半导体行业巨头博通(Broadcom.ltd)拟斥资超1000亿美元收购另一大巨头高通(QCOM)一案仍在发酵。如果收购成功,这将成为半导体行业历史上的最大并购案,新公司将成为仅次于英特尔和三星电子的全球第三大芯片制造商。不过,合并交易案尚未达成,近日,三家来自中国的智能手机制造商以反对者的身份公开表态,他们分别是广州欧珀移动通信有限公司(OPPO)、维沃移动通信有限公司(vivo)和北京小米科技有限责任公司(小米)。目前美国联邦贸易委员会对该交易的反垄断审查已开启,1月19日,博通发布一份声明称收到FTC的反垄断审查。针对博通的收购邀约,高通发给股东的声明中强调,目前博通收购行为可能存在监管问题;希望在3月6日的公司年会中再次拒绝博通的收购要求,否则博通股东将完全取代高通的董事会。据报道,OPPO、vivo表示若博通成功以1300亿美元并购高通,担心未来博通可能会提高晶片价格,而且可能大幅削减高通的研发开支。同时,小米也对该并购交易保留意见。三家企业还称,若博通并购成功,可能会考虑更换供应商。高通过去曾在中国市场遭遇反垄断巨额罚款,不过,三家中资企业都使用高通的芯片和授权。现在三家企业反对博通的收购,实际上是在中国市场为高通站台。由于中国目前已与欧盟、美国并称为三大反垄断司法辖区,因此,中国商务部的态度对于国际重大并购能否成功具有重要作用。三家中国公司的反对,对商务部的决策可能会有一定影响.

从资本进入汽车产业看发展实体经济


在当前的经济调整之中,中央鼓励资金“脱虚向实”,希望推动过去从实体经济流出到各类“虚拟经济”资产交易(如炒股、炒房、炒钱)的资金,能够回到实体经济。不过,政策鼓励是一回事,市场实际的变化则是另一回事,能否真正引导资金重回实体经济,是关系到未来中国经济能否持续健康发展的重要问题。
要想鼓励资金“脱虚向实”,先要弄清此前为什么资金要“脱实就虚”。从市场层面来看,理由并不复杂——实体经济太难做,赚钱难、生存难,不如“虚拟经济”赚钱容易、赚钱快。那么,为什么曾经是“世界工厂”的中国做实体经济难?原因很多,国内劳动力成本上升,融资成本上升,环境成本上升,土地成本上升,产业周期变化,国内外市场变化,产业结构升级,消费需求升级……虽然原因不一而足,但可以肯定的是,在原来的产业层次上,实体经济难做是一个必然出现的系统结果。安邦咨询(ANBOUND)的不少客户就从实体经济转向搞投资,吭哧吭哧干了大半辈子的制造业,摇身一变成了“PE投资家”。仍然坚持在实业领域的企业,一部分提前进行了产业升级,把市场做成了国际市场,从中低端做到了中高端;另一部分没有升级的,只能是苦熬等死。
从近几年的政策看,在实体经济遇挫时,国家产业政策的重点之一转向了发展新经济,互联网经济以及“双创”被寄予了厚望。国家层面产业政策的调整,对于市场起到了一定的引导作用,一是驱动了一部分资金流向各种新经济,包括财政资金、社会资金、银行资金、风险投资等;二是从中央到地方,对新经济给予了一定的政策倾斜。决策层希望这部分产业政策能有助于实现中国经济的动能转换,催生出中国经济的新动能。但坦率来说,新经济政策除了推动了互联网商业、移动支付等少数领域的暴发之外,对于经济增长的推动并不算太明显。近几年经济增长的主要动力,还是来自于投资、工业、消费增长、出口回升等传统领域。
在实体经济发展方面,比较突出的一个政策是《中国制造2025》,主要是从产业角度,在工业化及工业与信息产业融合的领域提出了新的发展目标,是实施“制造强国战略”第一个十年的行动纲领。要指出的是,虽然《中国制造2025》只是中国政府推动的众多产业政策之一,但它受到了发达国家的认真关注,并引发了部分发达国家的担心。比如,早在2016年,美国提出的《2016年国家贸易评估报告》时就将“中国制造2025”计划列入其中;美国商会在2016年提供的另外一份报告《“中国制造2025”:建立在本土保护上的全球野心》也公开将“中国制造2025”这样一个国家强国战略计划,贴上了“本土保护”和“全球野心”的标签。2018年1月24日,美国商务部长WILBUR ROSS在瑞士达沃斯论坛上表示,“中国制造2025”战略规划是对美国的“直接威胁”。为什么美国这样在意《中国制造2025》?在我们看来,原因就是中国制造业如果实现了升级换代,做强做大,将会实质性地增强中国制造业的“硬实力”,对中国经济起到“硬支撑”,这是国家竞争力中最关键的部分,因此才被美国视为真正有威胁的地方。至于中国的互联网商业,即使做得再好,阿里巴巴和京东做到10倍于亚马逊,也不会引起美国的担心。
在“脱虚向实”的政策引导下,到底有没有效果呢?从2017年的民间投资这个窗口来观察,效果似乎并不明显。不过,现在已经有一些过去在虚拟经济领域的资本,开始投到实体经济领域。曾经因为入股万科而一战成名的资本市场“野蛮人”宝能集团,在2017年12月21日正式入股观致汽车,并成功控股观致。据称,宝能集团进军汽车领域的速度和野心震惊了汽车界,许多人在猜测,“野蛮人”姚振华可能将在新能源汽车领域掀起一波新的“野蛮潮”。持股万科25.4%的宝能系,目前的持股市值仍超过1100亿元。据测算,当初宝能持股成本总计约为460亿元,加上分红,宝能系账面浮盈高达700亿元。若仅以自有资金计算,则收益率超过400%。据称姚振华表示,投资万科,“我赚了,但看不到钱”。但不管如何,被判保险市场禁入的姚振华现在进军实体经济,也算是符合国家政策鼓励的“正道”。
据了解,宝能系在整车制造领域的布局速度很快。2017年3月20日,宝能集团成立了宝能汽车有限公司,其经营范围包括汽车和新能源汽车整车及其零配件、模具等装置的设计、研发、生产和销售。2017年10月,宝能集团与杭州市富阳区政府、杭州新天地集团签订项目合作框架协议,有意投资140亿元,在杭州建占地3000亩、年产30万辆汽车的新能源汽车项目。项目内容主要包括新能源汽车生产、测试、研发、总部楼宇及电机、电池、电控“三电”等配套核心零部件生产。去年11月下旬,宝能集团奔赴云南昆明,与当地政府签订战略合作协议,包括建设50万辆新能源汽车整车及零部件项目。据媒体统计,算上2017年12月份控股的观致汽车,宝能汽车当前规划的产能已接近100万辆。目前看来,宝能汽车将在传统燃油车和新能源汽车两个领域同时发力。目前,宝能汽车聘请了来自北汽集团的李峰和邬学斌,这两人一个来自本土,一个是海归派,是宝能汽车的管理雏形。
去年以来投资汽车行业的有影响力的企业家,还有具有强列的实业情结的格力电器董事长董明珠。在推动格力投资珠海银隆失败之后,董明珠以个人身份投资这家有新能源汽车概念的公司,几乎砸进了所有的个人身家,因此,银隆的新能源汽车对于董明珠来说将是背水一战,要么因此上一个大台阶,要么因此而折戟沉沙,毁掉一世英名。有意思的是,曾经被董明珠斥责可能“破坏中国制造业”的“罪人”姚振华,现在也同样进入了汽车制造业。
从大趋势来看,国内的汽车产业正在走下坡路。国内汽车市场在销量突破2000万辆以后,增长速度已明显放缓。2013年至2017年,我国汽车销量增速分别为13.9%、6.9%、4.7%、13.7%和3%。考虑到国内的汽车消费环境、环境保护要求、市场竞争等因素,可以确定,传统汽车将长期处于低速增长时间,甚至会出现负增长。那么,为什么在传统汽车市场增长放缓、行业前景走下坡路的时候,还有业外资本在进入汽车行业,甚至是传统汽车行业?在我们看来,可能有如下几个原因:
一是资本过剩大背景的政策调整。中国仍处于全球性的资本过剩大环境中,市场在整体上并不缺钱。过剩资本在过去追捧的基本都是资产交易——炒钱、炒股、炒房、炒并购,什么赚钱就干什么。目前国内已开始系统的政策调整,金融监管显著加强,过去热炒的“钱、股、房”现在都不能再任性炒作,资本总要有个去处吧?现在,实体经济这个大门是敞开的。在资本市场受限的同时,转投实业受到政策鼓励鼓励。
二是汽车的产业链条长,而且与消费直接相关。在人们的消费产品中,汽车具有独特的地位——它几乎是唯一一种有普遍个体消费需求的复杂工业产品!机床是复杂的工业制品,但不是个人消费级的;游艇也是复杂的消费产品,但毕竟受地域和消费能力的限制;私人飞机更高级,但只有极少数人才能享用。因此,资本对于汽车的关注是有深刻道理的。
三是汽车是一个可以集成新技术的消费平台。由于其消费级工业品的特点,汽车成为可以搭载多种新技术的产品平台。人工智能、新能源、IT、数据服务、金融、工业制造、电子等多个产业,都能够在汽车上找到搭载平台和应用场景,也因此而吸引了金融资本对投资汽车相关产业的兴趣。
部分资本愿意投资进入汽车行业的形势,对于国家的政策制订应该有不小的启发。在资本过剩、政策鼓励、产业特点等多种因素的共同作用下,国内金融市场的资本“脱虚向实”,是完全可以做到的.

日本遭遇史上最大数字货币被盗案


日本数字货币交易所CoinCheck公司高管披露,其交易平台上价值5.3亿美元的新经币(NEM)已经被窃。根据日本数字货币分析网站MineCC报道称,CoinCheck公司高管已经召开了正式发布会,并且承认他们存储在热钱包里的所有资金被一群不知名的黑客窃取。与支持离线且更安全的冷钱包不同,如果数字货币交易所服务器被黑客攻破,他们就能轻松访问热钱包。因此,业内绝大多数数字货币交易所都只把很小一部分资金存放在热钱包里,其他则会选择冷钱包,安全地保存在线下,以及那些不会让黑客接触到的地方。但是,CoinCheck团队表示,他们很难管理冷钱包。现阶段,还不清楚是否有其他数字货币交易所也被黑客攻击。但目前,CoinCheck交易所已经证实了有价值5.3亿美元的新经币被窃。如果数据准确,这将是历史上针对数字货币的最大盗窃案。更“悲惨”的是,新经币开发人员和开源代码社区则表示,他们不会执行硬分叉从数字货币交易所恢复丢失的资金。日本是全球最大的数字货币交易市场,日均交易量明显高于美国和韩国。此外,日本还有一套严格的数字货币交易许可程序,目的就是要确保数字货币交易平台采取高质量的安全措施,以及合格的基础设施。投资者对于本次黑客攻击事件感到分外吃惊,因为CoinCheck是日本最大的数字货币交易所之一,仅次于BitFlyer。目前,CoinCheck公司已经将黑客攻击事件汇报给了日本金融厅(FSA),预计相关政府机构将会进一步调查其交易平台的安全漏洞.

基于nodejs的代理服务器程序mproxy

安装

npm install mproxy -g

启动参数
//常用
p=9999 --代理监听端口,默认9999
b=ip:port --桥接代理地址,
//密钥对
cert="" --公钥路径,默认使用系统自带
key="" --私钥路径,默认使用系统自带
//启用隧道
tunnel --开启隧道模式,只接受mproxy连接,接收加密后的数据
//不完整示例
mproxy -p=9999  -b=127.0.0.1:9998

代理桥接

你可以将部署在不同服务器上的mproxy桥接起来:
mproxy --b=服务器IP:服务器端口

加密传输

请传tunnel参数,否则无法正常工作/翻墙
建议传入cert和key参数,使用自定义密钥对.
from https://www.npmjs.com/package/mproxy
我的补充说明:
在服务器上安装node环境。
npm install mproxy -g
mproxy -p=1000 --b=127.0.0.1:8118 tunnel &
(b的意思是后端backend,在同一台vps的8118端口上运行着一个http proxy server,
我是用kiss-proxy这个程序搭建的,参见http://briteming.blogspot.com/2018/04/gohttpkiss-proxy.html)
这条命令:
mproxy -p=1000 --b=127.0.0.1:8118 tunnel &容易退出运行,我们可利用systemd来
把此命令运行为service:
nano /etc/systemd/system/mproxy.service
其内容为:
[Unit]
After=network.target

[Service]
ExecStart=/root/node-v9.8.0-linux-x64/bin/mproxy -p=1000 --b=127.0.0.1:8118 tunnel
Restart=always

[Install]
WantedBy=multi-user.target

然后运行:
systemctl daemon-reload
systemctl restart mproxy
systemctl enable mproxy
服务器端就搭建好了。


在本地机器mac上,安装node环境。
npm install mproxy -g
mproxy -p=2000 --b=vps-ip:1000 tunnel
然后设置本地机器的浏览器的http代理服务器为127.0.0.1:2000 ,浏览器即可翻墙。但是不稳定,
所以最好还是搭配chrome+switchyomega来使用。

注:此翻墙术不稳定,不建议使用它。
----------------
 


另外一个mproxy:
http://www.it-soa.eu/en/resp/mproxy/
http://www.it-soa.eu/en/resp/mproxy/intro.html
http://www.it-soa.eu/en/resp/mproxy/download.html
--------

https://github.com/xybu/cs497-sandbox/tree/master/mproxy

亚马逊可能成为全球最大数字货币交易所


亚马逊公司近期注册绑定了三个与数字货币相关的域名,它们分别是:amazonethereum.com,amazoncryptocurrency.com和amazoncryptocurrencies.com。这一举动引发了媒体和金融机构的猜测,认为亚马逊有可能很快会接受以数字货币进行支付的交易方式。但亚马逊支付公司的副总裁Patrick Gauthier对财经媒体CNBC澄清称,此举仅是为了保护亚马逊的品牌免受侵权。然而,这一平淡的解释显然满足不了数字货币爱好者的脑洞,美国做空机构GeoInvesting的创始人Maj Soueidan做出了一个大胆的猜想:亚马逊不仅会接受数字货币支付的交易方式,还有野心成为全球最大的数字货币交易所。Maj Soueidan认为,如果仅仅是为了接受数字货币支付,一家公司没有必要注册这样的域名。所以他认为这背后肯定有更大的“局”。他还在“开脑洞”的基础上为亚马逊算了一笔账:假设如盛宝银行分析师Kay Van-Petersen预测的那样,未来比特币每日交易量达到1.75万亿美元(这一预测本身也非常大胆,将比特币价格目标设定在10万美元/枚),按照比特币交易平台Coibase收取的1.49%手续费来计算,那么当亚马逊作为“全球最大数字货币交易所”就能够赚取高额的手续费,此外还有比特币升值带来的巨额收益。这还不包括以太币、莱特币等其它币种:Maj Soueidan还认为,这样做不仅会大大增加数字货币的可靠性,对亚马逊公司本身也是一个有利的举措.

工行市值超越摩根大通再次成为全球第一大行


本周二(1月23日)上海股市收盘时工商银行的股价为7.49元,全天涨幅达4.46%,成交金额达44.51亿元,总市值达到26694亿元人民币,按当前人民币美元的6.4汇率,约为4170亿美元。此前位居全球市值最大行的摩根大通在同日总市值为3967亿美元。对比全球市值最大的五家银行,在净利润方面,以2016年为例,工商银行和建设银行位居全球前两位,分别为2791亿人民币(即402亿美元)和2314亿人民币(即333.37亿美元),而摩根大通、富国银行和美国银行的净利润分别为247.33亿美元、219.38亿美元和179.06亿美元。中国的银行在净利润上遥遥领先,美国则在市值上领先于中国。在市值方面,工商银行近年来也是起起伏伏。其在2006年上市后总市值约2100亿美元,是当时全球第三大银行,位居花旗和美国银行之后,摩根大通当时排在第五位,市值约为1660亿美元。自从上市以来,工行市值一直随着股价波动上下起伏,这也并非首次登上全球市值第一银行宝座。在2007年股市高峰期,工商银行的市值曾达到3740亿美元,成为全球市值第一银行,随后连续6年保持这一排名。后来其股价下跌,市值也相应缩水。今年以来,还不到一个月的时间,工行股价就大涨超过20%,一举超越摩根大通成为全球第一大行。

为解救债务困局,中国会再次开动印钞机吗?

作者: 孙骁骥
近段时间,中国的债务问题受到了很多讨论。中国的企业债、政府债、居民负债在过去的几年当中都呈现了很高的涨幅。根据麦肯锡的一项报告,2022年前,中国整体债务规模将达到355万亿。
但经济逐渐陷于低增长的中国,偿债能力却愈加受到质疑。债务问题,已经成为了国际投资者非常担心的隐患。这对于急需外资来“救急”的中国经济而言,显然是雪上加霜。
因此,在达沃斯论坛上,我们看到中国明确表示将计划在三年内控制债务规模。这似乎是在主动向国际传达一个稳定的讯号。“我们对打赢这场战役充满信心,思路也非常明确”。中国的经济代表这样说道。
如今,债务压顶的中国承诺几年内解决债务问题,会不会也走上美国的老路,依靠货币贬值,以稀释货币的方法稀释掉过去欠的债务。或者说,中国有其他的办法解决债务困局。最关键的问题是,在“忙着还债”的大背景下,普通人的钱袋子到底还安不安全?
一、过去十年“撒币”成性,如今补救压力山大
通常来说,一个国家的债越多,借助通货膨胀来减轻债务负担的吸引力就越大。了解货币史的人都知道,货币的历史其实就是财富再分配过程。通过增发货币,国家不仅可以藉这种方式来摆脱部分债务,而且还能使自己的财政更加充实。
货币发行过量,受益的是政府、与政府接近的国企、某些富人。不论在什么国家,由央行增发的货币首先会流入政府部门,以及接近政府与权力的企业。当资产价格全面被抬高后,钱才会流进老百姓腰包。
众所周知的例子就是美国。美国在全球“大撒币”,使得美元成为全球流通和储蓄最多的一种国际货币。与此同时,过去几十年,美国逐渐从一个制造型国家变成消费与金融主导的国家,大量借贷购买商品、借贷消费的流行,使得美国欠债额度巨大。这样一来,美国政府有很强的动机来通过其联储系统令美元贬值,以自动稀释掉债务。
这条路会是中国要走的路吗?至少在目前看来,可能性并不大。主要的原因在于两国的国情不同,债务发生的背景不同,因此处理的办法也不可能一样。
在债务问题发生以前,中美两国都经历了“大撒币”的过程,但是当年的美国“大撒币”是面向国际,让美元在全球范围内流通。据统计,美国的债务自上世纪60年代开始经历了七十八次上调,债务上限达到20万亿美元,在今年的3、4月债务又将上调。
与此同时,美联储开动印钞机,猛印美元,这些美元长期流向美国以外的地方。联储的数据显示,美元M2在2017年底达到13.8万亿,对比之下,在十年前次债危机发生的时候,美元M2总量只有7万多亿。总货币量在十年之间,接近翻倍。
但是,中国近十年的“大撒币”并没有撒向国际,而是几乎全部撒向国内,人民币也并不是一种完全市场化的货币。我们参考人民银行公布的M2增量,会惊人的发现自从08年金融危机以后,中国已经超过美国成为全球最大印钞机,大把人民币撒向国内。
统计显示,去年12月中国M2总量为167万亿人民币,但在2008年的时候,M2只有40万亿左右。与此同时,从2008年至2016年,中国三大主体的债务杠杆从125%持续上升到了超过200%,企业债务增加幅度最大。
中国在这期间货币增加的比例,就要比同时期的美国要高得多。由于这些钱在十年间大量流向国内不动产市场,因此没有造成高速的通货膨胀,但却直接造成了现在大城市的高房价。物价上升远比房地产缓慢,反而稀释了人们对于通胀的感觉。
可见,中国的债务问题不像美国,美国可以在很大程度上诉诸于国际市场。中国的债务大部分都是内部消化,出现问题也是内部解决。这就使得中国不可能是像美国那样仅仅依靠货币贬值来稀释债务。
由于之前这些年挖的坑实在太大,现在的货币政策根本就不敢继续“大放水”,即使明知道放水能稀释债务。中国的M2月增量百分比,已经从去年5月年开始下降到了个位数。此前,中国在长达近十年的时间里,M2增量百分比高达十几甚至接近三十。
形象点说,由于长期服用壮阳药加上不节制,身体已被掏空,现在的治疗方法一定是建立在“停药”+“节欲”的基础上,再加上其他的改善身体的疗法。
开动印钞机这种做法有点过时了,既不合时宜又副作用明显,不应该是中国将要采取的主要套路。那么,我们最有可能采取什么套路来解决这个问题呢?
二、危机与问题不会消失,它只会被不断转移
前段时间召开的中央经济工作会议有意回避谈到债务,其实这等于宣告中国不打算太过于紧缩的控制信贷规模与货币供应。在金融领域“勒脖子”在某种程度上是威慑性和象征性的举动,如果完全枯竭流动性,那么如今的国内银行和企业很快就要窒息而死。
实际上,我们也看到,中国央行一直在通过各种中短期借贷工具向市场释放流动性。
中国的央行在这些年搞出了一系列定向的借贷便利工具(MLF、SLO、SLF等等各种“麻辣粉”和“酸辣粉”),来为市场提供中短期的流动性并调节利率。这一方面加大调整利率的干预力度,另一方面就是考虑到在货币与信贷紧缩的时期,银行等金融机构有可能出现流动性不足的窘境。实际上,这等于是在信贷供给面搞了一个“供给侧改革”。比起过去狂发M2的老办法,无疑要“文明”很多。
以上的一系列做法就等于是在向经济体持续输“营养液”,不至于让企业和银行一下子肚子就被饿扁。在今年1月,央行的单周货币净投放又创一年新高,超过8000亿元。不过,央行在维持一定的流动性并且调节利率的同时,最终还是必须要想办法,把中国经济严重亏空的身体给补起来。
这些“补身体”的疗法可能会是什么样的?我们不妨来听一下专家的说法:中央经济工作会议,也向外界透露了一个讯息,如果借贷更多地来自家庭部门的话,中国更有可能会允许债务增长。
最近的实际情况也正是这样:抵押贷款和其它类型消费贷款在不断增加,从而促进了家庭借贷和开支的增长(实际上就是由全民‘买单’,由全民承担债务。)官方也曾明确表示希望有更多的消费支出,以使得中国的经济增长更加平衡。
可以说,中国的监管部门和企业并不像国际机构那样担忧债务。国外机构担忧中国债务,主要是针对投资角度而言,毕竟去年中企海外发债超过1800亿美元,难免引起机构担忧。
但国内则是另一番景象。某上市企业高管那句著名的话,颇能看出他们目前对于负债的态度:债务就像虱子,身上虱子多了,自然也就不觉得痒。为何“不怕痒”,原因在于“皮厚”。
这个时代,债务欠越多的越是老大,当然前提是你要有后台,自然会有人和机构来帮忙善后中国的企业序列当中的“亲儿子”-国企恰恰是债务最重、偿债能力最弱的一群。国家对此绝不会不管。
随着中国统计数据造假的事件发酵,人们也越发意识到中国经济增长下行、乃至停滞的现实性。这说明,企业还债能力相应也会呈下降趋势,其继续举债的能力下降,加上现在利息支付的压力,可能会使得各种掩人耳目的资金空转行为增加,增加银行业经营风险,同时企业再投资意愿下降,也会使得经营景气度下降,让经济进一步承压。
因此,无论是开动印钞机稀释债务,还是直接偿债,都变得越发不现实。解决债务的问题,具体还得依靠用新债偿旧债的办法,并依靠市场力量转移债务。
在新债偿旧债方面,企业直接发债的空间依然没有扩大,尤其是关于被严重管控的地产开发项目和产能过剩项目,发债几乎停摆。据统计,去年企业债券市场几乎同比少发行了2.55万亿,全年发行不到5000亿。
不过,相比于备受关注的企业债,政府债务和居民债务的比率相对没那么高,有必要时可以用它们来填补企业债的窟窿。因此,以往直接用新债偿旧债的方法可能会被“挖东墙补西墙”的方法取代。
这可能造成两个趋势:居民债务进一步加杠杆。另外,专项金融债的发行上,国家或许会有更大的力度。实际上,后者也可以理解为当年基础建设投资在今天的升级版。
企业债的窟窿靠政府债和居民债来填,大量的债务作为一种资产被包装过后卖向投资市场。此情形不禁令人想起次债危机前夕的美利坚。其实,一切都是换汤不换药。不用想太多,记住这句真理就行:危机与问题不会消失,它只会被以各种方式不断转移.

美国家庭为何“养小不养老”(因为美国福利保障制度好,老人不需要儿女来“养老”,所以你说美国好不好?)

C 先生移民美国後,有份很好的工作,娶了一位黄头发蓝眼睛的美国媳妇,公正地说,这位美国媳妇的心地很善良,她在医院工作,有时会亲自做些美食送给住院的孤寡老人,但就是不习惯与已经取得美国永久居留权的公婆住在一起,尽管家里有两个孩子需要有人照顾,但夫妇俩商量好了,公婆每年来美探亲与他们共住的时间不能超过叁个月。老人只有这麽一个儿子,虽然极不愿意,但也无可耐何。即使如此短暂的共处,由於生活习惯的不同,也不断闹些家庭矛盾,并最终导致家庭破裂…
耳闻目睹这些发生在自己身边的活生生的事实,再加上残存在脑子里的许多越传越离谱儿的‌‌“丑闻‌‌”,我也和不少人一样,很仓促地下了一个‌‌“美国家庭不养老‌‌”的结论。
但是始终心存疑窦:像美国这样高度发达又颇讲文明的国家,怎能频频发生‌‌“人到老了没人管、病死家中无人知‌‌”这样的悲剧呢?直至最近亲自接触的一件事儿,才让我对自己先前的‌‌“结论‌‌”打了更大的问号,逼着我进行了一番新的求索。
起先,接触一位老太太,九十叁岁高龄了,仍然独居一处,女儿女婿对她不放心,几次诚心诚意地劝她搬过来跟他们一起住,可是老人就是不愿意,她强调了自己‌‌“总是觉得一个人比几个人住在一起过得好‌‌”的喜欢独居的思想,还列举了她新近做的几件‌‌“很有说服力‌‌”的事情,什麽自己养花种草啦,上街购物啦,还嫌一个维修工已经做好的水泥地面质量欠佳、自己砸了重做啦,等等,证明‌‌“自己的身体结实着呢,确实不需要他们照顾‌‌”……老人如此这般地拒绝,子女们还能说些什麽呢?要知道,美国人特别注意尊重人,特别是尊重对自己有养育之恩的老人的意愿。
後来又发现,像这样‌‌“固执‌‌”地迷恋独居的老人并非少数,而是很多。有一位八十多岁的老太太,儿子是资深教授,女儿是餐馆老板,他们都很有钱,也都愿意把老妈接到自己家里瞻养,可是偏偏老太太不同意,她觉得跟子女们住在一起不自由,八十四岁了,还自已开着车子到处转游。子女们没法,只好在她的身上安了报警器,有一次老太太心脏病犯了摔倒了,报警器一响,医生马上知道了,赶紧开了救护车来,把她抢救了过来。
足见美国家庭的‌‌“养小不养老‌‌”,也并非都是子女的不孝,而是源自老人爱独居。其实爱独居的何只耆老一族,最近的一项调查表明,具有这种思想的美国人,白人占百分之七十二,非裔占百分之六十八,西裔占百分之六十,亚裔最少,占百分之四十九。我想本文开篇列举的几个事例,大概就是在多数美国人爱独居这样的大背景下发生的。
但是必须弄清,子女爱独居同对老人不孝顺之间不能划等号。事实上,许多美国人还是很重亲情的,美国的孝子也不少。在如今的自由市场环境里,许多美国人为了谋生,背井离乡,到外地发展,但他们人离心不离,每逢节假日,尽量地开车、坐飞机往回跑;更有一些人,为了妥善解决老人爱独居和子女不方便照顾的矛盾,他们宁愿放期高薪工作和锦绣前程,提前退休或另找工作,举家搬到老人附近居住(据美国‌‌“养育子女‌‌”站2006年对1353名成年人调查结果显示,就有72%的回应者住在父母家附近);而大学毕业後就留在父母身边找工作的年轻人,近年也呈逐渐上升的趋势。
其实,岂此只有美国人爱独居,看看以得享天伦之乐为荣的中国人,爱独居的也不少。最近回国就碰到这样一件事,对我触动很大,一对老年夫妇退休后,在大城市工作的儿子把他们接到自己家里住,孩子家庭条件很好,对老人又很孝顺,但是住着住着,两位老人还是觉得在这里享福,不如在自己家里自由自在,最终还是搬回老家来了。如今,像这对老人这样选择逃离‌‌“人伦乐园‌‌”的越来越多。如果向年轻人问卷调查,刨去希望老人继续为他们的小家庭做出奉献的因素,我想乐于与老人分居的一定也不少。
一位致力于研究中美两国老人生活状况及差异的学者指出,两国老人的晚景之所以截然不同,根原在于文化上的差异:许多中国家长心甘情愿地为孩子牺牲一切,因而希望孩子长大以后对自己孝顺,美国人则认为,培养孩子是一种社会责任,而不是‌‌“自我牺牲‌‌”,孩子回报不是反哺父母,而是努力使自己成才。美国的一家杂志《海外校园》曾就中美‌‌“孝道‌‌”的不同展开专题讨论,得出的结论是:中国文化趋于依赖子女,美国文化赞成独立;中国文化敬重长者,美国文化提倡平等;中国文化中的孝敬以责任、义务为基础,美国文化的孝敬以自由、尊敬为基础;中国传统社会没有为所有人提供社会福利和服务,而美国有比较完善的社会福利保障。显见这一结论,除了文化差异外,还有不可忽视的社会、经济等要素。可喜的是,中国政府正在城乡渐次推行的一系列低保、养老及医疗新措施,将使受惠老人的晚年生活得到一定程度的改善。
人类为了繁衍生存和生理情感的需要而建立家庭,组成家庭的‌‌“硬件‌‌”是构成这个家庭成员的‌‌“人‌‌”和所据有的财产,关於这一些,古今中外概没能外。但是有关家庭成员相互之间的依存关系及相处方式却因国家民族及社会发展阶段的不同而存在差异,加之美国的养老保险搞得比较好,一些无人照料的老人,国家和慈善机构多会出钱出力设立养老院,承担对他们的养老事务,而且许多养老院办的很不错,以致有些独居老人最终需要别人照顾时,在依亲还是去住养老院,相当多的一些老人很乐意地选择了後者.

达沃斯的意外:不再愤怒的特朗普

特朗普来到达沃斯,很少人知道该期待什么。
来的是好战的特朗普?——他来这里是为了指责全球精英们脱离现实,不懂人们真正想要的东西?
来的是想和解的特朗普?——他想换一种不同的语调来对话?
我们听说是第二种。
特朗普触及了达沃斯论坛的许多敏感区域。但很多人还不知道如何去消化其言论,因为他们本来以为这是一只好斗的公牛。
特朗普谈到被遗忘的声音——这是“超级富豪”圈里一个不变的主题,他们逐渐意识到,如果对资本主义制度的信仰想要持续,就必须做出改变。
他说经济成就不仅和产品总量有关,更应该和所有人相关。
他说,做生意不能忘记对员工负有的义务。
批评者们选择显而易见的漏洞进行攻击。比如,所得税削减后,富人将获得更多。企业享受到的减税也远远大于美国中产阶级。
特朗普说“美国第一”并不意味着“美国孤立”。这是演讲的重点。
公平交易,而非贸易战
包括美国总统首席经济顾问、美国国家经济委员会负责人加里•科恩(Gary Cohn)在内,很多美国政界领袖都回应了特朗普“公平交易,而非贸易战”的呼声。
有人担忧,在特朗普领导下的美国将出台一系列的贸易壁垒。与此同时,参加达沃斯论坛的多数政府领导人都在为全球化大唱赞歌,包括印度的纳伦德拉·莫迪、加拿大的贾斯汀·特鲁多和法国的伊曼纽尔·马克龙。
但如今我们听到了一个有所不同的宣言。特朗普说,美国不想要贸易战,要的是公平交易。
对韩国等国家来说,这个表态可能会很意外,因为这周美国对进口太阳能电池板和洗衣机加征关税,这些国家首当其冲。
特朗普的论点是这样的:
自由贸易的规则是二战后建立起来的,当时美国的经济利益植根于其他国家经济的成功发展。
这些国家成为美国产品的客户。
这个情况变了,中国成了更强大的经济体。
亚洲新兴市场、南美和欧洲现在都在全球贸易的竞争中展现实力。
特朗普说,国家计划、知识产权盗窃和出口补贴是全球贸易的新武器,并被用于对付美国。
“公平互惠的交易”成了美国的新口头禅。
如果美国政府认为没有得到这样的待遇,总统将采取行动,比如,通过一项行政命令,退出亚太地区伙伴关系协议(TPP)。
互惠互利
这是一个还没有落地的信息。
投资公司贝莱德(BlackRock)首席执行官拉里·芬克(Larry Fink)对我说:“我不认为重新审视一些不对称的条款是不恰当的。”
“现在有些国家非常强大,非常发达,这将是一场漫长的竞赛。”
他说:“世界正在受益于全球贸易,我们需要找到创造更多贸易的途径,以使全球更多人受益。”
美国仍然是一个贸易国家,其从全球化中得到的经济利益要远远大于从贸易保护主义措施中所获得的利益。
这条基本经济常识使得特朗普只能采取不同的语调——尤其是面对那些能够左右资金投向的商界领袖和投资者时。特朗普不能像面对国内“铁锈地带”的失业工人那样对投资人发表讲话。
所以特朗普说,美国已经准备开展“互利的”双边交易。
他甚至表示可以与TPP重新接触。在贸易领域,这是特朗普2.0版。
过去特朗普可能是愤怒的,但今天,经济现实软化了这位总统。

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


特朗普在达沃斯经济论坛上的演讲全文

It’s a privilege to be here at this forum an business and science diplomacy and people from world affairs gathered for many, many years to discuss how we can to advance prosperity and peace. I’m here to represent the interests of the America people and affirm America’s friendship and partnership in building a better world.
很荣幸来到这个论坛,商界和科技各界人士很多很多年都来到这里讨论如何推动繁荣和和平。我来到这里,代表美国人的利益,申明美国人构建更美好世界的友善和参与意愿。
Like all nations represented at this great forum, America hopes for a future which everyone can prosper and every child can grow up free from violence, poverty, and fear. Over the past year, we have made extraordinary strides in the U.S. We’re lifting up forgotten communities, creating exciting new opportunities, and helping every American find their path to the American dream. The dream of a great job, a safe home and a better life for their children.
和出席这个伟大论坛的所有国家一样,美国希望营造一个未来,让所有人都富裕起来,每一个孩子都能远离暴力、贫穷和恐惧。过去一年,美国取得不同寻常的进步。我们关照被遗忘的人,给他们创造新机会,帮助每个美国人找到实现美国梦的途径——伟大工作的梦、安全家园的梦,为孩子创造更好生活的梦。
After years stagnation the US is once again experiencing strong economic growth. The stock market is smashing one record after another, and has added more than $7 trillion in new wealth since my election. Consumer confidence, business confidence, and manufacturing confidence are the highest that they have been in many decades.
经过多年的停滞,经济再次强劲增长。股市连破纪录,自我当选以来,股市增加了7万亿新财富。消费者信心、企业家信心和制造业信心都达到几十年来最高点。
Since my election we’ve created 2.4 million jobs and that number is going up very, very substantially. Small business optimism is at an all-time high. New unemployment claims are near the lowest we’ve seen in almost half a century. African-American unemployment reached the lowest rate ever recorded in the United States and so has unemployment among Hispanic-Americans.
自我当选以来,我们创造了240万个岗位,这一数量还在大幅大幅上升。小企业空前乐观。最新的失业申报率接近半个世纪以来的最低点。非裔美国人失业率达到美国有记录以来新低,拉丁裔美国人也是一样。
The world is witnessing the resurgence of a strong and prosperous America. I’m here to deliver a simple message. There has never been a better time to hire, to build, to invest and to grow in the united States. America is open for business and we are competitive once again. The American economy is by far the largest in the world and we’ve just enacted the most significant tax cuts and reform in American history. We’ve massively cut taxes for the middle class, and small businesses to let working families keep more of their hard earned money.
世界见证了一个强大、繁荣美国的归来。我在这里传递这个简单的信息。这是在美国雇人、建厂、投资并获得增长的最佳时机。美国向企业张开怀抱,我们再次获得了竞争力。美国经济现在是世界上规模最大的,我们刚刚推行了美国史上最重要的减税和税制改革。我们为中产阶级和小企业大幅减税,让工人家庭更多留住好不容易赚到的钱。
We lowered our corporate tax rate from 35 percent all the way down to 21 percent. As a result, millions of workers have received tax cut bonuses from their employers in amounts as large as $3,000. The tax cut bill is expected to raise the average American’s household income by more than $4,000. The world’s largest company, apple, announced it plans to bring $245 billion in overseas profits home to America. Their total investment into the United States economy will be more than $350 billion over the next five years. Now is the perfect time to bring your business, your jobs, and your investments to the United States.
我们将公司税从35%直接降到21%。结果,数百万工人从雇主处拿到减税红包,人均高达3000美元。减税预计可以增加美国家庭收入平均超过4000美元。世界最大的公司,苹果公司,宣布计划将海外的2450亿美元利润拿回美国来。未来五年,他们对美国经济的总投资将超过3500亿美元。现在正是把你们的买卖、工作和投资弄回没美国的完美时机。
This is especially true because we have undertaken the most extensively regulatory reduction ever conceived. Regulation is stealth taxation. The U.S. Like many other countries unelected bureaucrats, we have, believe me, we have them all over the place, and they have imposed crushing and anti-business and anti-worker regulations on our citizens with no vote, no legislative debate, and no real accountability.
这肯定没错的,我们实施了最广泛的放松监管。监管就是隐形税收。美国,像许多其他不经选举就当官的国家一样,我们有,相信我,到处都是,他们对我们的公民施加强大的、反企业也反工人的规定,不经选举,不经立法讨论,不真正负责。
In America those days are over. I pledged to eliminate two unnecessary regulations for everyone new regulation. We have succeeded beyond our highest expectations. Instead of two for one, we have cut 22 burdensome regulations for everyone new rule. We are freeing our businesses and workers so they can thrive and flourish as never before. We are creating an environment that attracts capital, invites investment, and rewards production. America is the place to do business, so come to America where you can innovate, create and build.
在美国,这些日子成为过去了。我承诺为增添一个新监管就要消除两个不必要的监管。我们获得最出乎意料的成功。不是二比一,我们出台一个新法规,就取消了22个没用的法规。我们让我们的企业和工人获得自由,他们可以前所未见地取得繁荣昌盛。我们创造了吸引资本、引进投资和奖励生产的环境。美国是一个做买卖的地方,来美国吧,你在这里可以创新、创造、建设。
I believe in America. As president of the United States I will always put America first just like the leaders of other countries should put their country first also. But America first does not mean America alone. When the United States grows, so does the world. American prosperity has created countless jobs all around the globe and the drive for excellence, creativity, and innovation in the U.S. has led to important discoveries that help people everywhere live more prosperous and far healthier lives.
我相信美国。作为美国总统,我总是把美国放在第一位,就像其他国家的领导人也会把自己国家放在第一位一样。但美国优先并不意味着美国孤立。美国增长,世界也增长了。美国繁荣在全球创造了数不清的岗位,美国推动卓越、创造和创新产出重要的发现,让全世界各处的人的生活更加繁荣、更加健康。
As the United States pursues domestic reforms to unleash jobs and growth, we are also working to reform the international trading system so that it promotes broadly-shared prosperity and rewards to those who pray — play by the rules. We cannot have free and open trade if some countries exploit the system at the expense of others. We support free trade but it needs to be fair and it needs to be reciprocal because in the end unfair trade undermines us all. The United States will no longer turn a blind eye to unfair economic practices including massive intellectual property theft, industrial subsidies, and pervasive state-led economic planning.
美国谋求国内改革,创造岗位,推动增长,同时我们也改革国际贸易体系,以促进共享繁荣,奖励那些遵守规则的人。如果有的国家以他国为代价,利用这个体系,那我们不能开放自由贸易。我们支持自由贸易,但贸易要公平,要互利,因为说到底,不公平的贸易对所有人都有害处。美国不会对不公平的贸易视而不见了,包括大规模的知识产权盗窃、产业补贴和泛滥的国有经济。
These and other predatory behaviors are distorting the global markets and harming businesses and workers not just in the U.S. But around the globe. Just like we expect the leaders of other countries to protect their interests, as president of the United States, I will always protect the interests of our country, our companies, and our workers. We will enforce our trade laws and restore integrity to our trading system. Only by insisting on fair and reciprocal trade can we create a system that works not just for the U.S., but for all nations.
这样那样的掠夺行为扭曲了全球市场,不仅危害了美国的企业和工人,也危害了全球。正如我们预计的那样,各国领导人都保护本国利益,作为美国总统,我将永远保护我国、我们公司和我们工人的利益。我们会推行我们的贸易法,让我们的贸易体系正当起来。只有坚持公平互利的贸易,我们才能创造一个不仅对美国,对所有国家都公正的体系。
As I have said, the United States is prepared to negotiate mutually beneficial, bilateral trade agreements with all countries. This will include the countries within TPP, which are very important. We have agreements with several of them already. We would consider negotiating with the rest either individually or perhaps as a group if it is in the interests of all.
正如我所说,美国准备和所有国家谈判互利的双边贸易协定。这包括跨太平洋伙伴关系国家,他们非常重要。我们和其中一些已经有协定了,我们会考虑和其他国家单独或集体谈判,只要符合我们所有人的利益。
My administration is also taking swift action in other ways to restore American confidence and independent. We are lifting self-imposed restrictions on energy production to provide affordable power to our citizens and businesses and to promote energy security for our friend all around the world. No country should be held hostage to a single provider of energy. America is roaring back and now is the time to invest in the future of America.
我的政府也会采取其他果断行为恢复美国人的的信心,让美国人独立。我们取消了对能源生产的自我限制,为公民和企业提供买得起的电力,为我们在全世界的朋友强化了能源安全。没有哪个国家可以只生产一种能源,美国回来了,现在是时候投资美国的未来了。
We have dramatically cut taxes it make America competitive. We are eliminating burdensome regulations at a record pace. We are reforming the bureaucracy to make it lean, responsive and accountable and we are insuring our laws are enforced fairly. We have the best colleges and universities in the world and we have the best workers in the world. Energy is an abundant and affordable. There is never been a better time to do business in America.
我们通过大幅减税让美国具有竞争力。我们以创纪录的速度消除无用的监管。我们改革官僚体系,让它瘦身,更高效,更负责,我们确保法律公平的得到执行。我们有世界上最好的大学,我们有世界上最好的工人。能源多而不贵。在美国做生意真是千载难逢啊。
We are also making historic investments in the American military because we cannot have prosperity without security. To make the world safer from rogue regimes, terrorism and revisionist powers, we’re asking our friend and allies to invest in their own defenses and to meet their financial obligations. Our common security requires everyone to contribute their fair share.
我们还对美国军队进行历史性的投资,因为我们不能只有繁荣没有安全。让世界更安全,远离流氓体制、恐怖主义和修正主义大国,我们请求朋友和盟国也投资各自的防务,履行财政义务。我们共同的安全要求所有人都贡献应有的力量。
My administration is proud to have led historic efforts at the united nations security council and all around the world to unite all civilized nations in our campaign of maximum pressure to de-nuke the Korean peninsula. We continue to call on partners to confront Iran’s support for terrorists and block Iran’s path to a nuclear weapon. We’re also working with allies and partners to destroy jihad it terrorist organizations such as ISIS and very successfully so.
我的政府很骄傲能够领导联合国安理会和全世界做出历史性努力,联合所有文明国家尽最大努力让朝鲜半岛去核化。我们继续要求小伙伴们对抗伊朗,因为他们支持恐怖主义,阻止伊朗拥有核武器。我们也和盟国和小伙伴们一起摧毁了伊斯兰国等圣战恐怖组织,并且非常成功。
The Uniteds States is leading a very, very broad coalition to deny terrorists control of their territory and populations, to cut off their funding and to discredit their wicked ideology. I am pleased to the support that the coalition to defeat ISIS has retaken almost 100% of the territory once held by these killers in Iraq and Syria. There is still more fighting and worked to be done. And to consolidate our gains, we are committed to insuring that Afghanistan never again become as safe haven for terrorists who want to commit mass murder to our civilian populations.
美国领导了非常广泛的联军,否定恐怖分子控制土地和人口,切断他们的财源,让他们邪恶的思想蒙羞。我很高兴支持联军打败伊斯兰国,夺回伊拉克和叙利亚这些杀人者曾经占领的100%的土地。还有更多的战斗和工作要做。为了巩固我们的战果,我们致力于让阿富汗再也不会成为恐怖分子的庇护所,他们想大规模谋杀我们的普通人。
I want to thank those nations represented here today that have joined in these crucial efforts. You are not just securing your own citizens but saving lives and restoring hope for millions and millions of people. When it comes to terrorism we will do whatever is necessary to protect our nation.
我要感谢所有在场加入这场关键战斗的国家。你们不仅保证了本国公民的安全,还拯救勒数百万计数千万计的生命,给他们带来希望。我们会做一切有必要做的事保护我们的国家远离恐怖主义。
We will defend our citizens and our borders. We are also securing our immigration system as a matter of both national and economic security. America is a cutting-edge economy but our immigration system is stuck in the past. We must replace our current system of extended family chain migration with a merit-based system of admissions that selects new arrivals based on their ability to contribute to our economy, to support themselves financially, and to strengthen our country.
我们会保卫公民和疆界。我们还确保移民体系的安全,无论是国家安全还是经济安全。美国是先进的经济体,但我们的移民体系还停滞在过去。我们必须将现在一来全来的大家庭移民链条体系改变成积分制,根据能力和对我国经济的贡献来挑选新人,在财政上支持他们,让我们的国家更强大。
In rebuilding America we are also fully committed to developing our workforce. We are lifting people from dependence to Independence because we know the single-best anti-poverty program is a very simple and very beautiful paycheck. To be successful it is not enough to invest in our economy.
重建美国,我们还要全面致力于发展人力资源。我们让人们从依赖到独立,因为我们知道最好的反贫困项目就是非常简单和非常美丽的工资单。为了获得成功,仅仅投资经济还不够。
We must invest in our people. When people are forgotten the world becomes fractured. Only by hearing and responding to the voices of the forgotten can we create a bright future that is truly shared by all. The nation’s greatness is more than the sum of its production and a nation’s greatness is the sum of its citizens, the values, pride, love, devotion and character of the people who call that nation home.
我们必须投资人。把人忘了,世界也就四分五裂了。只有听听那些边缘人的声音,回应他们的诉求,我们才能创造所有人真正可以共享的美好未来。国家的伟大不仅是生产的总和,国家的伟大是所有公民、价值、骄傲、爱、奉献和那些把国家称为祖国的人的人格的总和。
From my first international G-7 summit to the G20, to the U.N. General assembly, to APEC, to the world trade organization and today at the world economic forum my administration has not only been present but has driven our message that we are all stronger when free, sovereign nations cooperate towards shared goals and they cooperate toward shared dreams.
我参加的国际会议从一开始的七国集团,到二十国集团,到联合国大会到亚太经合组织会议,到世界贸易组织会议还有今天的世界经济论坛,我的政府都来了,而且传达了我们的主张,当自由的主权国家合作致力于共同的目标,合作致力于共同的梦想时,我们所有人才变得更加强大。
Represented in this room are shared dreams. Represented in this room are some of the remarkable citizens from all over the worlds. You are national leaders, business titans, industry giants and many of the brightest mind in many fields. Each of you has the power to change hearts transform lives and shape your country’s destinies. With this power comes an obligation however, a duty of loyalty to the people, workers, customers, who made you who you are.
这个屋子里就有共同的梦想,这个屋子里有全世界最出色的公民。你们是国家领袖、商界巨头、产业大亨还有许多领域里最聪明的大脑。你们每个人都有能力改变心灵,转变生活,塑造你们国家的命运。但将这种能力化为义务,化为对人民、工人、客户的一种忠诚,这才是你们的价值。
Together let us resolve it use our power, our resources and our voices, not just for ourselves but for our people, to lift their burdens, to raise their hopes and to empower their dreams. To protect their families, their communities, their histories and their futures. That’s what we’re doing in America, and the results are totally unmistakable. It’s why new businesses and investment are flooding in. It’s why our unemployment rate is the lowest it’s been in so many decades. It’s why America’s future has never been brighter.
让我们一起,使用我们的能力,动用我们的资源,发出我们的声音,不仅为我们自己,也为我们的人民,减轻他们的负担,给他们以希望,让他们能够实现梦想,保护他们的家人、社区、历史和未来。这就是我在美国做的事,结果肯定是不会错的。这就是为什么新的企业和投资会涌进来。这就是我们的失业率为什么会几十年来最低。这就是为什么美国的未来从来没有这么光明。
Today, I am inviting all of you to become part of this incredible future we are building together. Thank you to our hosts, thank you to the leaders and innovators in the audience but most importantly, thank you, to all of the hard-working men and women who do their duty each and every day, making this a better world for everyone. Together let us send our love and our gratitude to make them because they really make our countries run. They make our countries great. Thank you and god bless you all. Thank you very much.
今天,我邀请大家,共同建设这一不可思议的未来。谢谢主持人,谢谢在场的领导人和创新者,更重要的是,谢谢你们,所有辛勤工作的男人和女人,你们每天完成自己的职责,为每一个人拥有更美好的世界而奋斗。让我们一起对你们表达爱和感恩,正是你们让我们的国家运转起来。你们让我们的国家伟大。谢谢,上帝保佑所有人。非常感谢。

 

把盲目排外称为爱国,是近代中国的悲剧

晚清政府改革与日本明治维新有怎样的区别和联系?这场改革的失败,对现在的我们有怎样的启示?
7月29日,雷颐老师在北京思想食堂发表《为何晚清政府的“改革开放”没有成功》的演讲。通过对历史深入浅出的分析,为在场近百位会员解读清政府是如何错失改革机遇,最终走向覆亡。
晚清改革的失败源于制度滞后,所有变革都非常被动,在外部力量的推动下,不得已一点点做出改变,最终导致了灭亡。
观念和利益的问题
导致清政府的改革滞后
改革滞后有两方面的原因,一是观念的原因,没有认识到世界的变化和现代化对中国的挑战。二是利益的原因,现代性的制度改革影响到皇家的利益。
最早在鸦片战争的时候,林则徐就认为英国的武器那么好,我们应该向英国学习。但是道光皇帝给了一个批示:一派胡言。事实上当时人们就是这种观念。
林则徐作为钦差大臣,做了件在当时犯忌的事,他组织翻译了《四洲志》。魏源在这个基础上搜集更多的资料,编写了《海国图志》。这本书中最重要的一个观点就是师夷长技以制夷,认为中国还是在世界的中心,中国的一切都是最好的,就是武器不如狄夷,只要学习它的武器,就能把它打败。
观点出来,石破天惊,从朝廷到读书人再到一般士绅,只要知道这本书的人,绝大多数都很愤怒,觉得所谓师夷长技以制夷就是溃夷夏之防,为乱阶之倡。用今天的话说,你身为一个高级干部,怎么能主张全盘西化,所以《海国图志》很快被禁了。
作为一个政府和狄夷打仗,他的武器比我好,把我打败了,我要想办法用他的武器,这才是一个正常的政府。但为什么清政府就不允许?
华夏是世界的中心
其他的国家都是狄夷
这里我们要说到更深远的一个传统观念,就是中国历来所谓的国际关系,就是和东亚周边国家的关系,而这些国家没有一个比中国发达。无论是日本、朝鲜、越南,还是其他东南亚有些还不能称之为国家的地方,都是在学中国。
所以中国从春秋时候起,就形成了一个观念,叫作狄夷和华夏,把北边的非华夏文化的称为狄,把南邦称为蛮,把西边的非华夏文化称为戎,把东边称为夷。
这种观念在千百年里发展成一种很深厚的理论:只能用夏变夷,不能用夷变夏。只能我们去感染他们,改变他们,因为那些都谈不上是文明。只有我们是文明的,不可能是我们向他们学习。
外交部一旦成立
中国就不再是天朝上国
所以清政府是没有平等外交这个观念的。
直到1901年签订辛丑条约,在八国联军的强迫下,必须成立一个外交部,中国才有外交部。鸦片战争之后签订南京条约,开放南方五口通商,清政府用一个什么机构和他们打交道?
清政府觉得自己还是天朝上国,不能用外交部,一旦成立外交部,自己就不再是天朝上国了。但是英国的船炮又很厉害,必须得有一个机构来和他们打交道,怎么办?他们想了一个办法,用地方官来跟他们打交道。
清政府觉得特别巧妙,自鸣得意,其实是被固有的观念绊住手脚,非常缺乏远见。
外交权应该是中央的,在近代中国这样的环境下,哪个地方掌握了外交权,地方官的权力就会很大。所以袁世凯当了北洋大臣,北洋军阀做大,而清政府毫无办法。
所以究竟什么是真正的爱国?什么是真正的误国?
是坚持中国有几百年传统,宁愿打败仗也不向狄夷学习,是真正的爱国;还是像林则徐师夷长技以制夷,承认东方有优长之处,是真正的爱国呢?
把盲目排外称之为爱国,是中国近代的一个悲剧。
清政府的禁书
成为明治维新的推动力
林则徐和魏源为启蒙中国人编写的《海国图志》被清政府拒绝,却无意中启蒙了日本人,对日本的明治维新起到重要的推动作用。被“天朝上国”的观念所误,清政府将这本书列为禁书,最后给自己挖了一个坑。
日本找了当时最了解汉语、学问最好的人来总编校订《海国图志》。这个叫岩谷宕阴的人翻译完书,写了一个序说:读完这本书,我不禁为魏源感到悲哀,忠正之士,你写的书,自己的君主不用,反而流落他邦,被我们日本人用了。
从1840年到1862年,22年时间,清政府什么都没有做,因循守旧,空度岁月。
所以1894年的中日甲午战争,是两个不同国家,一个现代国家和一个非现代的国家之间的战争。第一次鸦片战争、第二次鸦片战争、中法战争,都没有给中国带来多大震动,真正带来震动的是甲午战争。
正如梁启超说,中国四千年迷梦是甲午一役而震惊。
革命和改革的赛跑
最终以清政府立宪失败落幕
到1905年8月同盟会成立的时候,中国社会出现三种力量,一是清政府,力量最大,二是立宪派,三是力量最弱小的革命派。这三者的政策互动决定了中国的未来,是改革延续清政府统治,还是革命。而在当时,支持清政府的社会基础阶层都认为立宪是假的。
1910年春天,当坚决反对同盟会的上海商会领导人集体加入同盟会革命党的时候,革命和改革的赛跑基本上已经结束。
这70年来制度非常滞后,清政府的改革每一次都是非常被动,无论是用器物、用枪、用炮、架电线、修铁路、建海军司令部,都是非常被动。
1898年政治体制改革提供了一个机会,但清政府放弃了。对体制内边缘的人用最激烈的手段进行镇压,社会变革的动力就落到了体制外的人身上。体制外的人要进行社会变革,就要推翻体制本身。
清政府一次次错失了最好的窗口期,总是在下一个阶段才做上一个阶段应该做的事。就像一个企业负了大量的债务,不愿意付利息,最后必然破产。
体制的变革和调整
是维护社会稳定的关键
从鸦片战争到辛亥革命,中国社会发生了重大变化。士绅开始投身现代企业,新闻记者、律师等职业出现。社会向现代化社会转型,必然要求政治体制改革。
政治体制不改革,社会矛盾就会越来越尖锐。矛盾积累到最后,整个社会情绪就是宁愿鱼死网破、玉石俱焚而不愿意接受改革。这种情绪占社会主导地位的时候,就为社会边缘的革命党人提供了一个舞台。只要时机合适,这些人一下子就会站到历史舞台的中央,暴力革命就成了不二之选。
借用梁启超1907年写的那一句话:“革命党者,以扑灭现政府为目的者也。而现政府者,制造革命党之一大工场也。”要真正的避免革命和暴力、维护社会稳定就需要不断地进行体制的调整和变革.
------------

"盲目排外"其实是专制政府洗脑的后果之一。

Sunday, 28 January 2018

又一款vpn方案-udptunnel

It allows TCP/UDP/ICMP traffic over UDP tunneling. It's useful to avoid Internet restrictions.

Demo: http://www.youtube.com/watch?v=A0jLF2ipirg 

Updates

  • BSD & Mac OSX support
  • Auto-config scripts for routing

Mobile network prepaid

Requirements

  • A prepaid chip
  • Edge/3G Cellphone able to share Internet
  • A full access Internet connection (home ADSL?)

Usage

So far, I've tested this technique in an OSX machine (connected to cellphone) and a Linux machine (connected to full access Internet connection). Once you have access to mobile operator's portal cautivo, you can access to limited services, such as DNS, and TCP ports distinct to 80 (HTTP). I don't use proxy over TCP because TCP connections receive an arbitrary RESET at any time. Also, I figure out that 53 UDP port has the best performance, with lower packet loss.
You must:
  • identify the public IP address of the machine(vps) connected to full access Internet connection <public_ip_address>
  • choose a common password <your_password>
On Linux server (with full access Internet connection)
./server 5353 <your_password>
On OSX client (with limited Internet access)
./client <public_ip_address_of_linux_vps> 5353 <your_password>
 
Note: You may need a tuntap module for OSX http://tuntaposx.sourceforge.net/download.xhtml if you get an error saying open: No such file or directory
And that's all!!, you'll have a slow (just a bit) but full access Internet connection!. I've measured 0.210 MBPS in download.

How it works

By default mobile provider blocks any packet but UDP packet, unless you pay for the service. My method consists in sending TCP/UDP/ICMP frames as payload of an UDP packet to a known host (your server). Your server reinjects these frames to Internet.
PC to Internet
PC -> Cellphone -> [limited Internet] -> Your server -> [Internet]

Internet to PC
[Internet] -> Your server -> [limited Internet] -> Cellphone -> PC

UDP Packet payload

The messages between your server and PC are UDP packets with the next payload:
 ----------- ------------ --------------------------------------------
|     1    |        2    |                        3                   |
|PACKET_TYPE| PACKET_CMD |      TCP/UDP/ICMP Packet or control data   |
| (1 byte)  | (1 byte)   |               (variable size)              |
 ----------- ------------ --------------------------------------------
Each UDP packet arrives to your server or PC must be disassembled and reinjected to OS network stack.
There are 2 packet types:
  • CONTROL: For authentication and notification
  • TRAFFIC: For transporting another packet (TCP/UDP/ICMP).

It works transparently

For reinjecting to OS network stack I use tun driver. It helps to create virtual network interfaces that receive traffic from an userspace application.
Thanks to the routing scripts (in scripts/) you don't need do anything to get the whole system with Internet access. Routing scripts are called automatically.

Future

  • iPhone port (computer connected to cellphone will not be necessary)
  • Multi-client server (at this time, the server is one client only)
  • Data compressing
from  https://github.com/astroza/udptunnel

网络青年宋潇伟谈国内翻墙软件开发者"破娃“被“人肉搜索”事件

在中国,“翻墙”,成为几乎所有网络青年的共同行为,无论拥护共产党还是反对共产党的,都在努力冲破中共的网络封锁,获取墙外信息。由此中国便出现一批翻墙软件的作者,而他们一旦出现,便要受到当局的打压。网络青年宋潇伟近日对记者讲述了一位名叫“破娃”的女青年,因为开发翻墙软件而遭“人肉”威胁、不得不放弃的事故
“破娃”被迫放弃她的翻墙软件开发已经很长时间了,宋潇伟说:“这位‘破娃’开发了一个翻墙软件,之后她被一个叫做‘恶俗TV’的组织‘人肉’了。这个‘恶俗TV’威胁说如果‘破娃’继续弄这个项目,他们就公开‘破娃’包括身份证、淘宝的流水等等这些真实身份。”
宋潇伟花了四个月时间调查“破娃”遭“人肉”威胁这件事,他说:我发现我所找到的真凶,他们也都曾是积极的‘推墙派’,但是却做了这种事情。我怀疑共产党现在渗透到年轻人中来,说实话这挺让我震惊的。”
宋潇伟表示,他的怀疑是有根据的,他说:“这里有一个最大的问题是他们怎么样具有公安局调取身份证的权限的,而且淘宝也是需要警察去调取的,不是一般人能够调出来的。我怀疑他们有一定的身份。”
宋潇伟表示,四个月的调查,让他看到了一个可怕事实,他说:“这种年轻人,原本是推墙派的,但是他们给共产党利用。现在很多年轻人有技术,却轻易被共产党的话蛊惑,做的行为是给共产党添砖加瓦。这是非常严重的问题,共产党政权非常乐意看到这种局面。”
宋潇伟也是一位网络青年,他因为参与轰动海内外的攻陷共青团数据库事件,揭露了共青团如何组建网络“五毛”大军的内幕,而遭到公安的追捕,不得不逃亡海外。宋潇伟指出:今后,国内仍会有网络青年致力于开发翻墙软件,帮助国人冲破中共的信息封锁,但他们的处境也将会越来越严酷。宋潇伟说:“我希望国外的异议人士和团体,能够多关注国内程序员的开发圈子,如果没有这些翻墙作者开发出这些软件,可能国外的异议人士他们做了些什么活动,国内人士都不知道。越阻碍这种新的沟通,越加深异议人士和普通民众的隔阂。希望国外的异议人士能够多多帮忙这些技术人员。”
来自https://www.rfa.org/mandarin/yataibaodao/meiti/ck-01252018100414.html
--------------
这位“破娃”居然是女青年?哇,这么厉害的女人,我佩服。她就是翻墙程序ssr的开发者。常用网名breakwa11。
 https://github.com/breakwa11/
https://breakwa11.blogspot.com/

如果不是共匪安插在台湾的间谍蔡孝乾被国军逮捕,1950年大陆可能就打下台湾了!

间谍确实可恨,应该被千刀万剐!要不是当年国军中潜伏的共匪间谍太多,国军哪至于那么快被打垮呢?
幸亏,蒋公痛定思痛,来台湾后,全力剿谍,否则台湾早就成了第二个海南。
https://baike.baidu.com/item/%E8%94%A1%E5%AD%9D%E4%B9%BE
相关帖子:http://briteming.blogspot.com/2018/01/blog-post_488.html

Saturday, 27 January 2018

Magical OS

欢迎访问 Magical OS 主页

Magical OS 是一个学习研究而实践制作的操作系统。该系统类似于Linux的早期版本,但在不断完善下,它将成为一个新型的可视化图形系统。
下面是目前制作中的系统效果图:
 目前系统完成了引导模块、内核模块(控制台、系统中断、键盘控制、系统时钟、初始化内存分页)。、
[最后更新的MagicalOS源代码下载]
 本载  2006-5-12
[MagicalOS内存利用分配表]
本站下载  2006-5-4
[相关系统编译、调试工具]
Bochs 2.6 虚拟机 (调试系统)
NASM汇编工具 (编译)
Dev-cpp 4.9.9.2 (编译、连接系统)
UltraEdit-32 (代码编辑器)
WinHex (写磁盘工具)

我们期待着志同道合的程序员加入到OS的开发中,你也能够从中学到东西,一定会令你收益匪浅!

from  https://sites.google.com/site/gdxxhg/

mac上,防火墙程序pf的简单配置笔记


OSX上没有iptables,在10.10以后以pf取代ipfw。相比于iptables,pf一般使用配置文件保存防火墙规则,语法规范上更严谨,但是配置也更复杂、规则冗长。本文记录pf的简单配置方法。
cat /etc/pf.conf,可看到以下已有内容:(忽略注释部分)

1
2
3
4
5
6
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
anchor可理解为一组规则的集合。默认情况下,这里的几行anchor都是苹果留的place holder,实际上没有active的规则。
/etc/pf.conf在以后的OSX更新中可能会被覆盖,最好可以另外建立一个自定义的pf.conf
配置文件必须按照Macros, Tables, Options, Traffic Normalization, Queueing, Translation, Packet Filtering的顺序。
更详细的说明参考pf.conf man page
  1. 添加一个anchor。修改/etc/pf.conf如下:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    scrub-anchor "com.apple/*"
    nat-anchor "com.apple/*"
    nat-anchor "custom"
    rdr-anchor "com.apple/*"
    rdr-anchor "custom"
    dummynet-anchor "com.apple/*"
    anchor "com.apple/*"
    anchor "custom"
    load anchor "com.apple" from "/etc/pf.anchors/com.apple"
    load anchor "custom" from "/etc/pf.anchors/custom"
  2. 建立anchor规则文件/etc/pf.anchors/custom,内容为具体规则。
    常用的规则:
    • 屏蔽IP入站TCP连接并记录:
      1
      block in log proto tcp from 192.168.1.136 to any
    • 转发入站TCP连接到另一本地端口:
      1
      rdr inet proto tcp from any to any port 8081 -> 127.0.0.1 port 80
    经测试,rdr无法转发到另一台外部主机上(man page的示例,只可以转发到internal network),内核开启net.inet.ip.forwarding=1也无效。如需转发到另一个外网IP,需要配合mitmproxy的透明代理
    • NAT,路由vlan12接口上(192.168.168.0/24)的出口包,经由非vlan12的接口转换到外部地址(204.92.77.111),并允许vlan12之间的互相访问:
      1
      nat on ! vlan12 from 192.168.168.0/24 to any -> 204.92.77.111
  3. 使配置文件生效
    1
    pfctl -evf /etc/pf.conf
    -------------------------
    问:可以实现根据域名进行转发吗?
    答:这个可能需要配合mitmproxy了,跟iptables比起来,pf实在太不友好了.
     
    问:如果我要所有的出口流量都转发到本地的1080端口, 
    类似于iptables 的 "iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 1080", 
    pf中该如何做呢?

kcptun-raw:应对UDP QoS,重新实现kcptun的一次尝试

         关于KCP ARQ协议和kcptun请见:
https://github.com/skywind3000/kcp
https://github.com/xtaci/kcptun

UDP断流问题

我们知道kcptun的底层协议是UDP,而很多ISP对大流量UDP会做QoS,这包括了大量issue反映的“断流”问题:在正常运行一段时间之后流量会中断,需要等待数分钟才能恢复,有时候除非更换端口,将一直保持0速度。
kcptun作者对此的解决方法是使用--autoexpire参数设置UDP连接超时并自动重连(补充:UDP虽无连接状态,但仍有会话保持机制),但此举治标不治本,对于QoS频繁的网络环境需要频繁更改UDP端口,而该过程可能会导致kcptun的上层连接(本地TCP连接)中断。
为了解决断流问题,各位网友各出奇招,比如 issue #228 提到的端口随机化、上下行分不同端口等,都能一定程度缓解该问题,然而这仍然都是治标不治本的方法。
你可能理所当然的认为,“下层协议用TCP不就好了”(即kcp over tcp)。是的,ISP对TCP做的QoS要“宽容”很多(完全断流且不能恢复的几率不大),如果将kcptun的下层协议换成TCP,应该可以解决我们的问题?
答案是NO。UDP和TCP的一个重要区别是,UDP是不可靠的、基于message的实时性协议,而TCP是可靠的、基于stream的非实时性协议。而KCP作为可靠的ARQ算法,所依赖的下层协议必须保证实时性,而可靠性并不需要保证。如果我们直接将下层协议换成TCP,则流量会先经过操作系统内核进行拥塞控制和纠错处理,再递交kcp层,这样一来kcp的优化拥塞控制算法就完全没有发挥作用。

伪装TCP流量的可行性

要解决UDP断流问题,不更换下层协议是很难做到的。于是我想到,能不能直接使用网络层的IP packet作为kcp的下层协议。因为边缘路由器一般是在OSI网络层进行转发,所以在公网环境下是可行的。然而我们的客户端都是在ISP内网环境,这将不现实:因为NAT需要跟踪运输层头部数据,如双方的端口信息。后来我发现了 linhua55 同学的 some_kcptun_tools/relayRawSocket 项目,这位同学写了个简单的python脚本实现了“fake TCP to UDP”的中继,通过raw socket来实现带静态TCP头部的IP packet收发,并转发到上层UDP。经测试,这个脚本能一定程度上解决断流问题,但存在带宽利用率不高、不稳定的问题。
受这个项目的启发,我想使用同样的原理重新实现一个简单的kcptun:下层协议更换为带TCP头的packet(通过raw socket或libpcap等实现),使ISP认为这是TCP流量。但这并不是严格的“kcp over tcp”,因为我们完全绕过系统内核的TCP/IP内核栈对流量的管控而直接交由kcp进行拥塞控制和纠错。这样一来,我们我们能够保证下层报文递交到kcp算法时的实时性。
换言之,我们需要 在用户态模拟从IP到TCP的协议栈
在造轮子之前,需要验证这些带了伪TCP header的IP header是否能够在网络上正常收发。于是编写了这么的一个实验程序:
https://gist.github.com/Chion82/699ae432a27507242ea788df324f4e47
该程序修改自网上的一段SYN flood程序。
通过修改IP信息,编译出clientserver两个bin,即可测试本地到服务端的双向连通性。若测试成功,双方都能收到对方的一条text消息。
这个程序使用raw socket实现packet收发,由程序直接拼装TCP和IP报头:在 trans_packet.c 中,借助 struct iphdrstruct tcphdr 两个结构来拼接,TCP头是静态的,置flag SYN=1。
在接收packet时,由于使用了 ETH_P_ALL 过滤器(为什么不使用 IPPROTO_TCP 后面会提到),经过全部网卡的所有packet都会被捕捉,因此要通过判断IP头协议以及TCP头目标端口进行过滤。
这个实验程序说明了伪装TCP流量实现双向通信是可行的。因为要使用raw socket来重写kcptun,我们就称这个项目为“kcptun-raw”吧。

绕过内核TCP/IP协议栈

由于我们在用户态直接使用raw socket发送IP报文,双方的内核都对这个我们手动模拟的TCP连接不知情,因此当内核收到对方发送的IP报文时,内核根据报文中的TCP头信息(这些信息是我们手动拼接的)试图寻找TCP连接跟踪信息并且寻找失败,随即认为该报文是无效的,内核接着会试图“终止”我们模拟的TCP连接,并向对方发送一个RST包。该RST包会导致中间路由器认为连接已被重置,撤销打通的NAT pipe,使得接下来发送的报文都不能到达对方。
因此,我们需要使这些IP报文绕过内核的TCP/IP协议栈,以此来避免内核对我们模拟的TCP连接的干涉。这可以通过Linux的iptablesDROP命令实现。
假设服务端IP为108.0.0.1,模拟TCP连接的端口为888,在服务端的iptables命令是:


1
iptables -A INPUT -p tcp --dport 888 -j DROP
对应的客户端命令是:


1
iptables -A INPUT -p tcp -s 108.0.0.1 --sport 888 -j DROP
在使用了DROP操作后,如果raw socket继续使用 IPPROTO_TCP 过滤器,将无法接收到该端口上的任何报文。因此,我们将使用 ETH_P_ALL,接收流经网卡的全部IP报文。


1
int packet_recv_sd = socket(AF_PACKET , SOCK_DGRAM , htons(ETH_P_IP));
linhua55同学在 Issue #2 中提到Windows下绕过内核协议栈的方法,即通过 ipseccmd.exenetsh 命令。

动态TCP header和模拟三次握手

作者在几个ISP网络环境下进行了测试,发现部分环境下静态TCP报头无法传送到服务端,或是服务端返回的packet客户端收不到,这种情况下需要模拟TCP三次握手过程。另外,将TCP报头的seq/ack参数改为动态自增可以增强稳定性,而有的环境下则必须保持定值。
具体测试结果如下(Issue #2):
  • 广东移动:
    • 服务端ack flag必须置为1,否则客户端将一直收不到服务端的packet。
    • seq/ack序列需要一直保持定值,如果一直自增会被QoS随后pipe被掐断;
  • 广电宽带(广东)和电信4G:
    • 必须模拟TCP三次握手过程,即 客户端SYN->服务端SYN+ACK->客户端ACK ,随后pipe才能打通。
    • seq/ack序列无要求,保持定值和一直自增都可以。
  • 服务器提供商(阿里云等):
    • vps之间通信基本无限制,在防火墙关闭的情况下,packet想怎么发都可以(因为没有经过NAT和ISP的QoS的缘故?)

报文分层设计和流控

在确认了下层协议的实现可行性之后,作者即开始动手开发kcptun-raw。

第一次报文分层

作为隧道,最上层协议当然是TCP,而KCP的下层协议是packet。一开始理所当然的想法是,一个上层的TCP连接对应一个KCP连接,而全部KCP连接共用同一个伪造的TCP连接并在其上传输带伪造TCP头的packet作为最下层传输协议。而最下层的packet封包除了传输多个kcp连接的片段数据(KCP segment),还用于传送命令,这些命令包括建立连接、关闭连接和保活命令等。
这样,一次上层TCP连接从建立到断开的分层流程大致如下:
客户端:
TCP ↓ 新连接 ↓ 接收数据 ↑ 发送数据 ↓ 断开连接
KCP ↓ 新连接 ↓ 发送KCP片段 ↑ 接收KCP片段 ↓ 杀死
packet ↓ 推送新连接 ↓ 推送数据段 ↑ 接收数据段 ↓ 推送关闭连接
服务端:
TCP ↑ 新连接 ↑ 发送数据 ↓ 接收数据 ↑ 断开连接
KCP ↑ 新连接 ↑ 接收KCP片段 ↓ 发送KCP片段 ↑ 杀死
packet ↑ 对方推送新连接 ↑ 接收数据段 ↓ 发送数据段 ↑ 对方推送关闭连接
这看起来没有什么问题。然而这忽略了一个很重要的东西:命令封包丢失。如果丢失的是KCP的数据段封包,这没有什么问题——KCP会自动处理好重发、拥塞和纠错策略,以保证上交到TCP层的数据是正确完整的;但是如果丢失的是建立连接或断开连接的命令封包,问题就很严重了,这会导致客户端的新TCP连接迟迟无法响应、或是其中一方的TCP连接变成“僵尸连接”(其中一方已关闭连接,而主动关闭命令未送达)。这正是为什么TCP需要三次握手和四次挥手的原因:为了处理在边界情况下的各种丢包情况。

MUX层、共享KCP连接

要解决这个问题,我们需要重新设计一次报文分层。因为KCP层以上的数据都是可靠的,因此我们可以共享kcp连接,并在此之上传送命令封包和数据封包。要实现这样的设计,我们要在TCP层之下引入MUX层。MUX即Stream Multiplexing,这样我们可以在唯一的KCP流上进行多路复用。为此我们重新设计在KCP流上传输的封包类型:标识了TCP流ID的数据帧、新连接命令、断开连接命令、保活命令。
其次,考虑到加密封包和checksum验证,最终设计的数据流分层以及对应的payload定义如下:

流控

为什么需要流控?考虑这样的一个情景:服务端的TCP连接在1s内接收了100MB的数据(如果是跑在服务器本机的服务,这个速度很正常),并一下子全部经由KCP传送给客户端,而受服务端到客户端的带宽所限,这100MB数据需要2min才能传输完成,此时服务端的KCP发送队列十分拥塞,如果这时服务端上有另一个TCP连接接收到了数据,这部分数据帧将追加到KCP发送队列的队尾,并迟迟发不出去,直至100MB的数据传输完毕。这样的直接表现是,正在全速下载大文件时,发出的新连接请求要等到文件下载完毕后才得到响应,并发性能极差。
为了避免这个问题,我们需要双向流控来实现双边连接的同步:当对方kcp_recv()速度远慢于己方tcp_recv()速度,导致己方KCP发送队列长时,及时暂停己方的tcp_recv();当己方的TCP发送队列长(表现为非阻塞socket下、send() 后得到 EAGAIN ),暂停己方的kcp_recv(),以增加对方的KCP发送队列长度。





最终实现

在确定了各项设计后,我们可以开始着手开发kcptun-raw了。程序使用非阻塞socket,借助 libev 库实现高性能的事件并发模型,避免使用多线程/进程。
kcptun-raw的开发前后遇到了不少困难,不过最终还是做出来了。经过我的测试,效果还是不错的,单线程下载速度最高在15~20 Mbytes/s,最大并发连接数程序写死了8192(当然一般是到不了这么大的)。

稳定性和保活

为了保证程序长期运行的稳定性,以应对各种不可避免的网络断流问题,我写了两层保活机制:
  • 模拟TCP层保活:packet层的心跳检测,超时则更换客户端端口、重新建立模拟TCP连接。
  • KCP层保活:在KCP流上的心跳检测,timeout时限比TCP层更长,一旦超时,将立即关闭所有上层TCP连接,重新初始化KCP流,并通知对方重新初始化KCP流。
    一般情况下,模拟TCP层的保活可以解决绝大多数断流问题——这正是两层保活的优点:下层的自动重连不会影响到KCP流和TCP连接,而当迫不得已需要重启KCP流时,必须中断全部上层TCP连接,以保证双方数据帧的同步。
经过我的测试和issue反馈,kcptun-raw目前的稳定性已经很不错了。我在软路由上运行kcptun-raw来加速VPN已经大半个月了,期间一直没有重启过。

几个问题?

  • kcptun-raw还有待改进的地方?
    目前kcptun-raw的设计是简化的kcptun,特别是取消了FEC,现在发现取消了FEC后会存在延迟抖动、带宽利用率比不上原版kcptun的问题。日后如果发现有需要,会考虑引入FEC。
  • 4.9内核后引入了BBR拥塞算法,为何还需要kcptun?或者说BBR能否为KCP提供一点改进思路?
    首先,BBR和KCP是工作在两个不同层面的东西:BBR在内核态直接作为TCP/IP协议栈的模块,接管所有TCP连接的拥塞控制,其原理是抛弃老旧的基于丢包检测的窗口控制算法,改为主动探测水管大小,避免网络设备的缓冲区满;KCP则是通过牺牲一部分公平性原则、以大流量换取小延迟的算法,基本原理是激进重传,会消耗20%~30%额外的带宽。经过我的测试,大多时候BBR虽然传输速度比kcptun更快,但是BBR未能解决被QoS的问题:一个TCP连接一旦断流,速度将一直不能恢复,需要重新建立TCP连接方可恢复。这是当然的,因为BBR只是作为接管内核原来的TCP拥塞算法,它是针对per TCP connection而工作的,并没有改变协议栈的分层约定。而kcptun-raw作为上层TCP到下层自定义协议的隧道工具,TCP层以下的协议规则约定是可以自定义的,当下层连接断流了,该层可以自动重连,而这不会导致上层TCP连接的断开,这是解决QoS的关键所在。
  • 另外,快乐膜法师同学基于原版kcptun,也写了一个基于raw socket和伪造TCP的改版,同时支持Linux、MacOS和Windows,并且还有伪装HTTP流量的功能,需要给运营商薅羊毛的同学可以参考:
    https://github.com/ccsexyz/kcpraw
本文程序源码:
https://github.com/Chion82/kcptun-raw

Mac用户还可以用哪些浏览器?

专业的浏览器

这个列表包括被忽视的和过于专业的浏览器。有的不走寻常路,有的专用于特定情况。它们不都能独立作为替代浏览器,但都非常有用。


Fake:为网页而生的Automator

如果你的工作主要在浏览器上操作,就有必要了解一下Fake。你可以用它来创建类似于Automator的网页工作流程。你可以用这个功能完成类似于填写表格的简单工作。

如果要花30美元,你可能不会选择Fake,而是再看看别的。因此,Fake提供了免费试用,让你考虑是否花钱。Fake不会成为你的日常浏览器。然而,如果你想要自动化处理一些网页事务,就不妨一看。

Fluid:一个app打开所有页面

在Mac上没有Facebook或其他社交软件的原生应用。如果你想在一个Mac原生应用中打开任何界面,试试Fluid。输入链接和名称,设定保存位置和网站图标。

很快,你就有了一个Mac应用潜网指定的网站,就像Mac的原生应用。免费试用版中会有一些限制,只要付5美元,就能使用更多功能。

你可以让Fluid全屏显示,然后固定在状态栏上。Fluid更像是一个工具,而不是日常浏览器,它和Fake来自于同一个开发商。

洋葱浏览器:Mac的锡箔帽

洋葱浏览器利用多节点形成加密回路。很长时间以来,洋葱浏览器的安装和设置都比较麻烦,现在则有了独立的浏览器安装包。

这款应用本质上和Firefox一样,但有着最严密的隐私设置。你的历史浏览记录会不断被清除,包括脚本和浏览器插件。这些组件进一步提高了安全性。洋葱浏览器虽然不是防弹衣,却能提供同样的安全感。

洋葱浏览器是一款优秀的辅助浏览器。你可以用它来确保浏览时的隐私记录不会被跟踪。如果你常担心隐私问题,洋葱浏览器就是为你量身定制的。

Omniweb:遗失的经典

在Omni集团成为苹果的生产商前,他们制作了各种应用。其中一款是早期的Mac浏览器:OminiWeb。它比这个列表上的其它浏览器都要早。虽然推广力度不大,你仍然可以在新Mac上使用OmniWeb。

如果你怀念Mac早期的设计语言,OmniWeb是不错的选择。除了怀旧,它还有一些独特功能。

每个网页都有它的首选项。你可以把标签设置为“工作区”,便于快速打开。可以重命名和保存工作区,再在菜单栏中快速打开。你还可以通过简易的菜单栏指令,查看某一网页的网络流量。

如果你喜欢独特功能,OmniWeb是不二选择。如果你只是怀念某些Mac的经典设计,同样也可以选择它。对于新版Mac,你只能用每日生成的测试版,因为最新的稳定测试版还是10.9版本。后者可运行的Mac OS X系统要追溯到10.4版本。

你最重要的App之一.

浏览器或许是任何一台Mac电脑上最常用的应用。这个列表为每位用户提供了独一无二的选择,让大家找到最适合自己的浏览器。你也能在其中找到一个最适合自己的浏览器。

可能大多数时候,Safari还是最合适的——毕竟它是Mac的最佳浏览器。你或许只会用其中一款作为补充,但多下载几个备用没有什么坏处。

原文链接:http://www.makeuseof.com/tag/safari-browser-alternatives-mac/

from https://36kr.com/p/5092368.html
----------

https://dldir1.qq.com/invc/tt/QQBrowser_for_Mac.dmg

日本的垃圾处理/提炼技术越来越牛了


Friday, 26 January 2018

linux vps中的“Device or resource busy” 的解决办法

Quick Start

If you just want enough information to fix your problem quickly, you can read the How-To section of this post and skip the rest. I would highly recommend reading everything though, as a good understanding of the concepts and commands outlined here will serve you well in the future. We also have Video and Audio included with this post that may be a good quick reference for you. Don’t forget that the man and info pages of your Linux/Unix system can be an invaluable resource as well when you’re trying to solve problems.

Preface

To make things easier on you, all of the black command line and script areas are set up so that you can copy the text from them. This does make using the commands easier, but if you’re not already familiar with the concepts presented here, typing the commands yourself and working through why you’re typing them will help you learn more. If you hit problems along the way, take a look at the Troubleshooting section near the end of this post for help.
There are formatting conventions that are used throughout this post that you should be aware of. The following is a list outlining the color and font formats used.
Command Name or Directory Path
Warning or Error
Command Line Snippet With Commands/Options/Arguments
Command Options and Their Arguments Only
Hyperlink

Overview

When you try to access an object on a Linux file system that is in use, you may get an error telling you that the device or resource you want is busy. When this happens, you may see a message like the one in Listing 1.
Listing 1
$ sudo umount /media/4278-62C2/ umount: /media/4278-62C2: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))
Notice that there are 2 commands specified at the end of the output – lsof and fuser, which are the two commands that this post will be focused on.

Introducing lsof

lsof is used to LiSt Open Files, hence the command’s name. It’s a handy tool normally used to list the open files on a system along with the associated processes or users, and can also be used to gather information on your system’s network connections. When run without options, lsof lists all open files along with all of the active processes that have them open. To get a full and accurate view of what files are open by what processes, make sure that you run the lsof command with root privileges.
To use lsof on a specific file, you have to specify the full path to the file. Remember that everything in Linux is a file, so you can use lsof on anything from directories to devices. This makes lsof a very powerful tool once you’ve learned it.
There are many options for lsof, and I have listed summaries for the ones that I find most useful in Listing 2. Anything with square brackets around it (“[” and “]“) is an argument to the option, and a pipe (“|“) means that you can choose one of two alternatives ([4|6] means choose 4 or 6).
Listing 2
+d [directory] Scans the specified directory and all directories/files in its top level to see if any are open. +D [directory] Scans the specified directory and all directories/files in it recursively to see if any are open. -F [characters] Allows you to specify a list of characters used to split the output up into fields to make it easier to process. Type lsof -F ? for a list of characters. -i [address] Shows the current user's network connections and the processes associated with them. Connection types can be specified via an argument: [4|6][protocol][@hostname|hostaddr][:service|port] -N Enables the scanning/listing of files on NFS mounts. -r [seconds] Causes lsof to repeat it's scan indefinitely or every so many seconds. +r [seconds] A variation of the -r option that will exit on the first iteration when no open files are listed. It uses seconds as a delay value. -t Strips all data out of the output except the PIDs. This is good for scripts and piping data around. -u [user|UID] Allows you to show the open files for the user or user ID that you specify. -w Causes warning messages to be suppressed. Make sure that the warnings are harmless before you suppress them.
If you are extra security conscious, have a look at the SECURITY section of the lsof man page. There are 3 main issues that the developers of lsof feel may be security caveats. Many distributions have addressed at least some of these security concerns already, but it doesn’t hurt to understand them yourself.

Introducing fuser

By default fuser just gives you the PIDs of processes that have a file open on a system. The PIDs are accompanied by a single character that represents the type of access that the process is performing on that file (f=open file, m=memory mapped file or shared library, c=current directory, etc). If you want output that’s somewhat similar to the lsof command, you can add the -v option for verbose output. According to the man page, this formats the output in a “ps-like” style. To get a full and accurate view of what files are open by all processes, make sure that you run fuser with root privileges. Listing 3 holds some of the fuser options that I find most useful.
Listing 3
-i Used with the -k option, it prompts the user before killing each process. -k Attempts to kill all processes that are accessing the specified file. -m Shows the users and processes accessing any file within a mounted file system. -s Silent mode where no output is shown. This is useful if you only want to check the exit code of fuser in a script to see if it was successful. -u Appends the user name associated with each process to each PID in the output. -v Gives a "ps-like" output format that is somewhat similar to the default lsof output.
fuser is supposed to be a little lighter weight than lsof when it comes to using your system resources. To get an idea of what “a little” meant, I ran some very quick tests on both of the commands. I found that fuser consistently took only 30% – 50% of the time that it took lsof to run the same scan, but used about the same amount of RAM (within 5%). My tests were quick and dirty using the ps and time commands, so your mileage may vary. In any event very few users, if any, will notice a performance difference between the two commands because they use such a small amount of system resources.

How-To

Hopefully by the point you’re reading this section you either have, or are beginning to get a pretty good understanding of both the lsof and fuser commands. Either one of them can be used to solve device and/or resource busy errors in Linux. Let’s take a look at a few scenarios.
Say that I have mounted a CD to /media/cdrom0, used it for awhile copying files from it, and now want to unmount it. The problem is that Linux won’t let me unmount the CD. I get the familiar error in Listing 4, but you can see that I then use lsof and fuser to track down what’s going on.
Listing 4
$ sudo umount /media/cdrom0 umount: /media/cdrom0: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) $ sudo lsof -w /media/cdrom0 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 2238 jwright cwd DIR 11,0 4096 1600 /media/cdrom0/boot $ sudo fuser -mu /media/cdrom0 /media/cdrom0: 2238c(jwright)
Both commands tell me what PID is accessing the file system mounted on /media/cdrom0 (2238). Each of the two commands also tells me that the process is using a directory within the /media/cdrom0 file system as it’s current working directory. This is shown as the cwd specifier in the lsof output, and the letter c in the output of fuser (appended to the PID). Finally, each of the commands tells me that a process I (jwright) started is using the directory, and lsof goes one step further in telling me the exact directory the process (listed as bash in the COMMAND column) is using as its current working directory.
Armed with this information, I start searching around and find that I have a virtual terminal open in which I used the cd command to descend into the /media/cdrom0/boot directory. I have to change to a directory outside of the mounted file system or exit that virtual terminal for the umount command to succeed. This example uses a simple oversight on my part to illustrate the point, but many times the process holding the file open is going to be outside of your direct control. In that case you have to decide whether or not to contact the user who owns the process and/or kill the process to release the file. Be careful when killing processes without contacting your users though, as it can cause the user who is accessing the file/directory some major problems.
Another scenario is something that has happened to me when running Arch Linux. At seemingly random intervals, MPlayer (run from the command line) would refuse to output sound and started complaining that the resource /dev/dsp was busy and that it couldn’t open /dev/snd/pcmC0D0p. Listing 5 shows an excerpt from the error MPlayer was giving me, and Listing 6 is the output that I got from running the lsof command on /dev/snd/pcmC0D0p.
Listing 5
[AO OSS] audio_setup: Can't open audio device /dev/dsp: Device or resource busy [AO_ALSA] alsa-lib: pcm_hw.c:1325:(snd_pcm_hw_open) open /dev/snd/pcmC0D0p failed: Device or resource busy
Listing 6
$ lsof /dev/snd/pcmC0D0p COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME firefox 4398 jwright mem CHR 116,6 5818 /dev/snd/pcmC0D0p firefox 4398 jwright 84u CHR 116,6 0t0 5818 /dev/snd/pcmC0D0p exe 4534 jwright mem CHR 116,6 5818 /dev/snd/pcmC0D0p exe 4534 jwright 37u CHR 116,6 0t0 5818 /dev/snd/pcmC0D0p
After doing some research, I found that the exe process was associated with the version of the Google Chrome browser that I was running and with it’s use of Flash player. I closed Firefox and Chrome and then tested MPlayer again, but still didn’t have any sound. I then ran the same lsof command again and noticed that the exe process was still there, apparently hung. I killed the exe process and was then able to get sound out of MPlayer immediately.
Through this investigation I found that the problem was not truly random, but occurred whenever Chrome came in contact with a Flash movie with sound. The silent MPlayer problem only seemed random because I was not accessing Flash movies with sound at consistent intervals. Now I’m not meaning to pick on Arch Linux here, because the problem seems to have been present in other distributions as well. Also, I have been unable to reproduce this problem on newer versions of Google Chrome running on Arch Linux, telling me that the issue has probably been resolved.
Listing 7 shows a basic example of how you might use the lsof command to track what services/processes are using the libwrap (TCP Wrappers) library. Keep in mind that the | head -4 text at the end of the command line just selects the first 4 lines of output.
Listing 7
$ lsof /lib/libwrap.so.0 | head -4 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME pulseaudi 1690 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 gconf-hel 1693 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 gnome-set 1703 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6
If you wanted to get a full system-wide view of the processes using libwrap, you would run the command with sudo or by issuing the su command (I recommend using sudo instead thought).
Carrying this example further, we could add the -i option to display the network connection information as well (Listing 8). The TCP argument to the option tells lsof that we want to only look at TCP connections, excluding other connections like UDP. This is a good way study the services that are currently being protected by the TCP Wrappers mechanism. Please note that this command may take some time to complete.
Listing 8
$ lsof -i TCP /lib/libwrap.so.0 | head -10 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME pulseaudi 1675 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 gconf-hel 1678 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 gnome-set 1690 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 metacity 1719 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 gnome-vol 1770 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 firefox 1909 jwright mem REG 8,1 30960 668 /lib/libwrap.so.0.7.6 chrome 1992 jwright 59u IPv4 101427 0t0 TCP topbuntu.local:42427->iy-in-f83.1e100.net:https (ESTABLISHED) chrome 1992 jwright 61u IPv4 124360 0t0 TCP topbuntu.local:40761->208.69.36.231:https (CLOSE_WAIT) chrome 1992 jwright 68u IPv4 12636 0t0 TCP topbuntu.local:35689->iy-in-f18.1e100.net:https (ESTABLISHED)
By using the -t option, you receive output from lsof that can then be passed to another command like kill. Listing 9 shows that I have opened a file with two instances of tail -f so that tail will keep the file open and update me on any data that is appended to it. Listing 10 shows a quick way to terminate both of the tail processes in one shot using the -t option and back-ticks.
Listing 9
$ lsof /tmp/testfile.txt COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME tail 10784 jwright 3r REG 8,1 0 16282 /tmp/testfile.txt tail 10792 jwright 3r REG 8,1 0 16282 /tmp/testfile.txt
Listing 10
$ kill `lsof -t /tmp/testfile.txt`
If you haven’t seen back-ticks (`) used before in the shell, it probably looks a little strange to you. The back-ticks in this instance tell the shell to execute the command between them, and then replace the back-ticked command with the output. So, for Listing 10 the section of the line within the back-ticks would be replaced by the list of PIDs that are accessing /tmp/testfile.txt. These PIDs are passed to the kill command which sends SIGTERM to each instance of tail, causing them to exit.
An alternative to this would be what you see in Listing 11, where you see the -k and -i options of the fuser command used to interactively kill both instances to tail.
Listing 11
$ fuser -ki /tmp/testfile.txt /tmp/testfile.txt: 11106 11107 Kill process 11106 ? (y/N) y Kill process 11107 ? (y/N) y

Tips and Tricks

  • Don’t use the -k option with fuser without checking to see which processes it will kill first. The easiest way to do this is by using the -ki option combination so that fuser will prompt you before killing the processes (see Listing 11). You can specify a signal other than SIGKILL to send to a process with the -SIGNAL argument to the -k option.
  • As mentioned above, the -r option of lsof causes it to repeat its scan every so many seconds, or indefinitely. This can be very useful when you are writing a script that may need to call lsof repeatedly because it avoids the wasted overhead of starting the command from scratch each time.
  • lsof functionality is supposed to be fairly standard across the Linux and Unix landscape, so using lsof in your scripts can be an advantage when you’re shooting for portability.
  • When you are using fuser to check who or what is using a mounted file system, add the -m option to your command line. By doing this, you tell fuser to list the users/processes that have files open in the entire file system, not just the directory you specify. This will prevent you from being confused when fuser doesn’t give you any information even though you know the mounted file system is in use. So, you would issue a command that’s something like
    sudo fuser -mu /media/cdrom
    to save you that trouble. You still don’t know which subdirectory or file is being held open, but this is easily solved by using the +D option with lsof to search the mounted file system recursively.
    sudo lsof +D /media/cdrom/

Scripting

These scripts are somewhat simplified and in most cases could be done other ways too, but they will work to illustrate the concepts. If you use these scripts, make sure you adapt them to your situation. Never run a script or command without understanding what it will do to your system.
For the first scripting example, lets say that it’s 5:00 and you need to leave for the day, but you also have to delete a shared configuration file that’s still being used by several people. Presumably the configuration file will be automatically recreated when someone needs it next. The script shown in Listing 12 shows one way of taking care of the file deletion while still leaving on time, and it uses lsof. This assumes for the sake of the example that every system that has access to the shared configuration file releases it when users are done and logout for the night. Make sure to run this script with root privileges or it might not see everyone that’s using the file before deleting it, causing a mess.
Listing 12
#!/bin/bash - # Check every 30 seconds to see everyone is done with the file lsof +r 30 /tmp/testfile.txt > /dev/null 2>&1 # We've made it past the lsof line, so we must be ok to delete the file rm /tmp/testfile.txt
You end up with a very quick and simple script that doesn’t require a continuous while loop, or a cron job to finish its task.
Another example would be using fuser to make a decision in a script. The script could check to see if a preferred resource is in use and move on to the next one if it is. Listing 13 shows an example of such a script.
Listing 13
#!/bin/bash - # Make sure to run this script with root privileges or it # may not work. # Set up a counter to track which console we are checking COUNTER=0 # Loop until we find an unused virtual console or run out of consoles while true do # Check to see if any user/process is using the virtual console fuser -s /dev/tty$COUNTER # Check to see if we've found an unused virtual console if [ $? -ne 0 ] then echo "The first unused virtual console is" /dev/tty$COUNTER break fi # Get ready to check the next virtual console COUNTER=$((COUNTER+1)) # Try to get a listing of the virtual console we are checking ls /dev/tty$COUNTER > /dev/null 2>&1 # Check to see if we've run out of virtual consoles to check. # The ls command won't return anything if the file doesn't exist. if [ $? -ne 0 ] then echo "No unused virtual console was found." break fi done
This script loops through all of the virtual console device files (/dev/tty*) and looks for one that fuser says is unused. Notice that I’m checking the exit code of both fuser and ls via the built-in variable $?, which holds the exit status of the last command that was run.
That’s just a small sampling of what you can do with lsof and fuser within scripts. There are any number of ways to improve and expand upon the scripts that I’ve given in Listing 12 and Listing 13. Having an in-depth knowledge of the commands will open up a lot of possibilities for your scripts and even for your general use of the shell.

Troubleshooting

Every time that I try to run the lsof command on my Ubuntu 9.10 machine with administrative privileges, I get the following warning:
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/jwright/.gvfs
This warning occurs when lsof tries to access the Gnome Virtual File System (gvfs), which is (among other things) a foundational part of Gnome’s Nautilus file manager. lsof is warning you that it doesn’t have the ability to look inside of the virtual file system and so it’s output may not contain every relevant file. This warning should be harmless, and can be suppressed with the -w option.
Listing 14
$ sudo lsof | head -3 lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/jwright/.gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 8,1 4096 2 / init 1 root rtd DIR 8,1 4096 2 /
becomes something like this…
Listing 15
$ sudo lsof -w | head -3 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 8,1 4096 2 / init 1 root rtd DIR 8,1 4096 2 /
If lsof stops for a long time, you might need to use some of the “Precautionary Options” listed in the Apple Quickstart Guide in the Resources section. The lsof man page also has a group of sections which start at BLOCKS AND TIMEOUTS that may help you.

Conclusion

There’s a whole host of possibilities for the lsof and fuser commands beyond what I’ve mentioned here, but hopefully I’ve given you a good start. As with so many other things, the time you put into mastering your Linux system will pay you back again and again. If you have any information to add to what I’ve said here, feel free to drop a line in the comments section or send us an email.

Resources

  1. Apple’s Quickstart Guide For lsof
  2. A Good Practical lsof Reference By Philippe Hanrigou
  3. Undeleting Files With lsof and cp
  4. Using fuser To Deal With Device Busy Errors
  5. A Good Reference On fuser (Geared Toward Solaris) By Sandra Henry-Stocker
  6. What To Do With An lsof Gnome Virtual File System (gvfs) Error
  7. LPIC-1 : Linux Professional Institute Certification Study Guide By Roderick W. Smith
from http://innovationsts.com/?p=658