Pages

Monday, 31 August 2020

两个古稀老头的搏命:美国大选前瞻


由于疫情的影响,美国媒体曾经有个搞笑的说法:川普和拜登谁能健康的活到11月大选谁就赢得胜利。这个说法也不完全是戏谑——两个加起来153岁的古稀老头,正在演绎美国大选历史上最高龄的对决。而这个对决,不仅影响美国,也肯定影响中国。那么,谁有可能会成为最后的胜者?
一、故事
川建国和拜登其实都是有故事的人。
建国是"移三代"——祖父迫于家境贫寒,19世纪末漂洋过海来美国淘金,后来想衣锦还乡,却被祖国德国取消了国籍,迫于无奈留在美国生了根。三代人矢志不渝的在纽约地产界奋斗,一代比一代强,终于到了他这里登峰造极,不仅把"TRUMP"这个姓挂在了无数金光闪闪的土豪大厦之上,还完成了从商人到政界这个最不可思议的华丽转身,成了地球上权势最大的总统。
1988年,42岁的建国曾经在报纸上登出整版广告,批评美国的外交政策,系统阐述自己对于贸易和外交政策的看法。他还在电视采访中说,我不会看着这个国家糟糕下去,如果我参选,一定会获胜。
爱尔兰后裔拜登则是美国传统政治菁英的代表。学霸出身、法学博士、执业律师,再转入政界。在出任奥巴马的副总统前,曾经连任六届特拉华州的联邦参议员,论履历妥妥的政坛老鸟,基本上代表了民主党传统的路线和形象。
1972年拜登第一次当选参议员不久,他的妻子和当时还在襁褓中的女儿遭遇交通事故不幸去世,两个的儿子也受了重伤,拜登的就职宣誓是在儿子的病床前完成的。为了照顾儿子,很长时间他每天都搭乘一个半小时的火车到华盛顿上班。
二、缺陷
川普在上任后兑现了一系列竞选的"疯狂"承诺,拉开和各国的贸易战序幕,退出国际组织,要求盟国分担防务经费,重新组织各种群等。经济各个指标的表现前期应该说非常亮眼。但是却千算万算没有想到遇到了史无前例的大疫情,不仅让美国经济遭受大萧条以来最严重的创伤,更是在随后引发了蔓延全球的"黑命贵"风潮——特别是在民主党人的推波助澜下,这波选举年的抗议对川普的声望和政绩造成了十分不利的影响。
建国在施政上完全是企业老板作风,少有妥协,并不像传统的政治家,这方面引发的非议也不小。这种一言不合即解雇的风格,在政坛上为自己树立了不少的敌人,导致很多人前脚离开,后脚就反水——比如刚刚出书反川的国家安全顾问博尔顿。最近的则是建国的亲侄女,也出书反川。对于建国的声誉都有不小的影响。这背后也许有政敌的操作,但是也可以看出,建国的阵营,并非铁板一块。
而拜登在选举年一样是丑闻缠身,之前被媒体爆出他的儿子亨特·拜登是中国股权投资基金管理公司渤海华美的董事,2017年10月,亨特仅仅用42万美元就买下了渤海华美10%的股份,而这些股份后来价值高达15亿美元。此外美国媒体还爆出小拜登曾经在乌克兰天然气公司挂职,遭遇乌克兰检察部门调查时,老拜登还以亲自介入说情。
更要命的是,拜登的78岁的高龄对于美国总统这个权高位重的职务也是一种威胁。建国每每戏称拜登为"瞌睡乔",指的是拜登在多个公众场合打瞌睡的往事。比如当年奥巴马在台上讲话,拜登被拍到打瞌睡;2018年老布什的追悼会,拜登又打瞌睡;今年希拉里与拜登视频连线,拜登居然也睡着了……此外还有很多场合拜登言语紊乱,让人感觉有老年痴呆之嫌。一个存在健康隐患的总统如果上台,这对于美国本身也是极高的政治风险。
三、民调
在疫情之中,美国媒体几乎每半个月都会发布自己的民调。这些媒体也有立场之分,比如纽约时报、CNN、华盛顿邮报这是明显左倾、亲民主党的媒体。而FOX、华盛顿时报则是亲共和党的。根据美国学者Tim Groseclose的统计,在目前20家美国主流媒体中,18家是倾向于民主党的,倾向于共和党的只有2家。建国经常骂媒体对他的报道是"假新闻"其实就是这么来的——在媒体上被黑对于他已经是传统,确实没占过什么便宜。
所以美国的民调不能忽视,但是也不是百分之百代表最终结果。实际上在2016年的大选中,建国直到投票前的民调都是落后于希拉里的——选前主流民调都显示希拉里获胜概率在71%到99%之间,但最后是却建国赢了。
在八月之前,大部分媒体的民调都是拜登持续领先建国,优势可谓非常明显,整体民调领先在10个百分点左右。特别是在"黑命贵"运动在全球蔓延的最高潮阶段——也就是6月中的时候,昆尼皮亚克大学(The Quinnipiac University)发起的民意调查显示,拜登以52%对37%的支持率遥遥领先,似乎胜算在握。
但是凡事过犹不及,"黑命贵"风潮向打砸抢演变之后,大部分被惊醒的美国中产阶级虽然在种族这个敏感话题上没有发声,却在悄悄的转变态度。8月28日,传统的民主党票仓、本次"黑命贵"风潮发源地明尼苏达州六名民主党市长联署发表声明,由于对民主党政策失望,转而跨党派支持建国连任。这种来自党内的背叛极为震撼,对民主党可谓沉重打击。
美国专业的民调公司佐格比分析公司(Zogby Analytics)在8月28日发表的最新民调数据显示,8月份以来的选情发生了较大的变化,建国支持率已经攀升到为52%,创下了他执政以来的最佳支持率。
这就是建国天天挂在嘴边的"沉默的美国人会支持我"的来源,这一点上他确实没说错。
四、制度
我们都知道在2016年的大选中,就全国范围内的选票而言,建国落后了希拉里300万票,结果他却赢了。这里面就涉及美国独有的选举人票制度。
大部分民主国家实行的选举制度都是简单多数制,就是全国选民统一投票,谁赢得简单多数谁就是胜者。但美国的选举制度可谓独一特例,他的核心原则是"一州绑定、赢家通吃"。
美国总统选举总共有538票最终决定胜负的"选举人票"。具体是这么来的:每个州的国会议员数目(参议员加众议员)总和(众议员435名,参议员100名),外加华盛顿特区的3票。共计538票。哪位候选人获得超过270票即宣告获胜。
举个例子纽约州有2位参议员与27位众议员,所以共有29张选举人票。参议员每州2人是固定的,众议员却不是,按照美国宪法各州每50万人可选举一个众议员,所以人口越多的州,众议员就越多。比如加州人口最多,其众议员多达55人。
如果按照简单多数的投票原则,小州在人数上吃亏,众议员很少(比如罗德岛州人烟稀少,只有4个众议员),这样就会造成在政治版图上,小州人微言轻,无足轻重。所以为了照顾小州的利益,也考虑当时幅员辽阔,各州投票时间不一致不便于统计,美国的开国元勋设计出了"赢家通吃"的选举制度——候选人只要赢得某个州的胜利,那么代表这个州的所有选举人票都计入他的名下。选举中我在罗德岛哪怕只赢了对手1票,罗德岛州所有6张选举人票也最终归我。
这种"一州绑定,赢家通吃"的选举制度,大大提高了小州的权重,也就造成了哪怕选民票数落后,但是只要在关键的几个州赢得胜利,就能赢得多数选举人票,实现最后的翻盘。举个例子,加州是民主党的传统票仓,建国即便无法获得加州57张选举人票,但他只要在中部"摇摆州"赢得3个小州,一样能弥补加州的损失。1824年的亚当斯、1876年海斯、1888年的哈里森、2000年的乔治·布什、2016年的建国,都是选民总票数落后,却依靠赢得更多的选举人票获胜的例子。
五、对华政策
中国人关注美国大选,更多的还是关注候选人对华政策。因为这和中国人的利益息息相关。
数天前通过的美国民主党最新党纲显示,民主党在对华政策的强硬程度方面空前提升,其实和共和党并不相上下。但是拜登在民主党大会的演说中,只在一处地方提到中国。他说,如果当选将启动在美国境内生产对抗新冠所需医疗设备的计划,让美国"不用再受中国或其他国家"的制肘。
而建国在共和党大会中,在十大施政要点中专门在第三点谈中国问题。该段内容的标题是主题是"终止我们对中国的依赖",列出了5点具体内容:
1、从中国带回100万个制造业工作岗位;
2、为从中国带回工作岗位的公司提供税收减免;
3、对将制造业务带回美国的基础产业(制药和机器人行业)实行100%的费用减免;
4、业务外包给中国的公司将失去政府合同;
5、要中国为让新冠病毒向世界扩散负完全责任。
可以看出,虽然两党对华政策都趋向于强硬,大方向并无分歧,但是在措施上,建国的布局更具体,而且是正在实施。
总之呢,对于中国经济而言,都不是好消息。
六、综述
美国历史上44位前总统平均年龄是55岁,上任时最年轻的是罗斯福总统,未满43岁。2016年建国当选时候已经超过70岁,算是美国历史上最老的总统。
而今看来,这个记录又要创新。无论建国还是拜登,当选都会成为最老总统。但78岁的拜登隐患更大——即便当选且保持健康,也只能干一届。民主党选择他出马,我作为旁观者,其实很不理解。尤其是还要选择不算黑人裔但打黑人牌的哈里斯作为搭档——在如今保守主义回归的风潮下,大部分美国人对于有可能再出现一个黑人总统是心存戒虑的。
8月20日,奥巴马的老婆米歇尔为拜登站台,攻击建国是"错误的选择"。有记者问川建国:你怎么看待这件事?建国调侃说:我今天能站在白宫,就是因为她老公和拜登的失败。否则,美国人民怎么会选择我?
这句话很伤人。但是却也是事实。2020的美国大选,也许还有部分悬念,但是悬念正在减小。
对于中国的很多关心这场选举的瓜众而言,多少也会有自己的倾向。但事实上,在大局已定的中美关系中,谁当总统也许已经不是关键了。
那就放松心态,看场好戏吧。
2020/8/30

美国面临的中国难题

 并不是说所有民主党人都是亲华派,所有共和党人都是反华派。实际上,今年7月皮尤研究中心的一项研究表明,大多数共和党人(83%)和民主党人(68%)都对中国持负面看法。但是,在如何应对中国的问题上,两边的想法却大相径庭。

在民主党这边,对中国政府在新疆的侵犯人权行为,拜登及竞选团队最近终于开始采取更强硬的回应。不过目前还停留在口头上,不确定他们是否会对中国施加具体的政策压力,还是说像以前一样继续强调中美合作的重要性,“在新冠疫情、气候变化等重大问题上,与[北京]合作是非常必要的”。
在共和党这边,议员们逐渐意识到,鸽派的对华政策并没有帮助中国建立更自由的社会秩序。因此,美国在对华长达四十年的鸽派外交之后,现在开始采取鹰派态度。美国左派的政策和立场让中共觉得对自己威胁更少,这些我接下来会详细展开说说。
其中最典型的两个案例是在香港和新疆问题上,美国制裁中共之后中方开展报复。在中共政府的每一轮报复制裁中,被制裁的议员无一例外都是共和党。
概述习近平领导下的中国威胁
习近平领导下的当今中国,是对自由民主世界最大的威胁。
习近平是自毛泽东以来中国共产党最独裁的一任领导人。他在2018年修改了中国宪法,取消了任期限制,便于他可以终身担任中共中央总书记。像那些对自由世界的我们来说理所当然的事情,例如普世人权、宪政民主、新闻自由等公民权利,都和习近平领导下的中国共产党力图打造的独裁政权是格格不入的。这一点中共在自己的内部文件中也提到过。
要了解中共执政理念如何影响人们的生活,看看中国的直接影响范围就很清楚:
新疆已成为世界上压迫程度最高的警察极权地区,很大一部分原因是中共认为伊斯兰教是对其统治稳定的威胁(我明白新疆曾经发生过恐怖袭击,例如2009年乌鲁木齐的“ 七五事件”夺走了近200人的生命。但是,以预防尚未发生的犯罪为名将上百万的民众关押起来,只会使该地区的局势更加极端化。
香港在中共公然违反《中英联合声明》后,已经从亚洲最自由的城市之一变为最不自由的城市之一。学生们因和平抗议而被捕,人们行使言论自由权已经感到不再安全。
台湾拥有自己的护照、货币、军队,最重要的是拥有自己的民主选举,可以说在任何层面上它都是一个独立的国家。尽管如此,中共还是试图说服全世界台湾是中华人民共和国的一部分。最近,中共及其宣传机构几乎每天都在威胁,如果台湾继续追求独立,就要武力入侵台湾。
中国共产党的影响力也蔓延到了其他地区。例如在澳大利亚,昆士兰大学(UQ)的学生Drew Pavlou在校园组织支持香港抗议游行集会后,被学校通知停学两年。值得注意的是,中国驻布里斯班总领事徐洁同时还兼任昆士兰大学的名誉教授,此外中国政府在昆士兰大学资助了至少四门课程。该大学阻止Drew Pavlou发表自由言论,跟这些因素不无关系。估计昆士兰大学担心,如果他们不惩罚Pavlou,会面临中国政府的经济报复。后来,当澳大利亚政府要求对新冠病毒(Covid-19)起源进行独立调查时,中国政府采取报复行动,禁止澳大利亚牛肉的对华出口,并对澳洲进口大麦征收高达80%的关税。类似这样的事件只是中共行为的冰山一角。Clive Hamilton教授2018年的著作《沉默的入侵》(Silent Invasion)有过深入研究,用将近400页的内容详细分析了中国共产党在澳大利亚的影响力。
在美国,中国共产党的影响力同样无处不在。在美国大学就读的中国大陆学生表示,担心同胞会举报自己支持民主或对祖国有负面言论。中共的资本已经深入到很多美国最知名的智库。孔子学院“作为中国政府的一个部门”,在那些开设的大学里压制学术自由。哈佛大学化学和化学生物学系的前主任Charles Lieber因隐瞒自己收取武汉理工大学超过75万美元的年薪,在今年1月被捕。中共向来鼓励人们窃取那些美国纳税人资助的研究。今年7月,联邦调查局(FBI)局长Christopher Wray透露,联邦调查局正在进行的5000项反情报调查中,有近一半都与中国有关。其中许多案件涉及盗用知识产权和盗取商业机密。华为还设立奖励机制来激励员工窃取外国知识产权。
此外,进入美国的芬太尼药物大部分都是在中国生产的,这也加剧了鸦片类药物在美的泛滥。因鸦片类药物上瘾致死的美国人,比在越南战争中死亡的人数还多。中共给中国企业的工业制造补贴给美国铁锈地带(Rust Belt)带来加速衰败,给人们带来的精神绝望在某种程度上无疑也加剧了鸦片类药物上瘾危机。
球星LeBron James在美国一直积极为维护社会正义发声,但对于中国在新疆侵犯人权的行为和对香港和平示威的镇压,他从来没有作过任何发声。在即将面世的好莱坞大片《壮志凌云》(Top Gun)续集中,Tom Cruise夹克背上的图案里特地去掉了日本和台湾的国旗,很可能是为了应对中国的广电总局审查。美国的体育界和电影界一向是维护自由人权的前沿。但是一到中国的问题上,似乎金钱战胜了良心。他们担心被庞大的中国市场拒之门外,这种恐惧战胜了对正义和真理的坚持。
拜登的儿子Hunter Biden和前国务卿克里的继子Chris Heinz是同一家投资公司的创始合伙人,该公司接受过中国最大的国有银行注资。目前还不能证明这其中的因果关系,但是目睹着中共在中国南海建造岛屿并将其军事化,当时的奥巴马总统、拜登副总统和国务卿克里几乎没有采取任何行动。现任美国运输部长兼参议院多数党领袖Mitch McConnell的妻子Elaine Chao与中共最高领导层有亲属联系。中国共产党擅长与美国政界各个党派的精英培养关系,以便在美国政府决策中施加影响力。
伊万卡显然也利用过父亲的职位从中国获得利益。但是,这似乎并没有削弱川普政府对中国的鹰派立场。
中国共产党的影响力已经在美国的学术界、企业界、智库、流行文化和政界等各个领域广泛渗透。考虑到中国政府在本国境内是如何压制民主自由的,以及中共在全球是如何用金钱购买影响力、用威逼利诱让批评者噤声的,中共的影响力应该引起所有美国人的警惕,不论是左派、右派或中立人士。
也不怪人们至今还没有意识到。毕竟,那些跟中国大学勾结、分享数据的美国教授肯定不会在推特上透露他们的所作所为。那些接受华为捐款的智库肯定不会承认他们发布关于华为的正面报道是跟捐款有关。那些体育界和电影界默默的自我审查也很难被大家发现。对你我这样的大众来说,政治腐败都是隐藏在黑暗中的。
川普算是第一个对中共采取鹰派立场、将中国问题作为外交政策核心的美国政治家。包括我在内的许多人估计都看过他2015年总统大选那阵的“ China China China”混剪视频,并嗤之以鼻。但现在社会各领域有越来越多的证据表明,中共领导下的中国在国际舞台上不是一个诚信的玩家,对美国一直以来坚守的民主、言论自由和人权核心价值观构成了严重威胁。无论你爱川普还是恨川普,都不会改变关于中国的这个事实。
与之相比,直到2019年5月,拜登还在告诉民众没有什么可担心的:“中国会抢我们的饭碗? 怎么可能!”

当时众所周知的中共恶行里唯一还没发生的就是后来中共对新冠疫情的欺骗和掩盖。也就是说,在拜登发言时,已经有大量证据说明中国政府的所作所为,但是这些都被有意无意地无视了。他的支持者们继而也会同意和效仿拜登的对华态度。也因为如此,美国面临的中国难题继续存在着。
川普执政期间“对中国采取强硬态度”
川普远非一个理想的总统。他乐于加剧分裂、张牙舞爪、许多方面举止粗野。出席外交谈判的场合时,他似乎每一次都剑拔弩张。

对于普遍欣赏奥巴马执政风格的美国民众来说,川普的举止有时让人想自插双目。
对许多美国人来说川普太让人讨厌了,讨厌到会潜意识地嘲笑他的一举一动,以及川普政府做出的每个决定。在他们读Vox、华盛顿邮报、CNN和纽约时报这些媒体的时候,这种潜意识也得到了强化。这些左派媒体几乎算是拜登竞选宣传的一部分。
纽约时报的Nick Kristof会说中文,并报道了中国好几十年。他似乎深信中国是希望川普连任再当四年总统的,尽管川普政府对中国作出了以下举措:提高贸易关税让大量制造商离开中国,遏制中共在中国南海的扩张企图并制裁参与该军事化扩张的企业,加大针对中共间谍活动的反情报调查,禁止那些与中共军方有联系的学生就读,对华为采取严厉制裁,制裁11名中港官员并宣布取消香港特殊贸易地位(中共官媒《环球时报》对此特别报道,可想而知此事触动了中共的神经),制裁多个侵犯新疆人权的中国官员及实体,增加对台军售并加强与台湾的外交关系等等。
Kristof作为资深媒体人广受读者信任,这也是理所应当的。但就此事来说,他得出这个结论似乎更是期待川普不要连任。像在中国这样不透明的政治环境中,他应该很清楚自己的联络人不可能告诉他习近平希望谁去担任下一任美国总统(在中国,向美国记者透露真实的高度机密信息基本上是叛国行为)。

对于Kristof的上述观点,不需要搏点击量的智库澳大利亚战略政策研究中心进行了更系统的分析,并得出截然不同的结论:“无论北京对川普执政有何评价,可以看出中国最大的愿望是中美能回到奥巴马执政时的亲密关系,两国领导人能频繁会面讨论双边合作。”
CNN重量级主播Fareed Zakaria在节目上说,川普政府进行“互联网清洁”的目标是促使世界变得“在技术上两极分化”。这段视频的前几分钟看得我想大喊:“Fareed老哥,这种技术两极化早在10年前中国政府就开始了,中共几乎屏蔽了所有能想到的外国应用程序和网站!”
阻止中国的硬件制造商为美国的电信网络提供设备,这是有充分理由的。例如,华为在巴布亚新几内亚建立的政府数据中心存在安全漏洞,可以让华为不受限制地秘密访问服务器上的所有信息。Zakaria否认了TikTok正在试图控制和塑造美国公众舆论,但已经有案例表明TikTok在毫不掩饰地对美国用户进行言论审查,并将对中共不利的视频内容删除或下架。TikTok的母公司也在印度尼西亚进行过长达两年的类似言论审查。通过TikTok,中共可以影响和控制数以千万计美国人的观看内容。跟刚才提到Kristof写的那篇文章一样,Zakaria对川普和中国的看法已经不能算是客观报道,而更像是由以下这个问题驱动作出的反应:“我们能找到哪些角度来攻击川普禁止TikTok和微信的这种行为?”
不幸的是,美国除了主流媒体的中国分析之外,其他领域对中国的报道可以说是错误百出。Sarah Jeong在The Verge上发表的这篇文章,几乎可以称得上是主观臆断和错误判断的集大成者。
When it comes down to it, the thorniest privacy dispute of 2020 isn’t about privacy or technology at all — it’s about China. The question “Is Facebook better, worse, or the same as TikTok?” is more or less the same as “Is the United States better, worse, or the same as China?” And in 2020, this is becoming a genuinely difficult question to answer.
本质上来说,2020年的用户隐私争议根本不是关于隐私或者技术,而是关于中国这个国家。 “ Facebook是比TikTok更好还是更坏,还是说它们是一丘之貉?”这个问题,就像是在问“美国是比中国更好还是更坏,还是说它们是一丘之貉?”一样。在当下的2020年,我们对这个问题真心很难作出回答。
如果你真心觉得很难作出回答,那么只能说明:
你对中国的真实生活状况真的一无所知。在中国,目前还有多达6亿人的每月生活费低于150美元(这很大程度上也跟中共政府推行户口政策限制人口流动有关)
你明显并不了解,在中国,任何为社会不公发声或批评政府的人都会面临牢狱之灾甚至失踪(而在美国,Sarah 可以不经分析写出一篇批评美国政府的文章,根本不用担心会失踪或被起诉。这不是正好回答她关于“哪个国家人文待遇更好”的问题吗?)
显然你丝毫没有考虑过,如果一个政府把上百万的本国公民仅仅因为宗教信仰不同就关进类似集中营的设施,这种做法有多么违背道德。
无论多不喜欢川普,Sarah Jeong文章里这些内容都无法成为事实。不过很高兴能看到,《纽约时报》对其发表了一篇反驳文章(尽管该文作者迫于主流舆论压力,觉得有必要特别强调“在美国与中国的战斗中,川普是错误的选择”)。
上面引用的这些文章,集中说明了美国面临这个中国难题的核心。作为左派媒体,对川普采取的唯一立场就是毫无保留的厌恶。现在是川普让中国问题成为了美国外交政策的关键。因此为了迎合左派观众,媒体们想方设法对川普的对华政策进行批评,无论这种批评有时是否言之有据。
如果你是一个政治立场偏左的美国公民,那么你所处的左派媒体环境决定了你读到的跟中国有关的新闻充斥着不实报道。你可能会读到,美国想制裁中国,但是美国本身也不道德。虽然事实已经证明,拜登任副总统期间纵容中国破坏诺言私自让中国南海军事化,但你还是会听到媒体说,中国政府是希望川普来连任总统。左派媒体会孜孜不倦地告诉你,这一切都是川普政府制造的幻觉,他们并不是“对华强硬派”。
就这样,你会潜移默化地怀疑自己,作为一个美国人是不是应该(或者从道义上有没有资格)关心和担忧中国在世界上的所作所为。
就这样,你慢慢地成为了美国面临的中国难题的一部分。
“但是我们不能单打独斗,我们需要盟友!”
不论是前文提到的Fareed Zakaria,还是拜登,还是Nicholas Kristof甚至任何会喘气的人,大家都在强调找到盟友、建立联盟来对抗中国是至关重要的。从2017年上任以来,川普显然还没帮美国找到盟友,这是川普政府饱受的批评之一。
可能大家都喜欢提这个建议,因为听起来很有见地。但事实是,真心觉得提这个建议就够了的人,恕我直言可能脑子不太够用。毫无疑问,我们当然需要盟友。喊出这一句建议可以说毫无难度。
但是在现实世界中,让任何国家(无论是多么亲密的盟友)牺牲他们的短期经济利益,是非常艰难的。回顾2017年,韩国政府允许美国在韩国部署萨德(THAAD)反导弹系统时,中国政府采取了严厉的回击措施,对乐天(Lotte)等韩国企业进行严厉惩罚(乐天为萨德系统部署提供了场所 ),导致韩国企业2017年收入损失约68亿美元。各国领导人都知道,如果作出让中国利益受损的行为,将会给本国企业带来巨大的经济损失。当然,尽管如此,在部署萨德系统的问题上韩国政府还是选择与美国站在一起,帮助我们具备了对华的军事战略优势。
尽管左派媒体一直孜孜不倦地关注川普每天的推文,或者他最近关于风车或水压的吐槽,但还是能看出,各国的人民和领导对于中国共产党全球渗透的关注明显越来越多。川普过去十年中的对华态度始终保持惊人一致。他早在2011年就表示,等有能力的时候会对中国出口产品征收25%的关税。他在这个问题上的坚持,终于开始影响世界对中共的看法。
例如,澳大利亚要求对新冠病毒起源进行独立调查,这种要求哪怕在一两年前都是不可想象的。为什么这么说?因为中国是澳大利亚最大的商品出口市场。在澳大利亚的国际学生里,中国学生占到近30%。这些国际学生支付的高昂学费也是间接为澳洲公民提供教育补贴。作为报复,中国在今年5月大规模提高澳州进口商品关税,并彻底禁止部分商品的进口。这种反制有点类似2017年中国对韩国企业的惩罚,目的是施加压力让商界人士去游说澳州政府,最好对一切跟中国相关的事情都保持沉默。
再举一个例子,加拿大对华为高管孟晚舟的逮捕(应美国的引渡要求)让加拿大遭到了中国极大的报复。不过也表明,加拿大还是致力于维护世界秩序,对正义和法治的维护战胜了与中国做生意获取经济利益的渴望。
英国和澳大利亚都公开表示禁止华为参与5G网络建设,也是在鼓励欧洲各国效仿。法国政府宣布,在特定日期前必须从网络中移除所有华为设备。加拿大也禁用华为设备,不过方式比较低调,以避免中共报复。新加坡避开华为5G,转而选择了爱立信和诺基亚。鉴于香港基本上会失去亚洲金融中心地位,新加坡这个决策的重要性不可轻视。
菲律宾国防部长Belfin Lorenzana公开表示,中共对中国南海的主张纯属扯淡:“他们的所谓九段线区域和历史权利,实际上只存在于自己的想象里。” 这代表着菲律宾总统Duterte过去四年的亲华政策正在悄悄发生改变。
不论你认为川普多么的可恶,但已经能看到有很多国家正在以缓慢而坚定的步伐加入美国对华的立场。
与之相反,德国好像一直在拖后腿。众所周知,德国总理默克尔不喜欢川普,并明确表示她不愿意加入美中博弈。很容易将这个归咎于川普的缺点(例如,“默克尔拒绝与川普合作,因为他太蠢了,他是个浑蛋,等等”)。尽管川普的性格缺陷可能是一部分原因,但默克尔的立场反映更多的是德国优先考虑经济利益的决定。
德国企业与中国开展了大量业务。2019年,中国从德国进口了高达1,080亿美元的商品,占德国GDP的近3%。仅大众汽车一家,2019年在中国就售出了423万辆中国制造的汽车。这些销量并不包含在上面的德国出口数字里。大众汽车在新疆有制造工厂。不出公众所料,大众汽车首席执行官在2019年4月的采访中公开表示没听说过新疆集中营。虽然在这之前,国际社会关于中共在新疆侵犯人权的问题已经进行了长达一年多的报道。
Centre for Russia Europe Asia Studies主任Theresa Fallon一针见血地指出:“对于德国企业而言,一切都与经济利益有关:在往返中国的航班上,闭上双眼,躺平放松,不要费心思考香港或新疆的问题,一心想着赚钱。”

德国公司还向中国人民解放军海军(People’s Liberation Army Navy)供应潜艇用的静音柴油发动机。鉴于美国是中国的主要战略竞争对手,这就跟美国向俄罗斯出售导弹系统、然后俄罗斯将目标对准柏林一样。
德国每年从俄罗斯购买天然气的费用超过100亿美元,但对北约承诺的国防支出(占GDP的2%)却总是提供不足。换句话说,相当于美国纳税人在出资帮德国防御俄罗斯,而德国自己则把资金用来从俄罗斯购买天然气。俄罗斯获取这些天然气的收益之后,很可能用来开发或购买威胁德国安全的武器军备。
坦率地说,德国不算是美国的好盟友。
让德国政治家放弃本国的经济利益,来帮助美国遏制中共的扩张,这是一项艰巨的任务。奥巴马在国际外交上比川普更善于谈笑风生。但是仅靠谈笑风生,是不可能说服德国同意让本国企业遭受像韩国和澳洲企业那样的报复对待,遭受中国政府因不满而采取的经济反制措施。
考虑到中国共产党在全球商界、政界、流行文化和学术界的广泛渗透,让各国领导人主动调整对华态度和政策是一项艰巨任务。在2017年美国迈出了第一步。最近国务卿蓬佩奥在对华政策领域也非常活跃。我们的盟友正在陆续加入。这就是领导力的一种体现。达到最终目标需要时间,但是形势正在朝着正确的方向发展。
同时也请注意,美国自身对中国的制裁行动也不是无效的。最近几周,连中国的国有银行也纷纷进行调整,以遵守美国对中港官员的制裁措施。
为什么美国要提防中共打造的中国梦
邓小平作为中国1979年改革开放的设计师,作为1989年天安门事件背后的铁拳,提出过一个国际策略方针:“韬光养晦,有所作为”。这种韬光养晦帮助中国悄悄积累了庞大的经济和军事实力,甚至几乎要超过美国。而作为美国人我们现在才慢慢地意识到这一现实。
如果你看过电影“非常嫌疑犯”(The Usual Suspects),可能会想起Verbal Kint的经典台词:“魔鬼最厉害的技巧就是说服这个世界他并不存在。”
自习近平从2012年担任中共主席以来,“中国梦”一词已成为中共宣传的重点话术。“韬光养晦”的时代貌似结束了。

与“中国梦”并驾齐驱的是“中华民族伟大复兴”口号,其中中共的扩张意图更加明显,例如:让香港内地化,武力统一台湾,不再“屈服”于过去的西方列强,要在屈辱世纪之后重新成为全球霸主。
习近平在2017年的十九大上的讲话明确表明,中国自认正在与美国进行战略竞争。中共领导下的中国要挑战西方领导下的自由秩序,要展示其中国特色社会主义制度的优越性。中国希望成为世界第一超级大国。
基于本文开篇列出的原因,中共霸权不符合美国的利益。
即使你讨厌川普,至少也要感谢他执政期间的美国终于开始联合世界盟友共同遏制中共对自由民主制度的威胁。如果你希望拜登担任下一任总统,应该警惕他儿子和中国资本的联系、以及他任副总统期间在中国南海问题上的不作为。
即使你在拜登阵营,也千万不要像他一样认为,美国拥有顶尖的智慧和创造力,因此中国根本不构成经济上的威胁。这种理念反映出的是你对中国的无知,不知道中共控制下的中国为了争夺世界主导地位有着多么庞大的驱动力(这种理念可能还带点傲慢,认为亚洲国家不太可能有能力担任世界主导)。

不要仅仅因为是川普帮你开始注意到了中共的威胁,而以此为理由低估这种威胁对世界构成的影响。不要让美国面临的中国难题一直存在下去。

SSR Helper CLI

 A CLI helper of ShadowsocksR Python.

一个命令行界面的ShadowsocksR助手工具 English Document is on the way.Plz be patient~

JavaScript Style Guide NPM

声明

  1. 本工具仅用于技术研讨,使用ShadowsocksR代理访问互联网时请您自觉遵守所在地的法律法规,文明上网,在本工具辅助下使用ShadowsocksR访问国际互联网所带来的问题与开发者无关
  2. 提问前请注意,本工具仅在Linux平台下测试通过,也仅Linux下的问题进行维护,如有其它平台下的需求,欢迎Fork/PR

特点

  1. 使用命令行控制ShadowosocksR Python版本的本地客户端Daemon
  2. 本地可维持了一个SSR服务器列表,并可从中选择服务器使用ShadowosocksR的Python本地客户端连接,且该列表基于分组和备注,易于管理
  3. 可通过友好的CLI或SSR URI手动添加服务器
  4. 在较新的Linux平台(Systemd)下支持开机自动启动服务
  5. 完善的SSR订阅功能支持
  6. 默认开启TCP FastOpen(Linux Kernel 3.7+)
  7. 测试延迟功能

安装

推荐通过 yarn 安装:

因上游相关 BUG,使用 yarn 安装可能出现 (1) does not exist 问题,暂时建议使用新版 npm 解决

yarn global add ssr-helper

也可通过传统的 npm:

npm install -g ssr-helper

依赖配置

本工具仅为 ShadowsocksR Python 的一个CLI,NPM包中并未包括该脚本,您需要自行下载,并在客户端内进行配置

您可以使用如ShadowosocksRR等新的分支版本,但基于稳定考虑仍推荐manyuser版本,可在Home目录下运行以下命令安装:

git clone -b manyuser https://github.com/shadowsocksr-backup/shadowsocksr.git

然后将Python Client的路径配置进来(如您的Python Client安装在/home/noah/shadowsocksr):

ssr config /home/noah/shadowsocksr

命令行使用

现在您已经可以使用SSR Helper了,终端下运行 ssr 即可看到欢迎界面 以下仅对常用命令做以介绍,详细的命令列表可运行 ssr help 查阅

  • ssr config [path] : 配置Python Client的路径,绝对路径
  • ssr add : 手动添加服务器,具备友好的界面
  • ssr add [uri] : 使用SSR URI手动添加服务器到列表
  • ssr connect : 选择服务器连接并设置为默认服务器,具备友好的界面
  • ssr ls : 显示服务器信息,具备友好的界面
  • ssr rm : 从列表删除服务器,具备友好的界面(注:删除后连接不会中断,需运行 connect 命令重新连接)
  • ssr edit : 编辑服务器信息,具备友好的界面
  • ssr local : 编辑SSR本地服务信息,编辑后需要重新连接生效
  • ssr start : ShadowsocksR Python Client Daemon的 start 命令,启动连接,使用CLI配置的默认服务器
  • ssr restart : ShadowsocksR Python Client Daemon的 restart 命令,重新启动连接,使用CLI配置的默认服务器
  • ssr stop : ShadowsocksR Python Client Daemon的 stop 命令,停止服务,使用CLI配置的默认服务器
  • ssr status : 可查看 ShadowsocksR Python Client Daemon的 运行状态
  • ssr startup : 设置服务开机自启,仅在Systemd启动的Linux平台下有效
  • ssr unstartup : 关闭服务开机自启,仅在Systemd启动的Linux平台下有效
  • ssr delay : 测试服务器的延迟
  • ssr-subscribe add [url] : 添加新的SSR订阅地址
  • ssr-subscribe ls : 列出所有SSR订阅地址和他们的当前标号
  • ssr-subscribe rm [label] : 基于 ssr-subscribe ls 打印的标号删除SSR订阅地址
  • ssr-subscribe update : 从已添加的SSR订阅地址获取服务器信息
from https://github.com/noahziheng/ssr-helper

NAT 和 iptables

 

NAT

网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术。 是网络层协议。

目前最常用的端口多路复用NAPT(Network Address/Port Translators)中的Cone NAT型(圆锥型)。

客户机(内网终端)访问公网服务时,其IP和端口会被映射为网关的一个端口,客户机所有访问外网的流量均通过此端口,同时,此端口收到的所有数据包都会返回到客户机。在网关时,两个不同session但端口号相同

通常,家用网络终端通过家用路由器访问互联网就是通过NAT技术,家用路由器会被DHCP服务器分配一个临时的公网IP,用以访问公网;其它终端如手机、电脑和路由器组建一个私网,其中,路由器为网关(NAT服务器),终端设备访问外网服务时,其IP和端口会被映射为网关的一个端口。

NAT 和代理

iptables 的 nat 表, 可以设置 SNAT、DNAT、MASQUERADE。

SNAT 对源IP的转换

是指在数据包从网卡发送出去的时候,把数据包中的源地址部分替换为指定的IP,这样,接收方就认为数据包的来源是被替换的那个IP的主机

  • 正向代理

DNAT 对目标IP的转换

就是指数据包从网卡发送出去的时候,修改数据包中的目的IP,表现为如果你想访问A,可是因为网关做了DNAT,把所有访问A的数据包的目的IP全部修改为B,那么,你实际上访问的是B

  • 反向代理
  • 端口转发

MASQUERADE

是用发送数据的网卡上的IP来替换源IP,因此,对于那些IP不固定的场合,比如拨号网络或者通过dhcp分配IP的情况下,就得用 MASQUERADE

  • 网关

NAT 和 ip forward (IP 转发)

Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将包发往本机另一网卡,该网卡根据路由表继续发送数据包。

# 临时生效:
echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久生效 修改sysctl.conf
net.ipv4.ip_forward = 1

年代向錢看 中國射飛彈到南海,美軍加速部署亞太軍力反制. 捷克參議院議長率團訪台,台歐關係深化

https://www.graphcore.ai/,https://www.graphcore.ai/about,graphcore公司是一家英国公司,它是美国的nvidia公司的竞争对手。

socks5-proxy-by-yuanrenguang715真是好用极了

 自从5月份写了此文https://briteming.blogspot.com/2020/05/socks5-proxy-by-yuanrenguang715.html ,我就一直在用socks5-proxy-by-yuanrenguang715翻墙。

什么flynet (https://briteming.blogspot.com/2019/10/flynet.html), iox (https://briteming.blogspot.com/2020/08/iox.html),bit-tunnel (https://briteming.blogspot.com/2020/03/rustbit-tunnel.html)甚至ss,v2ray都不如它。在pc上,我已经很少用ss,v2ray翻墙。

socks5-proxy-by-yuanrenguang715堪称pc上,最好用的socks proxy程序。

类似的程序还有:

https://briteming.blogspot.com/2020/04/stepladder.html

https://briteming.blogspot.com/2020/04/gsocks5.html

它们的共同特点是都用到了证书(自签名证书就够了)。

看看https://github.com/yuanrenguang715/socks5-proxy/tree/master/server和

https://github.com/yuanrenguang715/socks5-proxy/tree/master/client,里面都有key和pem文件。

Apache添加HTTPS代理,用来翻墙

This summary is not available. Please click here to view the post.

一个支持直播的视频程序:NodeTube

 取自官方的项目介绍:NodeTube是YouTube的开源替代品,可提供视频,音频和图像上传,实时流媒体和内置获利功能。

官方没有详细的文档,自己部署的时候遇到很多坑,这里记录一下。另外吐槽一下这个程序的前端属实是有点简陋。不过反正能用,开源的嘛白嫖也不指望个啥。

系统debian10,安装nodejs10/mongodb/redis:

apt -y update
apt -y install build-essential gnupg curl wget git
curl -sL https://deb.nodesource.com/setup_10.x | bash -
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list
apt -y update
apt -y install nodejs mongodb-org redis-server

注意nodejs的版本只能是10,其他版本跑不起来或者跑起来有问题。

安装nginx/certbot,如果要直播支持还需要安装rtmp模块:

apt -y install nginx python-certbot-nginx libnginx-mod-rtmp

启动mongodb/redis,以及设置一下这些程序的开机自启:

systemctl start mongod redis
systemctl enable nginx mongod redis

现在拉取项目文件/安装依赖:

cd /opt
git clone https://github.com/mayeaux/nodetube
cd nodetube
npm install

修改程序的配置文件:

nano .env.private

如下位置需要改动:

DOMAIN_NAME_AND_TLD='https://nodetube.imlala.best'
INSTANCE_DOMAIN_NAME='nodetube.imlala.best'

如果你需要直播功能,还需要更改另一个配置文件:

nano .env.settings

其中要改动的位置如下:

LIVESTREAM_APP=true
NODE_ENV='production'
RUN_NGROK=false

修改目录/文件的所有者:

chown -R www-data:www-data /opt/nodetube

接着新建一个systemd服务文件:

nano /lib/systemd/system/nodetube.service

写入如下配置:

[Unit]
Description=nodetube

[Service]
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/nodetube
ExecStart=/usr/bin/npm start
Restart=always

[Install]
WantedBy=multi-user.target

启动以及设置开机自启:

systemctl start nodetube
systemctl enable nodetube

编辑nginx的主配置文件:

nano /etc/nginx/nginx.conf

在文件的末尾加入直播需要的rtmp配置:

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application live {
            live on;
            on_publish http://127.0.0.1:3000/livestream/on-live-auth;
            on_publish_done http://127.0.0.1:3000/livestream/on-live-done;
            hls on;
            hls_path /opt/nodetube/hls;
            hls_fragment 10s;
        }
    }
}

接着新建一个nginx站点配置文件用于反向代理:

nano /etc/nginx/conf.d/nodetube.conf

写入如下配:

server {
      listen 80;
      server_name nodetube.imlala.best; # 换成你的域名
      client_max_body_size 0;
      root /opt/nodetube;

      location /uploads/ {
          gzip off;
          sendfile           on;
          sendfile_max_chunk 1m;
          tcp_nopush on;
          try_files $uri @redirect;
      }

      location @redirect {
          proxy_pass http://127.0.0.1:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      }

      location / {
          proxy_pass http://127.0.0.1:3000;
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection 'upgrade';
          proxy_set_header Host $host;
          proxy_cache_bypass $http_upgrade;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
}

接下来用certbot签一个ssl证书:

certbot --nginx --agree-tos --no-eff-email --email xxxxx@qq.com

证书签好了之后,由于这个程序直播界面有一个基于websocket的聊天功能是用的自签证书,这里需要把我们的证书替换掉自签证书,否则聊天功能不能正常使用:

cd /opt/nodetube/keys
mv server.crt server.crt.bak
mv server.key server.key.bak
cp /etc/letsencrypt/live/nodetube.imlala.best/fullchain.pem server.crt
cp /etc/letsencrypt/live/nodetube.imlala.best/privkey.pem server.key

给予正确的文件所有者,否则程序运行的时候报错:

chown www-data:www-data server.crt
chown www-data:www-data server.key

最后重启一下nodetube即可:

systemctl restart nodetube

打开你的域名.

第一个注册的用户自动成为管理员,直播功能,在MY ACCOUNT-Livestreaming.

OBS和FFMPEG推流的方法都在页面内有介绍,自己看着设置就行了。

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

一个极易部署的流媒体服务:Node-Media-Server


现在有很多自建流媒体服务器的方法,最常用的应该是Nginx,但如果是自己想体验一下的话,这个Node-Media-Server比Nginx配置起来要简单很多,而且还有一个简单的WEB面板可以方便的查看一些信息。

这里使用Docker的方式部署,首先安装Docker

curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

一条命令即可完成部署:

docker run -d -p 1935:1935 -p 8000:8000 --restart=always --name nms illuspas/node-media-server

然后我们需要进到容器内,做一些更改:

docker exec -it nms /bin/sh

编辑:

vi app.js

找到下面这一段,更改默认的管理员密码,然后把publish改为true,最后把secret也改一下,例如:

  auth: {
    api: true,
    api_user: 'admin',
    api_pass: 'abcdefg',
    play: false,
    publish: true,
    secret: 'x1x2x3x4x5vhvhkttid'
  },

这样做的话是让推流有一个鉴权验证,不做验证的话任何人知道你这个服务器的地址都能用你这台机器推流,这样会造成滥用。

改完之后退出容器并重启:

exit
docker restart nms

如果上面的重启报错,回显类似什么iptables/DNAT啥的,就直接重启Docker服务吧:

systemctl restart docker

因为我们给推流做了一个鉴权验证,这个时候我们需要计算一下推流的地址,首先要定义一个推流地址过期的时间,这里我假设地址在2019年的7月1日过期,那么将时间戳换算成unix的类型:

date -d "2019-07-01 00:00:00" +%s

执行上述的命令后,得到的unix时间戳是:

1561939200

然后我们把时间戳和之前在app.js内配置的secret进行一次md5加密,格式如下:

echo -n "/live/test-1561939200-x1x2x3x4x5vhvhkttid" | md5sum

注:其中的test是可以自己随便更改的,你这里可以理解为这是一个直播间的名字。

执行完上面的命令得到的md5值是:

2e99dbb982cd4bb0edd485a2d249745c

那么最终我们的推流地址就是:

rtmp://vpsip/live/test?sign=1561939200-2e99dbb982cd4bb0edd485a2d249745c

服务端这边就部署完成了,下面简单说一下怎么用FFMPEG/OBS推流。

安装FFMPEG,这边一切从简,直接用FFMPEG的静态包:

wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
tar -xJf ffmpeg-release-amd64-static.tar.xz
cd ffmpeg-4.1.3-amd64-static
cp ffmpeg /usr/bin && cp ffprobe /usr/bin && cp qt-faststart /usr/bin

然后随便找个视频文件测试一下:

ffmpeg -re -i 230OREC-315.mp4 \
-c:v libx264 -preset superfast -tune zerolatency \
-c:a aac -ar 44100 -f flv rtmp://vpsip/live/test?sign=1561939200-2e99dbb982cd4bb0edd485a2d249745c

现在我们可以访问一下WEB面板看看推流是否正常:

http://vpsip:8000/admin/

这个媒体服务器支持很多种格式,像什么FLV/HLS/DASH都是支持的,相应的拉流地址:

http://vpsip:8000/live/STREAM_NAME.flv
ws://vpsip:8000/live/STREAM_NAME.flv
http://vpsip:8000/live/STREAM_NAME/index.m3u8
http://vpsip:8000/live/STREAM_NAME/index.mpd

自己弄个简单的html页面或者套个Dplayer都是可以的,这里就不多BB了。。这样一个私人直播服务器就搭建完成了。。

参考文献:

https://github.com/illuspas/Node-Media-Server/blob/master/README_CN.md

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

Restreamer:免费的流媒体服务器

这个东西貌似主要用途是帮助你把网络摄像头的视频流快速传到Youtube等提供直播的平台,但它也内置了一个用NGINX实现的RTMP服务器,也可以拿来做普通的直播。

安装docker:

apt -y update
apt -y install curl
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

然后使用下面的命令启动即可:

docker run -d --restart always \
     --name restreamer \
     -e "RS_USERNAME=admin" -e "RS_PASSWORD=cvbm" -e "RS_TOKEN=cvbm"\
     -p 8080:8080 \
     -p 1935:1935 \
     -v /mnt/restreamer/db:/restreamer/db 
     datarhei/restreamer:latest

其中RS_PASSWORD是WEB的密码,RS_TOKEN是推流的鉴权验证。

访问WEB面板:

http://your-device-ip:8080

输入你刚才启动容器时设置的账号密码登录.

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

Owncast:一个人的直播间

owncast是一个单用户的直播工具,带有聊天功能。

程序转码需要用到ffmpeg,建议在一台性能稍好的VPS上安装,安装基本工具:

apt -y update
apt -y install ffmpeg unzip nginx python-certbot-nginx supervisor 
systemctl start supervisor nginx
systemctl enable supervisor nginx

下载解压二进制文件:

mkdir -p /opt/owncast && cd /opt/owncast
wget https://github.com/owncast/owncast/releases/download/v0.0.2/owncast-linux-0.0.2.zip
unzip owncast-linux-0.0.2.zip

新建配置文件:

nano config.yaml

写入如下配置:

ffmpegPath: /usr/bin/ffmpeg
webServerPort: 8080

instanceDetails:
  name: imlala
  title: MapleStory Solo Lotus
  summary: "Welcome"
  extraUserInfoFileName: "/static/content.md"

  logo:
    small: /img/logo128.png
    large: /img/logo256.png

  tags:
    - game
    - music
    - tech

  socialHandles:
    - platform: github
      url: http://github.com/owncast/owncast
    - platform: mastodon
      url: http://mastodon.something/owncast

videoSettings:
  chunkLengthInSeconds: 5
  streamingKey: password
  offlineContent: static/offline.m4v
  streamQualities:
    - low:
      videoBitrate: 400
      scaledWidth: 600
      audioPassthrough: true
      encoderPreset: veryfast

    - medium:
      videoBitrate: 800
      encoderPreset: fast

    - high:
      videoBitrate: 2000
      encoderPreset: faster

如果你只想开箱即用的话,修改streamingKey后面的值即可,这是你的直播密码。

其他的配置可参考如下地址的说明:

https://owncast.online/docs/configuration/

接下来新建一个supervisor配置文件用于守护owncast的进程:

nano /etc/supervisor/conf.d/owncast.conf

写入如下配置:

[program:owncast]
priority=1
directory=/opt/owncast
command=/opt/owncast/owncast
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/supervisor/owncast.log

更新supervisor配置即可启动owncast:

supervisorctl update

接下来新建nginx站点配置文件用于反向代理:

nano /etc/nginx/conf.d/owncast.conf

写入如下配置:

server {
    listen      80;
    server_name owncast.imlala.best;

    location / {
        proxy_pass         http://127.0.0.1:8080;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection "upgrade";
        proxy_set_header   Host $http_host;
    }
}

使用certbot签一个ssl证书:

certbot --nginx --agree-tos --no-eff-email --email example@qq.com

推流地址:

rtmp://owncast.imlala.best/live

流名称就是你在config.yaml内设置的streamingKey密码。

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

相关帖子:https://briteming.blogspot.com/2016/09/nginx.html