图像思维·智力的混乱区——精神病人的思维状态

作者:wiLdGoose 发布时间:2018 年 9 月 4 日 分类:观点 ViewPoint 暂无评论

备注:N 多年未更新,还是善始善终吧。

本文(书)作者刘善永先生,在本网站(博客)以连载形式发布,未经授权不得转载、演绎或进行任何形式的商业应用。


上一篇:图像思维·儿童接受教育的重点途径和胎教的误区
本文(书)目录:猛击此处


一个健康的人,无论他聪明还是笨,脑组织都是客观实景图像思维。但是脑组织思维图像出现很模糊黑暗虚幻,就进入了虚景图像思维、理智便进入了混乱区。什么是虚景图像思维?据说有外国人研究梦,希望从中解开理智之谜。其实梦境说明了人的思维时图像思维。白天人在清醒时,记忆有自主回放功能,常常会自主回放一些被忘记的往事图像,能够提醒被忘记的重要事情。有人打完麻将半夜回到家里,各种牌的图像不停地在脑组织里回放,想睡又睡不成。刚刚故去亲友的图像总是不停的在脑组织中强烈回放,挥之不去,索然心怀。梦是睡眠时脑组织记忆自主回放的低质量的虚景图像,白天清醒时人会说让我再好好想想哪件事,既是促进记忆组织回放更清晰高质量图像。而梦只能放映成虚景图像。所以人醒来时,知道是做梦,吧它跟清醒时看到的客观实景图像相区别。梦中看到一堆钱,但看不清楚真实的图案,看到熟人但不具备他实际性格,梦中图像没有真实质感。梦中坏人追你、你无路可逃,梦中图像没有空间和时间感。

梦境可以帮助我们理解精神病人脑思维图像的一部分现实状态。真正精神病人的脑思维图像更加模糊、黑暗、虚幻不清,大脑对此图像无法理解思维。一台电视机坏了,画面模糊虚幻混乱,你无法看清其中内容。忧郁症病人迷茫的眼神,那是他脑思维审视组织图像虚幻模糊黑暗,无法理智思维的表现。虚幻模糊黑暗的脑审视组织中的图像,使他对过去喜爱的地方毫无兴趣。对自己的亲人失去了孰知感,失去了亲情和亲热。有些正常人会有这样经历:把门锁好,刚离开几步,却又怀疑门没有锁好,急忙回去看,看到的门已好好锁在那里,再离开时还是觉得门没有锁好,反反复复无法确定。这是你脑直视组织看到门锁的图像,传到脑思维审视组织放映出来并被记忆下来的图像有模糊不清状态,理智思维主要依靠脑思维审视组织放映的图像,所以人转身离开后,思维审视组织回放锁门的图像模糊,无法确定实际上是否锁好门。精神病人脑思维审视图像是虚景,模糊而混乱,发生了质的改变,无法感知外界真实状态。大庭广众之下仿佛没有看见别人。很贵重物品可以随便抛弃毁坏,因为精神病人模糊黑暗虚幻的脑思维审视图像看不出贵重物品与普通物品有什么质的区分,看不出物品存在使用价值。看见别人打仗,传入脑组织的图像孤立没有空间感,仿佛在打自己而害怕。大脑无法清晰有序的观察记忆回放客观实景图像,此时人的行为很荒唐。正常人在漆黑的夜晚,在荒郊野外看到的物体都是无序的暗影,脑思维图像无法认清客观实景图像而害怕。

恐惧症是精神病人白天看人或看物,在脑思维审视组织里放映出是虚幻的暗影,无法认识思维应对而感到十分害怕或情绪焦虑紧张。精神病人脑思维审视图像虚幻黑暗模糊,不同程度失去对外界认识感,同时有的记忆图像也模糊,但相对于即时传入脑组织中的客观实景图像要清晰一些。此时这些记忆的某些组织又出现病态自主回放。病人出现脱离现实感知,反复叙说某一件事情状态。如果许多模糊的记忆组织都参与了强烈自主回放图像状态,病人叙说会杂乱无章。客观世界成了他认识黑洞,模糊混乱的记忆,成为他头脑中孤立的世界。如果病人脑思维审视组织,接收放映的客观实景图像还有某些程度清晰度,就有某些控制力,知道自己的脑组织处在强烈的病态记忆图像回放,坚决使这些回放停下来,刚强迫混乱的自主回放停下来。人很难受,就像经过激烈运动后,人停下来,心脏狂跳不停一样难受,但此时理智告诉自己,停下自主回放感受是好的感受。组织因而会得到休息。如果此时到清静的郊外散心,脑思维图像清晰度会相对提高,对外界感知能力提高,心情会好多了。病人看见一个人,在脑思维组织表现是一个黑暗动态影像,他无法认识和应对,很害怕。此时大脑又感觉到手的存在,手加人的暗影,既是打人的思维图像,于是开始乱打人。

2003年中央电视科技博览节目,播出一个联合国医务工作者来中国调研抑郁症患者为什么会自杀。尤其有人经过治疗,看似病情好转的时候,还会自杀的原因。因此我写了第一篇关于人智能研究的文章,寄往中央电视台,文章内容是,抑郁症的原因不是患者情绪低落引起的,是患者脑思维审视组织放映客观实景图像清晰度出现了虚幻模糊引起的。病人认前思维使用的都是高清晰的客观实景图像。一下子换成了虚幻模糊图像,失去了对客观世界正常感知力,根本无法思维。犹如掉入可怕的精神深渊,也像一个人突然失明生活中难以忍受那样,焦虑害怕情绪笼罩了病人整个精神状态。人生活在高度智慧的社会,失去理智便意味被社会所淘汰。抑郁症是早期精神病,抑郁症患者的脑思维审视组织,即时接收放映客观实景图像清晰度出现了质的下降,但记忆组织里的记忆图像清晰度还没有出现质的下降。这些记忆的理智清楚发现自己得了精神疾病,记忆的理智为了避免耻辱人生的到来(人都认精神病为耻辱),痛苦而理智地选择了自杀。

如果严重丧失理智,反而不会知道羞耻而自杀。所谓服抑郁症药好转,是根本不存在,因为抗抑郁症药根本不可能使病人脑思维审视组织接收放映客观实景图像清晰度提高起来。只是镇静药减轻了人的焦虑,思维放缓。或者经过时间推移,他对抑郁症有茫然适应感,内心却深深被智能下降,被药副作用所困扰。感到前途黑暗而继续寻求解脱。正常人遇到挫折和困难,哪怕十几年,高清晰的脑思维图像使人更加善于学习,更坚强地斗争到胜利。克服困难和挫折的经历丰富了人生知识,感到英勇艰苦的奋斗其乐无穷。而抑郁症病人脑思维图像虚幻模糊黑暗,思维混乱,对现实分辨不清,和其他残疾人一样,属智能残疾。如果此时你仍要他做复杂一点的理智工作,加重他智能负担,他的模糊脑思维图像更加混乱,精神更加焦虑。此时减轻抑郁症的各种智能负担。

抑郁症病人的治疗,更应该说是控制,首先不是用药。上面说过没有药可以恢复脑思维图像的清晰度,恢复思维功能。药肯定对思维神经组织又损伤。首先让病人了解自己的病因是脑思维图像虚幻模糊黑暗产生智力下降,和生活兴趣下降。应当正确认识精神疾病是一种常见多发病,和其他病一样并不丢人。和其他残疾人一样是智力残病,应当受到社会的帮助和尊重。很多人会在重病压力下,产生精神疾病,加速了死亡到来。即使有神话般医疗技术,治好原来重病,他又成了精神病人。老年痴呆也是精神病。得了精神病会受到世俗嘲笑,要告诫自己不要理会偏见,自己爱护自己,要为父母、子女、家庭很好的活着。知道自己脑组织思维图像出现虚幻模糊孤立的状态,用仍存在的记忆理智帮助自己较正常的认识事物,干一些得心应手的活,努力把每一件事往好的方向办,努力的乐观一些,清除焦虑情绪,避免焦虑情绪出现导致高血压/心脏病/糖尿病等症出现。慢慢适应会用现状脑思维图像进行低水平理智思维。还要善于利用没被损伤的记忆图像即记忆知识做一些事情。

有人认为患早期精神疾病后,到远方甚至漂洋过海到异地养病有好处,这是实践总结出科学道理的一种方法。它的好处是避免熟人对你的精神变化做出评价而导致产生焦虑,避免想起过去在此地如何轰轰烈烈做事,与今天无法做事的无奈相比较。到了新地方,过去理智即过去的记忆不再有回放的意义。也不再陷入痛苦的对比当中,会以现实的状态较平静地对待新生活,忘记了自己的过去。这是在原地很难调整到的状态。也是前面说的抑郁症一般不要服药。以平和心态对待适应智能下降的变化,适应以低智能水平参与社会活动,这是很好的了。其实到野外树林散步,可以帮助平抑每一天积累的焦虑,使脑思维图像清晰度达到自己的最佳状态。

外国人说,发现阳光可以抗抑郁,我认为真实的原因是,阳光使物体的客观实景图像,更加明亮清晰。因而传入人脑中的客观实景图像相对清晰了许多,获得较清晰的脑思维图像的抑郁症病人,理智会清醒一些精神也就愉快一些。正常人生活中工作中,也会这样产生焦虑,让你把一大堆乱线头理好,经过一段时间细心努力后仍旧无头绪,脑思维对乱线头绪表现不清时会烦乱。很长时间解不出一道难题,解题思路上脑图像中很乱,人也会烦乱。抑郁症病人脑思维图像虚幻孤立模糊混乱,所以抑郁症使人整日焦虑,闷闷不乐。

古人有一个治愈抑郁症笑话,说某官换抑郁症终日不乐,找一名医诊疗,名医自知不能治,而在闭目诊脉时,故意荒唐错诊为月经不调,引起此官发笑。以后每想此事官人必笑,经过一段时间发笑后,抑郁症不治而愈。此事不可信!笑不会对抑郁症产生根源,即脑思维图像虚幻模糊产生本质改变。但抑郁症患者一定要使自己愉快一些,阻止抑郁症发展,阻止智力下降。精神病人某些不理智表现不是他本意,是虚幻孤立模糊黑暗的脑思维诱使的结果不可嘲笑,只要没有危险活动,就不要强迫他们做什么。像一个心脏功能历来正常,突然出现心脏功能感觉,心理恐惧反应立即大增一样,一个正常理智思维的人,突然出现模糊虚幻的虚景图像思维,思维换乱无法进行,心理压力十分巨大。这个初期完全靠正确的心理帮助,平抑情绪,使病人缓慢适应新的脑思维状。毛泽东时代的政治思想工作,是对正常人因思想认识产生的情绪波动,做的强大的思想工作。也是今天意义的强大的心理支持和帮助。借用毛泽东时代的一句话:我们死都不怕,再加上我们的一句话:我们还能怕精神疾病吗?我们一定能抗击它。

酷爱迷信的人,也是脑思维图像模糊的缘故,传播科学道理、他较模糊的思维图像,很难把科学道理理解成清晰的客观实景特征图像,在实践中应用。于是编造虚幻的,途径简单可以实现理想的迷信思想被完全接受。祈祷神灵保佑,可以获得巨大幸运很成功成为一条轻松的选择。虽然那么不现实,但总把别人的成功,归于神灵保佑。宁可闭目相信,绝不观察探究。一旦他的迷信思想遇到反对,会感到虚幻的神力的甜蜜的梦想遇到粉碎,而坚决反对。不吉利话会毁灭前程,商业开张写上“全聚来通”、“四海达三江”之类吉利话。不用说,全城人都聚到你的店铺,周围人都来了,也容易造成混乱,踏平经营场所。全聚来不一定是好话。更不会有很多人远隔四海,跋山涉水到自己通四海店里消费一、二百块钱吧。

迷信者说,信者灵不信者不灵。不灵则是现实存在。而科学道理信则灵,不信也灵。违背者受挫,它是时时刻刻存在的客观现实。迷信产生也有虚景思维根源,做梦时一些梦中虚景图像不理解,认为是神灵所示,出现幻觉也认为是神灵所示。据传一个人说夜间遇见了可怕的鬼,吓得魂飞魄散,后来被鬼纠缠折磨,发展成胡言乱语疯狂而死。人们说真有鬼。其实不对,就像有人说某人摔倒后得了脑血栓是错的一样,应该是发生了脑血栓才使病人跌倒。那个人首先产生了虚景思维,得了精神病,幻觉撞见了可怕的鬼,情绪得不到稳定,恐慌之死。惊吓恐慌和不定比生气更容易得病或急剧加重病情。每一次嘲笑和不理解都会深深刺痛早期精神病人十分无助的自尊心。

云主机挂载虚拟磁盘笔记

作者:wiLdGoose 发布时间:2018 年 9 月 3 日 分类:技术 Technology 暂无评论

最近接手了一堆联通 IDC 的云主机(数量真的很多),也分配了云盘资源。看了一下需要手动挂载,对于懒癌重度患者亟须解放劳动力。

以下是笔记。

首先确认云盘资源是否已分配关联:

[root@centos7 ~]# fdisk -l

结果:

磁盘 /dev/vda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d3443

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048     1001471      499712   83  Linux
/dev/vda2         1001472   104857599    51928064   8e  Linux LVM

磁盘 /dev/vdb:429.5 GB, 429496729600 字节,838860800 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/rootvg-rootlv:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/mapper/rootvg-swaplv:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

因此确定云盘设备路径为:

/dev/vdb

初始化:

[root@centos7 ~]# fdisk /dev/vdb

可按需进行分区,我这边只设置一个主分区。

接着以 ext4 格式对其进行格式化:

[root@centos7 ~]# mkfs.ext4 /dev/vdb

其结果:

mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
26214400 inodes, 104857600 blocks
5242880 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2252341248
3200 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

下一步对其进行手动挂载:

[root@centos7 ~]# mkdir /data
[root@centos7 ~]# mount /dev/vdb /data

行了,看看是否挂载正确:

[root@centos7 ~]# df -h

没问题的话,最后配置自动挂载:

[root@centos7 ~]# vim /etc/fstab

在文件最后添加一行:

/dev/vdb /data ext4 defaults 0 0

连在一起就是:

#!/bin/bash
fdisk /dev/vdb <<EOF
n
p
1


wq
EOF

mkfs.ext4 /dev/vdb &&  mkdir /data && mount /dev/vdb /data
echo '/dev/vdb /data ext4 defaults 0 0' >> /etc/fstab

然后用 pssh 之类的,哗啦一下都搞定。

- EOF -

PHP 图像尺寸大小缩放(缩略图)及图片水印等处理并以 MySQL 存储

作者:wiLdGoose 发布时间:2016 年 10 月 2 日 分类:技术 Technology 3 条评论

这是在一个 BT 的运行环境下诞生的需求,折腾数日,写下来自己马克一下。

1、需求:

1.1、表单上传本地图片;
1.2、以指定最大宽或指定最大高处理缩略图;
1.3、以指定最大宽高缩放原图并添加图片水印;
1.4、缩略图及水印图须连同原图一同入库存储。

2、函数部分:

2.1、获取图片信息函数

function get_image_info($file) {
    $result = getimagesize($file);
    $info = array();
    $info['width'] = $result[0];
    $info['height'] = $result[1];
    $info['type'] = $result[2];
    return $info;
}

2.2、原图宽高与缩放宽高运算函数

function fix_image_size($source_width, $source_height, $max_width, $max_height) {
    $size = array();
    if ($max_width == false) {
        if ($max_height < $source_height) {
            $size['width'] = $max_width < $source_width ? floor($max_height / ($source_height / $source_width)) : $source_width;
            $size['height'] = $max_height;
        }
        else {
            $size['width'] = $source_width;
            $size['height'] = $source_height;
        }
    }
    elseif ($max_height == false) {
        if ($max_width < $source_width) {
            $size['width'] = $max_width;
            $size['height'] = $max_height < $source_height ? floor($max_width / ($source_width / $source_height)) : $source_height;
        }
        else {
            $size['width'] = $source_width;
            $size['height'] = $source_height;
        }
    }
    else {
        if (($max_width && $source_width > $max_width) || ($max_height && $source_height > $max_height)) {
            if ($max_width && $source_width > $max_width) {
                $width_ratio = $max_width / $source_width;
                $resize_width_tag = true;
            }
            if ($max_height && $source_height > $max_height) {
                $height_ratio = $max_height / $source_height;
                $resize_height_tag = true;
            }
            if ($resize_width_tag && $resize_height_tag) $ratio = $width_ratio < $height_ratio ? $width_ratio : $height_ratio;
            if ($resize_width_tag && !$resize_height_tag) $ratio = $width_ratio;
            if ($resize_height_tag && !$resize_width_tag) $ratio = $height_ratio;
            $size['width'] = floor($source_width * $ratio);
            $size['height'] = floor($source_height * $ratio);
        }
        else {
            $size['width'] = $source_width;
            $size['height'] = $source_height;
        }
    }
    return $size;
}

2.3、缩略图处理函数

function resize_image($source_image_string, $source_width, $source_height, $resize_width, $resize_height) {
    if (!empty($source_image_string) && !empty($source_width) && !empty($source_height) && (!empty($resize_width) || !empty($resize_height))) {
        $resize_image = imagecreatetruecolor($resize_width, $resize_height);
        $source_image = imagecreatefromstring(base64_decode($source_image_string));
        if (function_exists('imagecopyresampled')) imagecopyresampled($resize_image, $source_image, 0, 0, 0, 0, $resize_width, $resize_height, $source_width, $source_height);
        else imagecopyresized($resize_image, $source_image, 0, 0, 0, 0, $resize_width, $resize_height, $source_width, $source_height);
        $image_stream = array();
        ob_start();
        imagejpeg($resize_image, null, 100);
        $image_stream['data'] = ob_get_contents();
        $image_stream['length'] = ob_get_length();
        ob_end_clean();
        if (!empty($image_stream['data']) && $image_stream['length'] > 0) {
            imagedestroy($source_image);
            imagedestroy($resize_image);
            return $image_stream;
        }
        else return false;
    }
    else return false;
}

2.4、图片水印处理函数

function watermark_image($source_image_string, $source_width, $source_height, $watermark_image_file) {
    if (!empty($source_image_string) && !empty($source_width) && !empty($source_height) && !empty($watermark_image_file)) {
        $source_image = imagecreatefromstring(base64_decode($source_image_string));
        $watermark_image_info = get_image_info($watermark_image_file);
        if ($watermark_image_info['type'] == 1) $watermark_image = imagecreatefromgif($watermark_image_file);
        elseif ($watermark_image_info['type'] == 2) $watermark_image = imagecreatefromjpeg($watermark_image_file);
        elseif ($watermark_image_info['type'] == 3) $watermark_image = imagecreateFrompng($watermark_image_file);
        else return false;
        if (empty($watermark_image)) return false;
        $x = $source_width - $watermark_image_info['width'];
        $y = $source_height - $watermark_image_info['height'];
        imagecopy($source_image, $watermark_image, $x, $y, 0, 0, $watermark_image_info['width'], $watermark_image_info['height']) or die('Error');
        ob_start();
        imagejpeg($source_image, null, 100);
        $image_stream['data'] = ob_get_contents();
        $image_stream['length'] = ob_get_length();
        ob_end_clean();
        if (!empty($image_stream['data']) && $image_stream['length'] > 0) {
            imagedestroy($source_image);
            imagedestroy($watermark_image);
            return $image_stream;
        }
        else return false;
    }
    return false;
}

3、调用部分

3.1、表单数据获取

$attach_type = $_FILES['attach']['type'];
$attach_tmp_name = $_FILES['attach']['tmp_name'];
$attach_error = $_FILES['attach']['error'];
$attach_size = $_FILES['attach']['size'];

3.2、元数据处理

$source_image_file = $attach_tmp_name;
$source_image_info = get_image_info($source_image_file);
$source_image_string = base64_encode(file_get_contents($source_image_file));

3.3、入库原图处理

$fp_original_image = fopen($attach_tmp_name, 'rb');
if (!$fp_original_image) die('Error');
$original_image_content = addslashes(fread($fp_original_image, filesize($attach_tmp_name)));
fclose($fp_original_image);
unlink($attach_tmp_name);

3.4、缩略图处理

$thumbnail_image_width = 300;
$thumbnail_image_height = false;
$thumbnail_image_size = fix_image_size($source_image_info['width'], $source_image_info['height'], $thumbnail_image_width, $thumbnail_image_height);
$thumbnail_image = resize_image($source_image_string, $source_image_info['width'], $source_image_info['height'], $thumbnail_image_size['width'], $thumbnail_image_size['height']);
if (empty($thumbnail_image['data']) || $thumbnail_image['length'] <= 0) die('Error');

3.5、图片水印定义

$watermark_image_file = 'path/to/watermark.png';
$watermark_image_width = 900;
$watermark_image_height = 600;
$watermark_image_size = fix_image_size($source_image_info['width'], $source_image_info['height'], $watermark_image_width, $watermark_image_height);

3.6、处理水印前缩放处理

$watermark_resize_image = resize_image($source_image_string, $source_image_info['width'], $source_image_info['height'], $watermark_image_size['width'], $watermark_image_size['height']);
if (empty($watermark_resize_image['data']) || $watermark_resize_image['length'] <= 0) die('Error');

3.7、水印处理

$watermark_image = watermark_image(base64_encode($watermark_resize_image['data']), $watermark_image_size['width'], $watermark_image_size['height'], $watermark_image_file);
if (empty($watermark_image['data']) || $watermark_image['length'] <= 0) die('Error');

4、返回值

4.1、图片类型

$attach_type

4.2、原图

4.2.1、原图二进制数据

$original_image_content

4.2.2、原图大小

$attach_size

4.3、缩略图

4.3.1、缩略图二进制数据

addslashes($thumbnail_image['data'])

4.3.2、缩略图大小

$thumbnail_image['length']

4.4、水印图

4.4.1、水印图二进制数据

addslashes($watermark_image['data'])

4.4.2、水印图大小

$watermark_image['length']

5、入库 SQL 构造

略。

- EOF -

喂!还活着吗?

作者:wiLdGoose 发布时间:2016 年 3 月 20 日 分类:技术 Technology 7 条评论

本博自 2012 年光荣地被 GFW 认证后,长期流亡海外。辗转香港、日本、美国等地,依然在高墙之外。2014 年的时候,眼看我的域名邮箱都收不到来自墙内的邮件,再也坐不住了。后来通过一些技术方式调整了部署,邮箱恢复正常,本博也终于得见天日。

三年多的时间发生了什么?我不能告诉你。只能说我也做了很多事情,唯一值得庆幸的是,我终于离开了互联网行业。这种感觉也正如同围城效应,现在反思前后,居然还有些许不舍。再值得庆幸的是,互联网就在我们身边。你玩儿,或者不玩儿,Ta 都在这里。每时每刻、不离不弃。

最近又遇到一件事情让我重操旧业。作为重度 Google 用户,已经具备常年与 GFW 作斗争的经验。然而在各种两会各种峰会的轮番轰炸下,梯子一个一个倒下去。SSH 转 Socks5 的方式早已落伍,各种 VPN 服务也在挣扎。为了能够更愉快地玩耍,我决定自食其力。

首先要有一台墙外的服务器或者 VPS。现在阿里云、腾讯云等各种云都做得不错,价格也亲民(我用的不是上述服务商,别问为什么,谢谢)。操作系统 CentOS,开始:

检查内核环境是否包含 mppe,是否支持 pptp。CentOS 6.4 内核版本在 2.6.15 以上,都已默认集成。

cat /dev/ppp
cat /dev/net/tun

安装 ppp、防火墙与 pptpd:

yum install -y ppp iptables
wget -c http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -Uhv pptpd-1.4.0-1.el6.x86_64.rpm
yum install pptpd

修改配置文件中的 DNS 为 8.8.8.8 和 8.8.4.4:

vi /etc/ppp/options.pptpd

配置 VPN 账户:

vi /etc/ppp/chap-secrets

配置客户端分配到内网的 IP 地址,记得在最后加一个空行。

vi /etc/pptpd.conf

修改 net.ipv4.ip_forward 为 1:

vi /etc/sysctl.conf

生效配置,启动防火墙服务:

/sbin/sysctl -p
/sbin/service iptables start

根据网卡参数配置防火墙。由于我的 VPS 有两个公网 IP,就这样:

/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.0.0/24 -j SNAT --to-source xx.xx.xx.xx
/sbin/iptables -t nat -A POSTROUTING -o eth1:1 -s 192.168.0.0/24 -j SNAT --to-source x.x.x.x

保存设置,重启服务:

/etc/init.d/iptables save
/sbin/service iptables restart

最后重启 pptpd 就大功告成了:

service pptpd restart

还可以设置开机启动:

chkconfig pptpd on
chkconfig iptables on

参考文章《centos6.4安装搭建pptp vpn服务(附pptp vpn 一键安装包) | 大步's Blog》,原文作者:大步。原链接已失效。

从今天开始,妈妈再也不用担心我的学习。家中小米路由以及单位极路由完美适配。其中极路由本身有智能路由模式,小米路由需要刷开发包,开启 SSH。具体可参见《正确姿势使用智能VPN分流,无缝国内外分流科学上网》。

阅读剩余部分...

本博“被”通过 GFW 质量体系认证

作者:wiLdGoose 发布时间:2012 年 10 月 11 日 分类:生活 Lifestyle 10 条评论

这次,我只想说:Fuck GFW!

中共执政的 63 年,是走有“中国特色”封建集权制道路的 63 年、愚国愚民的 63 年。你们千万不要得意忘形,以为自己有多伟大的政绩,又不辱毛爷爷的使命,把维稳工作做得滴水不漏。在我眼里,你们就是跳梁小丑。不要以为你们在全国范围内投放播出了一部长达几十年的电视连续剧《新闻联播》,就真的可以遮天蔽日、为所欲为,就真的以为老百姓会相信你们在戏里表演的那样:领导都很忙,鞠躬尽瘁死而后已、社会主义中国日益繁荣富强、资本主义人民却生活在水深火热之中。不要把全体人民都当作傻瓜,你们的拙劣演技我们是有目共睹的。

我不得不承认,你们以前是土匪军,现在是执政党,煽颠的能力还是不错的。这从最近钓鱼小岛这场戏就可以看出,也许你们有时候真的可以用你们的喉舌控制媒体的声音、忽悠一些不明真相的群众、转移公众的视线。但是纸永远包不住火,连小柯南都知道,真相只有一个。

远的就不说了。除此之外,你们还禁锢进步思想,大搞互联网审查制度、干涉网民正常上网,居然大言不惭地说中国的互联网是最开放的。能将掩耳盗铃发挥到此般极致,我深深地佩服你们的勇气。你们可以不要脸、可以自甘堕落,但是逆潮流而动、违背社会发展的客观规律、抵制基本普世价值、无视人权,你们就一定能成为民族的千古罪人。加油,让我们拭目以待。

回到文章主题,说说本博是如何一步一步取得“被认证”的荣誉的。

一开始本博还在天朝生根发芽,突然全国范围推行备案政策,我就开始着手搬家。后来天朝的相关政策一直不见正常,甚至出现了“白名单”传闻,于是我在 Godaddy 买了主机和固定 IP,确定永久“移民”了。

随后一段时间,国内访问本博除了速度慢之外其他也都正常。但是好景不长,Google 事件发生后,Google 中国域名迁至香港。那时我发现国内访问国外的网站开始时断时续了,后来甚至有人总结出天朝当局封锁基于 HTTPS 协议的 Google 服务的时间段规律。

接着我发现 Godaddy 的 DNS 在国内也开始不正常,本博的访问也出现了类似于这种规律的周期性抽风。于是我又申请了 SSL 证书,并启用强制性 HTTPS 跳转,稍有成效。

今年国庆节期间,监控报告显示本博在全国大部分地区开始全时段的无法访问。我的小心脏紧张了一下,并意识到这次是来真的了。果然,经过技术测试已证实本博 xuchao.org 与 xuchao.net 在全国大部分地区 ISP 的 DNS 中被屏蔽解析,feed 订阅地址 feed.xuchao.org 也随之只能翻墙打开,导致使用诸如 Google Reader 等订阅器的同学以为我很久没更新博客了。其中 xuchao.org 尤为悲惨,连 MX 记录也不给我放过,直接导致我现在接收或者发送国内运营商的邮件,会有很长很长时间的延迟甚至退信。相对于这两个域名,xuchao.cn 等几个国内域名和中文域名幸免于难。

突然想起前几天这位同学的评论,应该也与这事有关系。

放图说明:

在整个测试过程中,我要感谢 blankyao水总明城、郭丹、磁力等同学先后给予无私的协助与关怀。

解决方案:

既然是 DNS 屏蔽,我们可以通过 8.8.8.8 或者本地 hosts 文件的方式来解决。如果您不知道我在说什么,请到 CCAV 等娱乐频道自学。谢谢。

最后,feed 的问题我将在近期解决,初步计划迁移到 feedburner。敬请期待。

  1. 1
  2. 2
  3. 3
  4. 4
  5. ...
  6. 39