肇鑫的日常博客

日常

Ubuntu 20.04下安装Nginx与Trojan

原以为20.04的安装会比18.04方便很多。但是没想到坑也不少。

安装Nginx

Ubuntu 18.04自带的Nginx本身没有开启ngx_stream_ssl_preread_module。我们安装Nginx官方提供的版本,这个版本开启了所有的可开启扩展。

sudo vi /etc/apt/sources.list

在文件最下面添加并保存

# for latest nginx
deb http://nginx.org/packages/mainline/ubuntu/ focal nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ focal nginx

添加服务器签名,签名在这里nginx_signing.key

wget http://web.archive.org/web/20180805232520/http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

安装Nginx并开启防火墙端口

因为防火墙默认是关闭的,所以ufw的那步可以不做。

sudo apt update
sudo apt install nginx
sudo ufw allow 'Nginx Full'
sudo systemctl start nginx
sudo systemctl nginx
sudo systemctl enable nginx

你现在可以打开浏览器,然后输入vps的ip地址,如果看到了nginx的欢迎界面,就代表nginx配置成功了。

配置Nginx多站点

单独安装的nginx,只包含一个最基本的配置,多站点的文件夹默认都没有配置。我们需要手动建立文件夹。

mkdir -p /etc/nginx/sites-available
mkdir -p /etc/nginx/sites-enabled

然后编辑nginx.conf文件,将后者加入其中

vi /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;,之后插入一行,粘贴include /etc/nginx/sites-enabled/*;

保存并退出。

假设你有一个网站叫example.com,网页位置在/var/www/html/example.com/html。新建一个配置文件。

sudo vi /etc/nginx/sites-available/example.com

内容如下

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/html/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

我们不用添加443端口,因为等下添加证书的时候,Certbot会帮我们自动生成新的配置文件。

将网站配置生效

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled
sudo systemctl reload nginx

参考上面的步骤,添加你所有的站点。之后,再额外添加一个站点,用于Trojan的识别。

最后添加的站点,一定要是一个不需要用的二级域名,而不要使用一级域名。因为我发现Nginx的预读有bug。如果你使用了一级域名,那么它的二级域名也都会匹配。这将导致错误。
一级域名指的是example.com这种,二级指的是mail.example.com这种。

这里我们假设额外配置一个叫tro.example.com的二级域名站点。

为Nginx添加SSL证书

通过浏览器访问网站https://certbot.eff.org,选择Nginx和Ubuntu 20.04,安照网站的提示安装certbot。

sudo apt update
sudo apt install snapd
sudo snap install core; sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

申请证书

sudo certbot --nginx

按照提示进行操作。完成之后,你再通过浏览器访问网站,你会发现已经是https的了。

安装Trojan

虽然20.04自带了trojan,但是经过我的测试,20.04自带的trojan无法与nginx共同运行。trojan无法正常启动。所以,我们还是通过老办法进行安装。
如果你尝试了自带的trojan。自带的安装之后,配置文件在/etc/trojan。而不是/usr/local/etc/trojan。

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

修改Trojan配置

sudo vi /usr/local/etc/trojan/config.json

找到"local_port",将443,改成4433或者你希望的端口。
找到"password",修改为你想要设置的密码。
找到"ssl",将"cert"设置为“/etc/letsencrypt/live/example.com/fullchain.pem"。将"key"设置为"/etc/letsencrypt/live/example.com/privkey.pem"。

保存并退出。运行Trojan。设置为开机启动。

sudo systemctl start trojan
sudo systemctl enable trojan

配置Trojan+Nginx共存

sudo vi /etc/nginx/nginx.conf

在events和http两段之间,插入

stream {
    map $ssl_preread_server_name $name {
        tro.example.com trojan;
        default nginx;
    }
    upstream trojan {
        server 127.0.0.1:4433;
    }
    upstream nginx {
        server 127.0.0.1:4443;
    }
    server {
        listen 443;
        listen [::]:443;
        proxy_pass $name;
        ssl_preread on;
    }
}

保存,修改之前设置的所有网站的设置。打开/etc/nginx/sites-enable/中所有的网站的配置,将所有的443端口,改成4443端口,然后保存。

sudo systemctl reload nginx

在好多支持Trojan的客户端中,域名是可选的。但是由于我们需要使用域名来进行跳转,所以在设置客户端时,域名是必填的,必须填写为tro.example.com
Module ngx_stream_ssl_preread_module

其它

Ubuntu 18.04下将Apache2多站点改为Nginx多站点,同时开启Trojan

ClashXR配置Trojan

《花木兰》中文IMAX 3D版观影感受(剧透版)

p2616770846

这篇主要谈谈剧情。先来看看《木兰辞》:

木兰辞

第一段

唧唧复唧唧,木兰当户织。不闻机杼声,惟闻女叹息。

木兰织布的情节,电影里是没有的。电影里木兰从小就是一个活泼好动的孩子。还因为捉鸡上了房顶。

第二、三段

问女何所思,问女何所忆。女亦无所思,女亦无所忆。昨夜见军帖,可汗大点兵,军书十二卷,卷卷有爷名。阿爷无大儿,木兰无长兄,愿为市鞍马,从此替爷征。

东市买骏马,西市买鞍鞯,南市买辔头,北市买长鞭。旦辞爷娘去,暮宿黄河边,不闻爷娘唤女声,但闻黄河流水鸣溅溅。旦辞黄河去,暮至黑山头,不闻爷娘唤女声,但闻燕山胡骑鸣啾啾。

“阿爷无大儿,木兰无长兄”结合后面的“爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。”我们可以知道,木兰已知的人物关系,是有健在的父、母、姐、弟。木兰同辈排行在中间。但是电影中,木兰的父亲只有两个女儿,并且木兰是大女儿。

电影中木兰家中就有马,而且是匹好马,名字叫“黑风”。并且木兰的父亲有一把宝剑,上面刻着“忠勇真”三个字。

第四段

万里赴戎机,关山度若飞。朔气传金柝,寒光照铁衣。将军百战死,壮士十年归。

这段的“将军百战死,壮士十年归。”是比兴的手法。十年是虚指,不是实际用了十年。诗的后面有提到“同行十二年,不知木兰是女郎。”这个是实指。一共12年,这是长时间的战争。而电影中大大的简化了。变成了一个营的兵力,参与了两场战斗。一场是和敌军保护商路的战斗。一场是迅速回防救驾的京城保卫战。

其余部分

归来见天子,天子坐明堂。策勋十二转,赏赐百千强。可汗问所欲,木兰不用尚书郎,愿驰千里足,送儿还故乡。

爷娘闻女来,出郭相扶将;阿姊闻妹来,当户理红妆;小弟闻姊来,磨刀霍霍向猪羊。开我东阁门,坐我西阁床。脱我战时袍,著我旧时裳。当窗理云鬓,对镜帖花黄。出门看火伴,火伴皆惊忙:同行十二年,不知木兰是女郎。

雄兔脚扑朔,雌兔眼迷离;双兔傍地走,安能辨我是雄雌?

兔子,木兰骑马的时候有提到,说是见到两只兔子,不知道公母,但是自己猜是一公一母。

有关西方人理解的中国故事

核心剧情

迎击敌军的是皇帝陛下的卫队。这在西方人看来很正常。因为西方(欧洲)的国家都很小。有一个城堡,就敢号称自己是个国王。所以国家最精锐的部队必然是国王的卫队。打仗派出的也是国王的卫队。

但是中国不同。中国皇帝的疆域可比欧洲的国王大多了。打仗也不可能是排出皇帝陛下的卫队。因为皇帝亲军的存在的目的就是为了拱卫京师。而外族打仗,那是边军的事。因此电影中调虎离山,然后袭击都城的事情,在欧洲可能成立。在中国是不可能成立的。

这是电影情节最大的硬伤。剧情不成立。

仙娘

巩俐饰演的仙娘是一名巫女。巫女(女巫)是西方世界常见的角色。并且有一段时间,教廷还追杀她们,认为她们是邪恶的。现代西方社会,女巫被认为是不存在的。并且存在一个词,叫“猎巫”,含义是借助不存在的罪名迫害某人。

中国文化中,即便有巫女(神婆),也不会被迫害,反而会受到尊敬。所以,巫女因为遭到迫害而加入敌方这件事。剧情也是不成立。

从电影的结构来说,木兰是明线。仙娘是暗线。二者有着类似的成长经历,身怀天赋,但是因为是女性,才能不被世人认可。仙娘选择了反抗,加入了外族军队。而木兰选择了相信自己的同伴,最终才能得到承认。

木兰

影片的前半段,其实拍得还是中规中矩的。电影中的木兰更像是古龙笔下的人物,一开场就有极高的实力。而没有修炼过程。比如在军营中,其余的人都是受训并提高实力。而木兰,从一开始就是想办法掩盖自己的实力。

故事的转折发生在木兰与仙娘的相遇。仙娘看出了她是女的,并不停地问你是谁。木兰却说自己是花军,是效忠皇帝陛下的骑士。结果……花军就被打死了。然后仙娘跑去了别的战场,而木兰因为先祖(凤凰)的庇佑,又重生了过来。之后,她决定不在隐藏自己的身份,以女人的身份进行战斗。

从这时起,木兰的主角光环就来了。不仅获得胜利,并且反派也纷纷降智。甚至在被逐出军队后,又回到军队时,将军不仅没有杀她。还在军队中采用了民主制,因为大家都支持她,就把回都城的任务交给她,并且突击骑兵队由她来指挥。要知道,将军也是一起回防的。

关于功夫和场面

平心而论,几场打斗还是精彩的。只和李连杰和甄子丹都无关,这难免让观众失望。

最终得分

6分。剧情硬伤严重。给外国人看没什么,但是给中国人看漏洞就过大了。服化道方面,由于我本身对于南北朝时人们穿成什么样都没什么研究。所以这个就不说了。来张刘亦菲的"华为"造型作为结尾。

p2619664675.jpg

《花木兰》中文IMAX 3D版观影感受(无剧透版)

p2561753090

此刻,我带着耳机听着原声带专辑,50毫米的驱动单元,伴随飞利浦的专有调教,昨日观看《花木兰》的记忆在我脑海中醒来。

我看过刘亦菲的电视剧很少,很多人都是从《金粉世家》、《仙剑奇侠转》认识她的。但是我只看过她演的《天龙八部》。电影方面,到是相对多一些,《四大名捕》系列都看过,但是在电影院,只看过《烽火芳菲》。最后看过的一部是《二代妖精之今生有幸》。

《花木兰》是很早之前就打算要看的。我在微博关注了时光网的账号,经常能看到有关电影的最新信息。

由于疫情的关系,原本定档3月的电影,拖延了半年才上映。雪上加霜的是,电影在美国不仅取消了院线上映,并且比中国院线提前一周在网站上点映。这样必然造成了中国电影院上映前,市面上就已经有盗版横行了。

但是好在盗版只有英文版,而电影院的有IMAX 3D版,并且还是中文的。所以我建议和观看其它好莱坞大片不同,《花木兰》尽量要看中文版。因为其中的刘亦菲、李连杰、巩俐、郑佩佩的中文,都是亲自配音。

我没看过《花木兰》动画片版。

有关李连杰。我记得是有刘亦菲、巩俐和李连杰。结果一开始电影里看到了巩俐、刘亦菲,没有看到李连杰。后来又看到了甄子丹,我还在想是不是我记错了。因为有甄子丹应该就不会有李连杰了吧。结果没想到,那个皇帝,第二次见的时候,我才发现原来是李连杰演的。第一次真是没看出来。因为没有给特写的缘故吧。

关于先祖

关于凤凰

关于(进)忠、(持)勇、(存)真

关于柔然族

关于神女/巫女

关于皇家卫队

关于京城

无剧透版

剧透版

《花木兰》中文IMAX 3D版观影感受(剧透版)
关于《木兰诗》
关于翻墙的前后呼应
关于花军的死,与花木兰的生
关于剧情
关于主角光环