[这些天的一天]nginx反代+frp+nginx+https搭建技术总结

如你所见,例行的《我的2019最爱》与《2020新年贺词》迟到了半个多月。BLOG也2个多月没有更新。主要原因是因为一直在进行的https技术受阻,以至于产生畏难拖延情绪。

经过近半月的高强度科研,参考诸多教程,终于攻克相关难题。现进行技术总结以飨读者。本文主要面向技术水平较低的读者。

一、服务内容

域名解析至VPS,VPS(80端口被其他脚本占据)通过nginx反代至frps。

客户端(树莓派)frpc连接vps端frps,树莓派通过nginx搭建网盘及博客。

二、技术难点

域名解析、http通过frp进行内网穿透在网络上教程很多,即使通过官方文档也极易习得。不再赘述。

本文主要介绍https通过frp进行内网穿透。

VPS端:

1、域名解析至vps后,我使用了lnmp一键包搭建nginx环境。(教程 https://wzfou.com/lnmp-1-6/)通过脚本命令直接添加虚拟主机。期间,通过Letsencrypt获得自动续期的免费SSL证书(若中间卡住,需升级acme.sh脚本)。

2、编辑对应虚拟主机的conf文件。

server
{
listen 80;
listen 443 ssl http2;
server_name aaa.aaa.aaa #这里填写你的域名
charset utf-8;
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}#通过这段将http全部转为https
ssl_certificate /usr/local/nginx/conf/ssl/aaa/aaa;#这里填写对应cer文件路径,在原有文件中有相关字段
ssl_certificate_key /usr/local/nginx/conf/ssl/aaa/aaa;#这里填写对应cer文件路径,在原有文件中有相关字段
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;

location / {
resolver 8.8.8.8;
proxy_ssl_server_name on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass https://$host:aaaa;

}#通过这段将相关请求转发至主机的aaaa端口
}

重启lnmp服务

 

3、下载最新版frp脚本(https://github.com/fatedier/frp/releases)。解压、设置自动运行不赘述。

删去frpc相关内容,只留下frps相关。编辑frps.ini。

[common]
bind_addr = vps ip地址
dashboard_addr = vps ip地址
bind_port = 任意非占用端口
kcp_bind_port = 同上端口
token = 任意密码(用于frp连接)
vhost_http_port = eeee(任意非占用端口)
vhost_https_port = aaaa(同2、中的aaaa)
tcp_mux=true
dashboard_port = 任意非占用端口
dashboard_user = 任意用户名
dashboard_pwd = 任意密码(用于登录面板)

载入frps.ini文件,启动frps服务。可通过访问vps ip:面板端口来获知frps服务运行状态。

 

客户端:

1、lnmp一键包搭建nginx环境。通过脚本命令直接添加虚拟主机。期间,通过Letsencrypt获得自动续期的免费SSL证书。

当然,因为域名未解析至此,故证书申请必定失败。

2、将vps端的证书复制到相应目录。(因证书到期会失效,此处可通过计划任务使客户端自动从vps端获取证书,此处不赘言)

3、编辑对应虚拟主机的conf文件。

server
{
listen cccc ssl http2; #cccc是任意没有被占用的端口
#listen [::]:443 ssl http2;
server_name cccc.cccc.cccc; #你的域名
index.html ;
root /????/????/????; #虚拟主机路径

ssl_certificate /usr/local/nginx/conf/ssl/????/????; #从vps复制过来的证书文件,注意权限
ssl_certificate_key /usr/local/nginx/conf/ssl/????/????; #从vps复制过来的证书文件,注意权限
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_session_cache builtin:1000 shared:SSL:10m;

include rewrite/none.conf;

include enable-php-pathinfo.conf;

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 12h;
}

location ~ /.well-known {
allow all;
}

location ~ /\.
{
deny all;
}

access_log /home/wwwlogs/????; #log路径,可有可无
}

 

4、下载最新版frp脚本(版本需与vps端一致)。解压、设置自动运行不赘述。

删去frps相关内容,只留下frpc相关。编辑frpc.ini。

[common]
server_addr = vps ip地址
server_port = 任意非占用端口,同vps端的bind_port
log_max_days = 3
token =  任意密码,同VPS端
tcp_mux = true
protocol = tcp

[任意服务名]
type = https
local_ip = 127.0.0.1
local_port = cccc (同客户端conf文件中的)
use_encryption = false
use_compression = true
custom_domains = cccc.cccc.cccc; #你的域名

[其他任意服务名]
type = https
local_ip = 127.0.0.1
local_port = dddd(客户端nginx也可以再增加其他的虚拟主机)
use_encryption = false
use_compression = true
custom_domains = dddd.dddd.ddd

至此,主要技术节点总结完毕。

 

补遗:

1、安装lnmp前务必apt-get update,否则较大几率安装失败

2、在服务无法正常运行时,可通过观察frp面板内的连接状况分析frp是否连通,进而排除frp故障。

3、通过systemctl设置树莓派自动运行frpc时出现network unreachable。可通过

Service下加

Restart=0n-failure

RestartSec=5s

尝试解决。

另外也可以通过选中树莓派桌面中的设置首选项中的网络连通后完成启动选项尝试解决(未验证)。

4、树莓派搭建的wordpress使用了腾讯cos插件,在从http转为https后需要将路径全部更新一遍。另外自定义主题与其他插件中的部分相关连接有可能需要手动更新才能正常使用。

5、frp、nginx修改后注意重启相关服务

 

 

特别鸣谢:

fatedier (https://github.com/fatedier)

Raymond Zhou(https://blog.ray8.cc/archives/frpc-frps-nginx-real-ip-https-rewrite-ssl-cert-pure-code.html)

↑ 这位大佬的教程极为详细专业,但不知为何我照此执行下来,会出现502错误,或者资源文件无法载入的问题。

鸣谢:

Tony Chyi Φ 坐等《我为歌狂2》

Lwrless(网绿    t.me/LWRLESS_FANS)

寒雪

 

 

[这些天的一天]我的2019最爱

年度最爱的一句话:无
年度最爱的书籍:雪域求法记 : 一个汉人喇嘛的口述史
年度最爱电影:理发师的情人、横空出世
年度最爱剧集:切尔诺贝利·禁区-无人原样而归 第二季
年度最爱音乐人:Eleni Karaindrou
年度最爱乐队:无
年度最爱唱片:无
年度最爱播客:路书
年度最爱网站/微博/公众号:J*DB
年度最爱广告:无
年度最爱城市:无
年度最爱书店:无
年度最爱游戏:ingress
年度最爱咖啡馆/酒吧/livehouse:无
年度最爱餐厅:振兴烧烤店
年度最爱食物:微波烤肉
年度最爱饮品:三得利无糖乌龙茶
年度最爱玩物:自行车
年度最取悦自己:骑行环太湖
年度最爱酒类:无
年度最难过/遗憾事件:无
年度最渴望:无
年度最难忘:在依勒克达坂拜访牧民
年度最开心:无
年度最想说的一句话:无
年度最喜欢的旅游目的地:无
年度最匪夷所思的事:无
你的姓名/艺名/笔名/网名/诨名:雾中风景/bluemountain/wizbot
年龄:32
职业:工人
所在城市:青岛

[这些天的一天]2020新年贺词

2020年就要到了,我在首都北京向大家送上新年的美好祝福!

2019年,我们用汗水浇灌收获,以实干笃定前行。高质量发展平稳推进,我国国内生产总值预计将接近100万亿元人民币、人均将迈上1万美元的台阶。三大攻坚战取得关键进展。京津冀协同发展、长江经济带发展、粤港澳大湾区建设、长三角一体化发展按下快进键,黄河流域生态保护和高质量发展成为国家战略。全国将有340个左右贫困县摘帽、1000多万人实现脱贫。嫦娥四号在人类历史上第一次登陆月球背面,长征五号遥三运载火箭成功发射,雪龙2号首航南极,北斗导航全球组网进入冲刺期,5G商用加速推出,北京大兴国际机场“凤凰展翅”……这些成就凝结着新时代奋斗者的心血和汗水,彰显了不同凡响的中国风采、中国力量。

一年来,改革开放不断催生发展活力。党和国家机构改革圆满完成。增设一批自由贸易试验区和上海自由贸易试验区新片区。科创板顺利启动推进。减税降费总额超过2万亿元。个人所得税起征点提高了,老百姓常用的许多药品降价了,网络提速降费使刷屏更快了,垃圾分类引领着低碳生活新时尚。“基层减负年”让基层干部轻装上阵。放眼神州大地,处处都有新变化新气象。

一年来,国防和军队改革扎实推进,人民军队展现出新时代强军风貌。我们进行国庆大阅兵,举行海军、空军成立70周年庆祝活动,举办第七届世界军人运动会。首艘国产航母正式列装。人民子弟兵永远是保卫祖国的钢铁长城,让我们向守护家园的忠诚卫士们致敬!

2019年,最难忘的是隆重庆祝新中国成立70周年。我们为共和国70年的辉煌成就喝彩,被爱国主义的硬核力量震撼。阅兵方阵威武雄壮,群众游行激情飞扬,天安门广场成了欢乐的海洋。大江南北披上红色盛装,人们脸上洋溢着自豪的笑容,《我和我的祖国》在大街小巷传唱。爱国主义情感让我们热泪盈眶,爱国主义精神构筑起民族的脊梁。这一切,汇聚成礼赞新中国、奋斗新时代的前进洪流,给我们增添了无穷力量。

一年来,我去了不少地方。雄安新区画卷徐徐铺展,天津港蓬勃兴盛,北京城市副中心生机勃发,内蒙古大草原壮美亮丽,河西走廊穿越千年、历久弥新,九曲黄河天高水阔、雄浑安澜,黄浦江两岸物阜民丰、流光溢彩……祖国各地一派欣欣向荣的景象。我沿着中国革命的征程砥砺初心。从江西于都红军长征集结出发地到河南新县鄂豫皖苏区首府革命博物馆,从甘肃高台西路军纪念碑到北京香山革命纪念地,每个地方都让我思绪万千,初心和使命是我们走好新时代长征路的不竭动力。

同往常一样,我无论多忙,都要抽时间到乡亲们中走一走看一看。大家跟我说了很多心里话,我一直记在心上。云南贡山独龙族群众、福建寿宁县下党乡的乡亲、“王杰班”全体战士、北京体育大学研究生冠军班同学、澳门小朋友和义工老人,给我写了信。我在回信中肯定了大家取得的成绩,也表达了良好祝愿。

一年来,许多人和事感动着我们。一辈子深藏功名、初心不改的张富清,把青春和生命献给脱贫事业的黄文秀,为救火而捐躯的四川木里31名勇士,用自己身体保护战友的杜富国,以十一连胜夺取世界杯冠军的中国女排……许许多多无怨无悔、倾情奉献的无名英雄,他们以普通人的平凡书写了不平凡的人生。

2019年,中国继续张开双臂拥抱世界。我们主办了第二届“一带一路”国际合作高峰论坛、北京世界园艺博览会、亚洲文明对话大会、第二届中国国际进口博览会,向世界展示了一个文明、开放、包容的中国。我同很多国家元首和政府首脑会晤,分享了中国主张,增进了友谊,深化了共识。世界上又有一些国家同我国建交,我国建交国达到180个。我们的朋友遍天下!

2020年是具有里程碑意义的一年。我们将全面建成小康社会,实现第一个百年奋斗目标。2020年也是脱贫攻坚决战决胜之年。冲锋号已经吹响。我们要万众一心加油干,越是艰险越向前,把短板补得再扎实一些,把基础打得再牢靠一些,坚决打赢脱贫攻坚战,如期实现现行标准下农村贫困人口全部脱贫、贫困县全部摘帽。

前几天,我出席了澳门回归祖国20周年庆祝活动,我为澳门繁荣稳定感到欣慰。澳门的成功实践表明,“一国两制”完全行得通、办得到、得人心。近几个月来,香港局势牵动着大家的心。没有和谐稳定的环境,怎会有安居乐业的家园!真诚希望香港好、香港同胞好。香港繁荣稳定是香港同胞的心愿,也是祖国人民的期盼。

历史长河奔腾不息,有风平浪静,也有波涛汹涌。我们不惧风雨,也不畏险阻。中国将坚定不移走和平发展道路,坚定不移维护世界和平、促进共同发展。我们愿同世界各国人民携起手来,积极共建“一带一路”,推动构建人类命运共同体,为创造人类美好未来而不懈努力。

此时此刻,还有许多人在坚守岗位,许多人在守护平安,许多人在辛勤劳作。大家辛苦了!

让我们只争朝夕,不负韶华,共同迎接2020年的到来。

祝大家新年快乐!