利用dnsmasq搭建一个可翻墙的DNS

很多人想访问Google、Facebook、Twitter等等,但由于GFW的的高性能,无法达成。因此也会有很多人会问我,一般我是怎么翻墙的,而通常我会直接给他一个DNS,让他修改成这个DNS就好了,另外再加上一个正常的DNS作为备用。
首先需要安装dnsmasq,在多个系统上,直接执行安装命令,均可直接安装dnsmasq。这是一个本地搭建缓存的DNS服务,我的PC也一直使用他用于加快访问速度。

ps:该内容可能已过期

1
2
3
4
5
6
7
strict-order
no-resolv
no-poll
server=119.29.29.29
listen-address=127.0.0.1
#listen-address=0.0.0.0
cache-size=10240

另外就是修改hosts了,将可用的hosts下载后,复制到/etc/hosts即可,然后把DNS改成你的IP,就可以连上真正的互联网了。

1
wget https://raw.githubusercontent.com/racaljk/hosts/master/hosts -qO /tmp/hosts && sudo mv /tmp/hosts /etc/hosts

需编写代码,定期执行改代码,保证当前的hosts可用。

1
2
00 03 * * * root /data/cp_hosts.sh
02 03 * * * root service dnsmasq restart

MySQL部分错误及解决方法

MySQL错误

1、问题描述

1
2
3
4
[root@localhost mysql]# **/etc/rc.d/init.d/mysql status**
MySQL is not running, but lock file (/var/lock/subsys/mysql[FAILED]
[root@localhost mysql]# **/etc/rc.d/init.d/mysql start**
Starting MySQL...The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).[FAILED]

2、解决方案
导致这个问题的发送,主要是因为msyql或这mysqld进程没有正常关闭,故导致新的pid进程不能创建。无法初始化权限表。
极有可能是因为服务器储存空间被占满,此时,仅需清理硬盘空间,然后重启mysql即可,若依旧不可以,可参考以下做法。

3、解决代码

1
2
3
4
5
6
7
8
cd /usr/local/mysql/
chown -R mysql.mysql .
su - mysql
cd /usr/local/mysql/
scripts/mysql_install_db
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/etc/rc.d/init.d/mysql status
/etc/rc.d/init.d/mysql status

HTTPS+HTTP/2+HSTS+Perfect-Forward-Secrecy相关配置

一. 简单设置

可以在nginx.conf中加入以下代码开启HTTP/2,同时设置常用的域名证书为default_server,这样设置的目的是防止客户端在不支持SNI的情况下,直接使用默认证书的时候,nginx依然能够通过HTTPS解析到你的服务器。防止由于多证书存在于同一台服务器而导致未知错误的可能性。开启HTTPS时,需同时指出openssl的密钥及其公钥,作为普通用户,千万不能像12306一样,自己给自己签发HTTPS证书。需要使用经过可信的第三方CA签发的证书,其中也有很多免费的。

1
2
3
4
5
6
7
listen 443 ssl http2 default_server;
server_name yatesun.com;
index index.html index.htm index.php;
error_page 404 https://yatesun.com;
root /path/to/root;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;

二. 完美前向保密(Perfect Forward Secrecy)

完美前向保密可以确保“即便一个信息受危及,也不会拖累其他信息受危及;并确保没有一个秘密值会导致多个消息受危及。”参考

我们需要生成安全性足够强的Diffie-Hellman参数。一些人认为,4096比特过长了,会给系统的处理器带来不必要的负担,但是就现在的计算能力而言,这似乎值得一试。

1
openssl dhparam -out yate4096.pem 4096

编辑文件perfect-forward-secrecy.conf,参考

1
2
3
4
5
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';
ssl_prefer_server_ciphers on;
ssl_dhparam yate4096.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";

编辑nginx.conf,在http{}最后加入参考

1
include perfect-forward-secrecy.conf;

三、开启HSTS(HTTP Strict Transport Security)

在nginx配置文件中,加入下面一行,便可以告知浏览器,我要强制客户端使用 HTTPS 访问页面。其中max-age为有效时间,只要这个时间未过期,浏览器请求时,将会307 Redirect Internel到HTTPS页面。与301和302重定向不同,307不允许跳过「证书错误」进行访问。

1
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload";

有意思的是,开启了HSTS以后,在ssllab上便能得到A+了,而仅仅开启FS时,在ssllab上只可以得到A。

四、添加perload list

其中,在header的Strict-Transport-Security中加入preload后,还是有可能出现第一次无法访问的可能性,其次,像阿里云等国内云服务器对80端口访问的未备案域名查得很严。如果浏览器从未访问过该域名,那么依然有可能在第一次连接的时候就遭到阻断或SSL剥离攻击。
那么我们可以在HSTS preload list中,向Chrome提交域名,未来几个星期,新版Chrome发布的时候,域名将内置在preload list中,服务器将预先知道我的域名是有HTTPS的,会在发送请求前,自动将HTTP转换为HTTPS。
HSTS compatibility matrix中可以看到所有支持这个preload list的浏览器,其中还包括Firefox, Safari, IE 11 and Edge。
目前,yatesun.com已经加入了HSTS preload list,在transport_security_state_static.json的7672行中已经包括了如下数据:

1
{ "name": "yatesun.com", "include_subdomains": true, "mode": "force-https" },

在Google Chrome 50的正式版本中,yatesun.com已内置到浏览器的HSTS domain中,主流浏览器的用户在浏览器中输入http://yatesun.comyatesun.com*.yatesun.com时,将会直接发送HTTPS请求。这时候,即便关闭80端口,依然能访问到网站,从而解决了被阻断或SSL剥离攻击。

大学毕业

又是一年毕业季,终于等到你,还好没放弃。
大学门口自拍
虽然今天才真正毕业,但是早已工作了好长时间,工作之后,感觉一切事物与大学都不一样了。与同学聊起来,大家都觉得仅仅工作几个月,就有一种好几年工作经验的感觉了。
情人路留念
也终于可以再次回到大学,开完毕业典礼,领到了毕业证,4年间,陆陆续续交了2万多的学费,今天终于到了收获的时候了,感觉钱没白花呀。
校门口学士服
再见!

Linux服务器常用命令

MySQL相关配置

1.解决group_concat长度限制

1
SET GLOBAL group_concat_max_len=102400;

2.用户权限修改与增加

1
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK TABLES ON `db_xx`.* TO 'user_rw'@'%'

3.设置密码

1
create user zhangsan identified by 'zhangsan_passwd';

搭建服务器

1.设置数据库可以外网连接(可选)

1
2
3
4
use mysql;
select host,user,password from user;
update user set host="%" where host="::1" and user = "";
flush privileges;

2.修改nginx配置文件,并赋权限700

1
chmod 700 * -R

重置mysql密码

1
2
3
vim /etc/my.cnf
[mysqld]
skip-grant-tables

常用Shell脚本

1.建立时间戳文件

1
touch -t 11020000 timestamp1

2.查找两个指定时间内的全部文件

1
find ./ -newer timestamp1 ! -newer timestamp2 -exec cp -a {} /pic/ \;

3.备份全部数据库

1
mysqldump --all-databases -h127.0.0.1 -uroot -p > allbackupfile.sql

4.备份部分数据库

1
mysqldump -u root -p data >data.sql

5.自动备份

1
30 1 * * * root mysqldump -u root -ppassword --all-databases > /data/database_`date '+%m-%d-%Y'/`.sql

nmap命令

用nmap对局域网扫描一遍,然后查看arp缓存表就可以知道局域内ip对应的mac了。nmap比较强大也可以直接扫描mac地址和端口。执行扫描之后就可以 cat /proc/net/arp查看arp缓存表了。

进行ping扫描,打印出对扫描做出响应的主机:  

1
$ nmap -sP 192.168.1.0/24

仅列出指定网络上的每台主机,不发送任何报文到目标主机: 

1
$ nmap -sL 192.168.1.0/24

探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS 22,23,25,80):  

1
$ nmap -PS 192.168.1.234

使用UDP ping探测主机:

1
$ nmap -PU 192.168.1.0/24

使用频率最高的扫描选项(SYN扫描,又称为半开放扫描),它不打开一个完全的TCP连接,执行得很快: 

1
$ nmap -sS 192.168.1.0/24

挂载阿里云硬盘

1、查看未挂载的硬盘

1
fdisk -l

2、直接格式化

1
mkfs.ext4 /dev/xvdb

3、新建文件夹

1
mkdir /data

4、挂载硬盘

1
mount /data /mnt/xvdb

6、设置开机自动挂载

1
/dev/xvdb       /data           ext4    defaults            0       0

重启后生效

7、查找并替换文件内容

1
sed -i "s/charset=gb2312/charset=utf-8/g" `grep charset=gb2312 -rl ./

8、查找文件内容

1
find .|xargs grep gb

生成公钥

1
ssh-keygen -b 4096 -t rsa

删除乱码文件

1
2
ls -liaha
find . -inum 492311024 -exec rm {} -rf \;

安装ab

1
yum -y install httpd-tools

去掉^M

1
:%s/\r//g

系统时间矫正

1
ntpdate 210.72.145.39

匹配并替换

1
find -name '*.html' |xargs sed -i 's/2005-2010/2005-2017/g'

禁止openvpn拉取route

1
route-nopull

大学的意义

我偶尔会想起这个问题,读大学的意义是什么?从大学的现实意义上,我可以通过四年的学习,具备一定的能力,并且最终获得毕业证书及学士学位证书。

而大学真正的意义就在于给你无数的deadline,告诉你,忙完这一段时间,过不了多久就可以放松了,让你在大一的时候期待大二快点到来,大二的时候期盼着大三,大三又在思考大四是不是课少了,就会不那么忙了?直到最后才发现其实是一年比一年更忙。通过deadline也让你不得不在一个很短的时间内掌握相应的知识,在紧迫的时间内匆匆准备考试,最后结束这一门课程。deadline也告诉你,时间就这么长,你必须在这段时间内快速学习。

生活她总是很现实,有所付出才有所回报。

假若有一天我发现不同的付出依然能得到一样的回报时,我并不会感到沮丧,只是因为那时的心态是完全不同的。也许未来某一天我会发现,只有当我忘记自己所处的位置,才能达到自己所意想不到的境界。

如果说高中三年的学习,决定你未来四年所读的学校,也可能决定着你未来的某场招聘会上人家翻阅你本科学校时,肯定你多年前所参加的那场考试时的智商。

那么,到了大学,其实学习才刚刚开始。

四年,不长不短,亦正亦负,却有可能会影响一个人的一生……

有一天,老师突然问起,我们现在学习到底是为了什么?有人说,为了等我的朋友们从各自从散落的角落归来,那时的我们仍能平等地坐在一起,像以前一样。

也许,这才是读大学的意义所在!

脚踏实地

学霸,这个词我一直觉得离我很遥远,因为我自认为自己不是一个非常爱学习的人,我只喜欢做自己有兴趣的事情。而在数学系厉害的人也特别多,更不敢称自己“学习成绩好”。但是我却发现我有向学霸发展的趋势,并且可能性越来越大了。

三天的全国数学建模竞赛,尽管结果还没出,但是我觉得我在这个过程真的学到了很多东西,包括查阅检索知网论文、视频图像处理能力等等,也理解了很多很多过去未曾理解的事情。其中还包括两天两夜的通宵,有时候有些事情真的是没经历就无法体会。参加完数模竞赛后我觉得有蛮多遗憾以及很多不完善的地方,到后来我也就想开了,事物的发展无非就是这样子,不可能事事顺心,有时候尽力了,其实结果反而不是特别重要。小概率事件终归是小概率事件,运气占有一定成分。

我一直觉得我数学方面学的不是很好,很多概念真的是不求甚解,很多数学分析方面的都掌握的不是很好,并没有以前参加高中数学竞赛或者高中阶段数学的那种激情。很多概念给我的感觉是莫名其妙的,而教数分的教授戎博讲课又类似研究生的讲课,等我慢慢缓过来的时候,差不多已经学完了。我感觉这方面还是要靠自己的自觉,转专业后落下了3门专业课,但是我通过自学,发现成绩相对来说反而是最好的,也远远出乎我的意料。

不知不觉中,我的计算机水平好像越来越好了,我发现我所有跟计算机有关的课程基本成绩都在专业前2名。这样一直悠哉悠哉得渡过了三个学期,就像大海一样,有高潮也有低谷,最后我竟然发现我成绩方面竟然一次拿到年级第六名、一次年级第七名。虽然算不上非常好,但是对于自己过去的学习态度来说,也实属不易了。

进入大三后觉得好像改变蛮大的,就好似一夜之间对专业的很多课程都有很大兴趣了。也许有时候就是很愿意为自己的行为找到最适合、最正当的理由吧!正如那句话说的,最出彩的那一批人在大二之后才会浮出水面。年轻的时候才华横溢是一句莫大的贬义词。如果没有脚踏实地,天赋是最误人的东西,最不值钱。

也许大二就是一个分界线吧,进入大三,我们便进入大学这神奇的象牙塔的后半段了,每个人都有自己的事情,为自己的理想奋斗、努力。忘记过去、回到原点,我们还是要活在当下,不管过去如何如何,那只会是美好或痛苦的回忆。脚踏实地远比所谓的天赋要重要!

有时候,专注其实很重要!

时光

朋友说,我这两年的变化特别大,就是感觉一个人的棱角都……我一开始以为他想说我棱角磨平了,他说不是,说是学会隐藏起来了,不会每做一件事情都巴不得全世界都知道了,也懂得隐藏自己的某些看法了。

终究还是如此,我还是我,并没有太大的变化。时光匆匆还是将我们推向各自的远方,终于我们还是朝着自己所向往的前方一步步走去。
有时候也越发感到低调的可贵,一个人只有低调的时候才能展现出自己的内涵,才能真正知道自己是谁,需要什么、适合什么。最终才明白了那句话,我到底是谁?

时光她就是如此,总是来不及评价她,她总是过得很快,以至于我还没来得及回味!

关于大学上课固定座位调查报告

一、 调查背景

为端正学风,减少学生逃课现象,佛山科技学院机械与电气工程学院决定,在教室实施上课固定座位制度。机电学院的做法也引起学校广大学生、老师,还有社会各界人士的热议。本着深入了解和探讨大学上课固定座位的做法和社会影响,深入社会、了解社会、服务社会,在此过程中丰富自己的认知,锻炼自我,通过调查研究,增强自身透过现象剖析社会实质的能力。

二、 调查的前期准备

为了让社会调查顺利、有序的进行,并取得预期的效果,在调查前期我做了以下很多准备。首先,我详细咨询了学校部分领导、老师和同学们的看法,询问了关于固定座位制度的赞成与否、愿不愿意实行,还征求广大学生能否接受固定座位。我也查阅了众多报纸(广州日报等等)、电视台(广东卫视等等)对校方此制度的评论,还有随机抽查了一些社会人士的看法(新浪微博等等)。通过各种途径调查了广东其他高校的相关做法。

三、 大学上课固定座位的统计数据

1、从新浪微博上统计的数据来看,大概有四分之三的网友表示不赞成,因为对防止逃课的作用不大,破坏了大学气氛。另外有大概四分之一的网友表示赞成,因为对大学生养成良好的上课习惯有很大帮助。
2、机电学院党委副书记余俊渠说:“很多新生进来时都很优秀的,求知欲很强,但是到大学一下子就放松了,没有制度约束了,就散漫了,缺课现象就慢慢多了起来。”对于反对意见,余俊渠表示,目前本校学生反应并不强烈,实行固定座位的阻力不大。
3、对于中山大学、华南理工大学等等所有一本和二本院校,没有发现任何一所学校实行类似制度,可见大学固定座位在广东高校属于首创,在全国甚至也有可能属于首创。
4、辅导员与班干部觉得固定座位的方法比较麻烦、很难实行,因为佛大本身课室就不多,不可能给每一个班分一个固定的课室上课。而佛大本部的会通楼、基础楼、大成楼、信息楼等等,课室的座位布局和多少各不相同,安排座位有难度,学生记住自己在不同课室的不同座位也有难度。
5、大部分的学生都表示了自己的担忧和不满,其他学院学生更是明确表示不希望学校在全校推广。他们认为想杜绝逃课早退,就要从老师上课和课程质量或学生思想教育和本身修养等根本上解决,而不是强制性固定座位。
6、少部分同学既不反对也不赞同,觉得不应该用这种强制性的手段讲学生留在科室,应增加课程吸引力更为关键,学校应把重心放在提高教师上课质量。而也有学生表示赞同,因为从来不担心此问题,即使固定座位也是可以照样逃课。很有同学表示对他们学习没有什么影响,因为他们从来都不逃课。
7、部分比较开明的老师表示很乐观看待这个制度,但是他们并不希望学生只是因为学院的压力过来上课,他们更希望学生们觉得老师的教学好、能学到东西,然后才过来上课,而不是上课睡觉、玩手机等等。
8、学校的负责清洁阿姨们很赞同固定座位,因为固定座位后,同学们会更注意自己座位的卫生,会及时把座位上的垃圾带走,减少阿姨的负担。
9、部分学生家长则认为,大学生基本已经是成年人,自然有自己的想法和人生规划,有时候还可以利用课余时间做一下兼职锻炼自己,贴补家用,而大学教师热衷副业,轻视教学,部分无关紧要的公共课程可以选择不听。但是在专业课上面,家长们觉得学校应尽到自己的责任,在上课的时候应注重理论和实际的结合,作为学生不管喜不喜欢也应该要听。
10、学校负责学风建设的老师表示,固定座位相对于其他学校的“蓝牙点名”、“指纹”、“拍照”等等技术而言,技术门槛低,对于减少逃课率、挂科率来说很有必要,可以帮助学生更好地完成学业,这也是学校培养人才的责任所在。
11、也有评论家提到教育改革了很多年,一下子就回到了“解放前”。大学应该更加自由,这样更好的刺激学生的思维。法律人士认为这个做为大学本身的考勤制度,并不涉及人身自由,学校方面的做法完全可行。
12、佛大校学生会于10月24号邀请龙建刚教授(佛山电视台主持人)在本部基础楼举办了一次教授论坛。当晚,一个非常大的课室人满为患,甚至有学生宁愿站着听两个小时,这也恰恰讥讽了学校的制度,也进一步说明了佛大的学生不是不爱学习、不爱听课,只是老师上课缺乏吸引力,照本宣科。

四、总结与建议

学生逃课无非是两种原因,一是某些课本身缺乏吸引力;二是老师在学期考核时过于松懈。
首先,作为学生总是要上课的。去不去,那是纪律规定的,听不听,那是自己决定的。如果老师讲得不好,作为学生可以看自己的书、想自己的事。而靠点名来维持上座率,那是老师的悲哀、学生的不幸。另外出勤率有时候也会影响到老师的心情。
其次,学校应该在先提高教师本身上课质量的情况下,才能要求学生去听课,比如可以进行一些精品课程评选,教师上课评比等等活动。尤其是让一些本身就枯燥的课程如何变得更有意思,课程本身更有质量和吸引力,自然能够吸引更多的学生上课。把学生的学习自觉性的提高与老师上课水平的提高结合起来。
最后,学校也应当考虑改革教学方法和课程制度,取消一些毫无新意的课程,类似马克思、思想道德与法律修养等等。另外也应该以宽容的态度允许部分学生选择自习,因为学生只要能通过自我学习完成学业,那同样符合学校的培养目的。