Kali在树莓派上的调教笔记

一个偶然的时刻,我发现某个地方的IP是开放80和443端口的,那如果不好好利用一下简直太可惜了。当然,人家可是良民,当然会遵守国家的法律法规啦,那废话就不多说了。

小插曲:好久不用raspbian了,刷好镜像通电后才知道raspbian已经在一年前就已经默认关闭了ssh,没ssh那玩个鬼。

索性放弃raspbian,那么目前有Ubuntu Mate,Kali OS,Arch Linux三个系统供我选择,Ubuntu Mate也是需要通过显示器设定,故放弃;Arch Linux arm安装需要用到linux的机子;所以选择了Kali OS。

HBUT 2nd ACM Contest

恩,菜鸡和大佬之间的差距不是一天两天能追上的,当然思路正确写不出来是不可原谅的。。。。。。总之,很丢人orz

虽然都是大部分是水题,但是还是把这部分分享出来吧w

拿自己的和标程对比,人家的就是写的就是清爽漂亮,哎。。。

React与Express项目前后端一体化实战

在之前的造轮子的过程中,前后端分离开来写实在蛋疼,所以最近决定研究并折腾一下前后端工程一体化。

在这样的实时的环境中,最重要的是做好前后端之间的协调作用,说白了,也就是路径规划问题与热刷新问题。

在我的项目中,我选择开发和生产的环境的加载代码制作两份,只有模板,中间件什么的代码的通用。(网上推崇使用env变量来加载热更新组件,但是本人并不推崇全部使用env)

主要就是分析几项内容,除了工程的路径规划,一是开发代码(app.js),二是生产代码(server.js),最后还有模板引擎的调整

一个非常好用的npm包管理工具npm-check

很多做node.js开发的小伙伴呢都遇到这样一个问题:我全局安装的脚手架,如何升级。或者,我某个项目里,很多组件都大幅更新了,增加了很多好用的新特性,我该如何去升级我所想升级的组件呢。常规使用的npm update呢,又不是很好用。偶然发现了这个好用的工具,分享给大家。

首先安装 sudo npm install npm-check -g

然后,你就可以在该项目执行npm-check即可查看该项目下的依赖情况和新版的依赖情况,emoji表情意外萌呢~

它还会检测你在工程里import进的依赖,没有用到的依赖还会提示你去移除它。提示非常丰富。

// 分割线,首页不放图o(////▽////)q

在墙内部署docker镜像的正确姿势

说换镜像什么的都是扯淡,根本无法好好使用。

本文将会告诉你在墙内部署docker应用的正确姿势。

本文基于Ubuntu 16.04测试环境,大部分具有systemctl的系统都同样可行,适用于物理服务器和云服务器。

如果你的环境是aliyun ecs请前往/etc/apt/source.list里把所有mirrors.aliyuncs.com的镜像注释掉!

检查内核是否需要升级 uname -a查看,大于3.16即可。如果小于3.16,可以按照这篇教程换掉你的内核并提升你的服务器性能: https://emiria.io/post/TCP-BBR/

接下来是具体步骤。

Dell R410服务器踩坑总结

翘了大学语文课去机房上架服务器被语文老师抓到,这种事情一定是终生难忘的(哭)。

好了,以下来介绍所踩的坑。

某202.xxx.xxx.xxx/28的ip是我们社团的服务器所使用,但由于年久失修,宕了只有一台了orz,于是fix的这个任务就落到了我的头上了orz。

由于是接手的,只留下了一个记录了密码和用户名什么的文档来,只能靠自己摸索,架构是多台Apache+php环境组成的集群和一台数据库服务器组成,具体配置无法测试(基本的命令都缺失,有必要全部重做系统了),内网带宽实测100mbps。但数据库服务器的raid早已坏掉,各种丢数据,唯一剩下来的一台也不敢动,于是,只能贡献出我自己的R410了。

R410的网卡是博通一种服务器网卡,很可惜Debian初始并不带网卡驱动,需要后续在没网的情况下手动安装,故舍弃Debian。Ubuntu 16.04.2 LTS在写入系统时又发生失败。centos才是最适合R410的系统orz。

R410集成了非常强大的BIOS和远控卡,然而正是强大,导致了使用不是很方便,个人非常不推荐使用UEFI引导,而且也非常不好用。
在不小心按了F10进入了UEFI后,你将会经历漫长的等待,看着Initializing UEFI,Please wait...(>=1hr),而且极有可能加载失败。所以我们要做的就是,关闭电源,再开启电源,加载完BIOS后迅速按下Ctrl 和E键,进入菜单,进入System Services选项菜单里并把它关掉。保存退出,继续加载bios的过程中再去F11里选择u盘启动。

安装完centos后有个非常恶心的阅读协议,这个只能Good luck了。在实际上架服务器中,我们不可能使用DHCP协议获取ip,只能手动配置ip,在参考另外一台服务器的配置文件后顺利完成了ip的配置,其实图形化界面下的centos配置防火墙很容易23333333

PS:机房老师中途进来看到raid的配置和机器上4个盘位只插了一块盘有点想笑,我能怎么办,我也没钱买硬盘哇(╯‵□′)╯︵┻━┻

Omega2Plus上手体验

好吧,我相信这是国内首发上手测评 #(手动滑稽)

Omega2是onion公司搞出的一款超迷你的IOT设备,体积非常迷你,12月参与的众筹,春节后收到的东西(顺丰发货好评)。

这款东西最大的特色是小而丰富,而且价格便宜,标准版5$,Plus版是9$,我参与的呢是plus版。

先来几张低清有码

React.js折腾小计

我不会告诉你这篇文章是折腾了ng1,vue,react三大框架之后才写的QvQ

好了废话不多说了,为什么我会跳入这个坑,最早是因为在express框架中,注册表单在用户填写后得通过post请求传回到后端再写入数据库,然而又不想碰jQuery这个东西,所以想到了用目前流行想这些框架。

一开始是用ng1,然后根据phonecat的教程构建出了应用,然而也用了原始的方法,一个angular.js一个angular-router.js再加一个app.js实现的。
当然这样被 锐神等dalao吐槽了,于是乎尝试锐神他们较为推荐的vue来构建,但是vue虽然轻量,但是在模板实现上,以及子父绑定上并不友好,并且vue的社区支持并不友好,对于新手来学习上手并不友好,没有手把手的案例来教你做应用,即使,vue推出了vue-cli这个东西,然而,由于太多报错不知道如何解决,故放弃,最后采用了react实现了项目,并熟悉了webpack打包模式。

这个项目呢,是一个不依托后端程序的单页应用,(导航站),为什么不直接写死html呢,废话!当然是为了便于维护(╯‵□′)╯︵┻━┻,同时也是为了后期升级做打算,因为,未来打算做成一个综合门户,页眉页脚直接写死html,到content里在调用react形成app,content目前只是通过几个路由,每个路由下get一个json,列出导航条目,后期的话,把菜单导航升级成二级的,就可以调用比如论坛等的api实现一个综合门户。

react的hash路由系统默认会抛出一个 “? k=xxxxx”的东西,google一圈,so上有大佬解释说这是为了方便判断什么时候点的某个链接,也有相应的隐藏的解决方案。
但是窝不打算隐藏,url嘛,总要带些 &?_ 什么的才有逼格嘛2333333。

webpack打包模式非常赞,尽管他给我打包出个32k行的js…,但webpack用得不是特别熟悉的情况下,不要乱import进css。(包括我(:з」∠)

react目前才学习了冰山一角,开学后继续学习,该应用也很快将会上线,下一篇博文会写一下该应用的实现ovo。

PS:jsx的写法实在太赞了!另外webpack -p后不要在编辑器里乱点编译好的js(。别问我为什么Orz)

你好2017

欢迎2017的到来,祝大家新年快乐o(* ≧▽≦)ツ

在2016这段时间里,我没什么拿得出手的东西,博客更新慢了许多,主要还是没有多少时间来折腾。
花了大量时间应付高数和英语,却没取得什么成绩,险些挂科,花在计算机上的时间也不多,除了学习到了很多c语言的知识外,也学了一些nodejs,尝试使用express框架写了些东西,也学到了一些关于jQuery的知识,但离生产还差得很远很远,感觉有些迷茫。
当然,我也结识一些dalao朋友,通过交流讨论学到了很多。

2017,一起加油吧!

Centos安装Munin服务器监控系统

为什么窝选择Munin系统,原因很简单,安全,轻量快速,可分析性强。

其实很多开源镜像站和一些老网站都采用这个系统,历史悠久,占用小,各种强悍的图表

Munin分为监控机软件(munin)和被监控机软件(munin-node),两个,其中一台机器上必须都安装(作为监控机)其余机器安装munin-node即可

安装非常简单。munin基于Perl,我们应该先装好perl全家桶。由于rrdtool在epel源里才有,所以我们应该提前设置epel源。

1
yum install munin munin-common munin-node rrdtool

这是两个非常重要的配置文件位置,关于如何增加节点在配置文件里都有配置说明和例子

1
2
/etc/munin/munin.conf  #主监控机配置
/etc/munin/munin-node.conf #节点机器配置

有关nginx访问也很简单,munin安装好后,默认已经生成在/var/www/html/munin/下,我们只需把网站配置文件的location指向这个目录即可

munin默认记录监控日志,并自动压缩储存在/var/log/munin

1
service munin-node start

我在使用中发现一个巨大问题,就是网页不会刷新,于是尝试手动刷新

1
/usr/bin/munin-cron

但是返回这个错误

1
2
3
4
This program will easily break if you run it as root as you are
trying now. Please run it as user 'nobody'. The correct 'su' command
on many systems is 'su - munin --shell=/bin/bash'
Aborting.

OK,我们切换到munin用户,当再次执行的时候,又报错

1
[ERROR] Could not copy contents from /etc/munin/static/ to /[path to static file] at /usr/share/perl5/vendor_perl/Munin/Master/HTMLOld.pm line 716.

Google一圈,找到解决方案http://serverfault.com/questions/605226/munin-cron-unable-to-copy-contents
明显是epel源那堆打包的工程师粗心好不好orz,好在可以结决了

1
2
3
su - munin --shell=/bin/bash  #切换到munin用户
chown -R munin:munin /var/www/html/munin #更改权限
exit #返回root用户

等五分钟你就可以看到正常刷新了

默认监听端口4949,多机集群别忘了放行端口。