Debian/树莓派Raspberry Pi加速上网体验之设置Squid3透明代理

上一篇文章介绍了如何通过设置DNS服务器来加速上网体验,今天我要向大家介绍的是如何设置透明代理实现HTTP的缓存,稍后将介绍如何过滤屏蔽相关广告站点。

首先我们已经配置好了无线热点,如果不清楚的话可以参考我前面的文章,配置好的效果是通过无线网卡连接到树莓派,然后流量经过wlan0网卡转到eth0然后出口,也就是说eth0相当于我们路由器的WAN口,而wlan0相当于局域网LAN口,理清这个关系后下面我们继续。

首先要安装squid3,这里可以直接通过下面的命令进行:

apt-get install squid3

继续阅读“Debian/树莓派Raspberry Pi加速上网体验之设置Squid3透明代理”

Debian/树莓派Raspberry Pi加速上网体验之设置公共DNS查询服务器

之前我有一篇文章将树莓派(Raspberry Pi)设置为无线路由的,试用了一段时间觉得效果不错,但是总觉得树莓512MB内存仅仅作为路由太浪费了,于是我就想能不能将DNS公共查询服务器也架设在上面,这样常用的DNS查询将会缓存到树莓派上,也起到DNS查询加速的作用。

首先我找到了网上的解决方案,在树莓讨论版上《[HOW TO] Use your RPI as a DNS server and speed up yo’ net!》,当然这个解决方案是基于这篇文章的《DNS on Raspberry Pi — Speed up your internet Experience》,使用树莓派最大的好处是有强大的社区支持,基本上你所遇到的问题网上都有相关的解决方案,得益于Debian的丰富的包,一些软件可以直接apt安装,我在这里再简单的阐述一下关于DNS公共查询服务器的设置:

原作者为我们直接打包了命令,所以我们可以直接执行下面的代码:

继续阅读“Debian/树莓派Raspberry Pi加速上网体验之设置公共DNS查询服务器”

Debian/Raspberry Pi通过编译的方式安装第三方锐捷(Ruijie)拨号MentoHUST

首先感谢华中科技大学的同学们的贡献,这篇文章没有什么技术含量,大部分内容MentoHUST的主页上都有介绍,详细可以点击这里。我这里主要介绍一下我在Raspberry Pi树莓派上手动编译以及编译过程中遇到的问题,算是做个备忘。

首先我们需要安装svn工具以便于checkout项目代码:

sudo apt-get install subversion-tools

下一步便是从代码库中Check out,然后运行autogen.sh配置脚本:

svn checkout http://mentohust.googlecode.com/svn/trunk/ mentohust
cd mentohust
sh autogen.sh

继续阅读“Debian/Raspberry Pi通过编译的方式安装第三方锐捷(Ruijie)拨号MentoHUST”

将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)

最近又开始折腾起Raspberry Pi来了,因为某处上网需要锐捷拨号,于是我就想能不能让我的树莓派代劳,当然首先要将其改造为路由器,默认自带的网口作为WAN口,我们还缺一个网口,木有办法,只好占用一个USB口,接上一个USB网卡,网上的USB转RJ45网线口的适配器比较少,价格也不便宜,于是就考虑干脆将其改造成无线路由,也符合时下高端大气上档次的标准。

准备工作,当然要先去购买一个USB无线网卡,可以购买的型号比较多,Raspberry Pi官方也提供了兼容性列表供大家参考,具体猛击这里。我这里购买的是网件(Netgear)WNA1000M 150M迷你USB无线网卡

较为官方的介绍配置为无线热点的文章莫过于这一篇《RPI-Wireless-Hotspot》。但是实际配置下来始终无法成功。但是无线网卡确实能够被识别,可以通过lsusblsmod查看到,不过我注意到这款无线的芯片型号是RealTek RTL8188CUS,初步怀疑是驱动问题。

继续阅读“将树莓派Raspberry Pi设置为无线路由器(WiFi热点AP,RTL8188CUS芯片)”

服务器迁移重新配置Web服务的一些细节备忘

之前配置Linux服务器时采用的是Debian系统一直很稳定,这次准备迁移到新的服务器环境上,好在以前的配置我在博客都做了备忘,所以很容易就搞定了,这次服务系统采用的是最新的Debian 7.0,但是有几个细节的忽略导致我折腾了一番,我再这里再做个记录吧:

首先要安装编译环境,虽然我们通过apt-get可以方便的绕过手动编译的环节,但是一些程序包可能内置编译命令,可以编译一些扩展程序,如果不安装编译环境,这些扩展程序将失效。通常通过下面的命令直接安装开发编译套件:

apt-get install build-essential

由于部分app是用Python开发的,而其所依赖的包包含可以提高性能的扩展,但是在编译时出现下面的错误:

src/XXX.c:31:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

继续阅读“服务器迁移重新配置Web服务的一些细节备忘”

解决树莓派(Raspberry Pi)安装Raspbian显示器没有反应问题

前段时间看到Raspberry Pi(树莓派)比较火,于是在element14上也购买了一块,512MB内存,700M的ARM CPU,对于我来说512MB内存已经是绰绰有余了,何况我博客还是架在128MB内存的VPS上呢,不过CPU略差一些,编译神马的都明显比较慢,不过这玩意儿可玩性还是不错的。

首先到官方网站上下载了Raspbian——基于Debian wheezy专为Raspberry Pi定制的Linux系统,然后在Windows下使用Win32DiskImager刻录到新买的Class 10 SD卡上去了,本来由于树莓派仅支持HDMI图像输出,所以商家还推荐HDMI to DVI转接线,我找了下家里的显示器,貌似显示器都是VGA的,于是另外购买了HDMI to VGA的转换线,话说这类转VGA的价格老贵了。

通过转接线直接通电启动树莓派,由于其不带BIOS,所以全靠刻录到SD卡的系统进行引导,我尝试了很多次无奈显示器没有任何输出。

继续阅读“解决树莓派(Raspberry Pi)安装Raspbian显示器没有反应问题”

解决virtualenv下安装Python PIL的support not available问题

配置的Debian Web服务器,通过virtualenv构建了Pyramid项目,大部分代码运行挺正常,到一个验证码程序时出错了,检查日志得到如下Python异常:

ImportError: No module named PIL

但是我PIL明明是通过easy_install直接安装的啊,求助于网络找到了这么一篇解决方案《The problem with installing PIL using virtualenv or buildout》,原文的意思是在pypi上的PIL版本不兼容于setuptools,所以不能被easy_install正常安装,必须指定url安装兼容版本,比如如下命令:

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

经过这么一折腾,确实测试下来import PIL不会报错了,但是原程序依旧不能正常运行,继续检查日志后得到下面的异常:

ImportError: The _imagingft C module is not installed

继续阅读“解决virtualenv下安装Python PIL的support not available问题”

Debian环境 Python + Pyramid + Nginx + uWSGI配置备忘

前面我写过一篇文章讲解如何在Debian环境下配置Python + Django + Nginx + uWSGI + MySQL,也是具有借鉴意义的,欢迎大家先阅读那篇文章。

nginx安装我就不介绍了,直接apt-get即可。

Python大部分Linux系统里应该预装了,我也不介绍安装了,基本上我们这里需要Python 2.7即可,通过命令python --version确认一下默认Python的版本号。

通过命令安装uwsgi:

sudo apt-get update
sudo apt-get install uwsgi uwsgi-plugin-python

注意这个uwsgi-plugin-python是必不可少了,否则uwsgi的log日志会提示— unavailable modifier requested: 0 —

好了,下面我们介绍如何安装Pyramid,大家也可以参考Pyramid的官方文档《Installing Pyramid》,我这里再简单的叙述下:

继续阅读“Debian环境 Python + Pyramid + Nginx + uWSGI配置备忘”

Debian安装PostgreSQL及配置备忘

用惯了MySQL后,想尝试使用下PostgreSQL,据说这玩意儿也很强大,我在网上搜索了下相关中文书籍,可惜相关书籍远远没有MySQL那么多,不过我在官方找到了由志愿者翻译的文档(参考9.1文档翻译项目),说实话我英文文档阅读能力还是比较纠结的,所以有中文文档当然优先中文了。

在Debian下可以通过apt-get命令直接安装:

sudo apt-get install postgresql postgresql-client postgresql-server-dev-all

安装完成后,PostgreSQL默认就创建了名为postgres用户,这个和MySQL的root以及SQL Server的sa账户一样,是超级管理员账户,与MySQL不一样的是,其还创建了postgres的Unix系统账户,和SQL Server的master数据库一样,PostgreSQL的默认数据库是template1,你可以用命令行管理工具psql来管理它,当然前提是要切换到postgres的系统账户:

# su - postgres
$ psql

继续阅读“Debian安装PostgreSQL及配置备忘”

Debian下将Subversion(SVN)的svnserve加入启动服务项

前面两篇文章简单的介绍了SVN的使用,其中讲到了如何通过svnserve直接启动SVN服务,但是每次都使用svnserve -d -r ~/repos这样的命令还是略显麻烦,尤其是当我们需要停止或者重启svnserve时还要调用kill命令,十分不便,接下来介绍的是如何将其作为系统服务,让其可以被Debian的invoke-rc.d命令管理。

说是系统服务,说白了就是我们需要启动脚本,大家可以到/etc/init.d路径下看到一堆启动脚本,比如有我们熟悉的nginx,有了初始脚本(initscript)我们就可以通过update-rc.d创建文件链接的方式将其链入启动级别(runlevel)中去了,同样也可以被invoke-rc.d管理。

你可以随意查阅/etc/init.d路径下的某些程序的脚本文件,大体上能知道这类文件的写法,当然今天我不是介绍initscript的写法的,更何况网上已经有现成的脚本可用了,参考文章《running Subversion’s svnserve on a Debian system》,我将其脚本修改如下:

继续阅读“Debian下将Subversion(SVN)的svnserve加入启动服务项”