苹果相关

浏览模式: 标准 | 列表 | 图文
Linux操作系统有效防止ARP攻击的设置

Linux操作系统有效防止ARP攻击的设置

一直怀疑服务器被ARP攻击,所以为服务器做了防止ARP的处理。这点linux就不如windows,windows上一装360就可以防范攻击了,但linux就没有类似的功能。找了一些资料,并且问了朋友才了解了一点。
linux上只有做mac地址绑定才可以,但也要交换机上也要做类似的绑定。
但是我没有办法让服务商来帮我做绑定,只能自己做一个简单的绑定了。
最后找了这个简单的资料,随便看看喽。。。。
----start ----
管理员用户登录,打开终端输入
1、#arp -a > /etc/ethers
将ip和mac地址导入ethers
2、#vi /etc/ethers
编辑文件格式,ethers文件内容必须格式如下多余的全部删除,改成形式ip mac
192.168.1.X XX:XX:XX:XX:XX
192.168.1.X XX:XX:XX:XX:XX
...
//注意mac大写,而且没有O只有零,ip和mac空格
3、#vi /etc/rc.d/rc.local //打开并显示 /etc/rc.d/rc.local文件,启动项文件
#i //编辑
//启动的时候执行arp -f按照/etc/ethers 中的内容绑定
在 /etc/rc.d/rc/local 文件中最后加一行
arp -f
ESC退出编辑
:wq //保存编辑
4、#arp -f //执行保存的绑定
(ethers 里不包括网关mac否则会报错)


这只能防住一些arp攻击,如果将网内所有ip mac导入ethers文件,能有效的防止arp攻击
1、nmap -sP 192.168.11.0/24
扫描,结果我的arp表里就有那个网段所有机器的mac,将所有信息复制至/etc/ethers文件
2、3、4同上
--EOF--
OK,我就是这么做的但效果真的一般,将就点喽。想办法在什么时候重装一下系统喽,也只能这样了,现在alexa和PR都降低了。不能再被这种事情折腾了。

用.htaccess缓存图片 提高博客运行效率

用.htaccess缓存图片 提高博客运行效率

这是一篇来自chinaz.com的文章,因为我有几个博客都采用了wordpress,而且我的手机博客上面有大量的图片,因此,Cache图片就成了重中之重的事情。看到这篇文章我就很开心了。很方便的使缓存过期时间设在了一个月后。很方便,用的也很爽。

原文如下:

WordPress博客里大量的图片会使页面加载速度变得缓慢。 此时访问者需要用更多时间才能打开一个页面。 不过我们可以通过缓存图片来解决这个问题。 当页面第一次被加载时,将所有图片存放在浏览器的缓存池里。 之后访问者再加载该页面时,浏览器就可以从浏览器缓存中获取图片,从而减少页面加载时间。

对Apache服务器上的WordPress博客/网站,可以通过编辑根目录下的.htaccess文件来激活图片缓存功能。 浏览器能够简单读取.htaccess文件的缓存控制头,而缓存头会要求浏览器将图片或其它任何媒体保留2周时间(或者更久),这样浏览器就能够随时调用 图片,直到图片过期。 两周后浏览器重新将过期的图片存入缓存。 万一浏览器缓存被清空,浏览器会从缓存中重新加载图片或其它媒体。

下面就是对如何在WordPress博客/网站上激活图片缓存的过程详解。

如果你希望提高网站的运行效率,就应该启用网络服务器上的图片缓存功能。 详细步骤如下:

注意:做任何改动前请先备份网站数据域.htaccess文件。

1. (在FTP中)打开根目录下的.htaccess文件

2. 在.htaccess文件中加入如下代码:

# Image and Flash content Caching for One Month
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>

3. 编辑完毕后保存文件。 代码中“max-age”参数的值为2592000(秒),因此图片缓存和Flash内容缓存在浏览器中保留一个月。

如果这个方法能够奏效,你的网站访问速度将会有很大改善。

原文:Improve Performance by Image Caching of Wordpress Blog using htaccess trick(译 文)

我的文章来自于:http://www.chinaz.com/Webbiz/Exp/0406110L02010.html

很明显的可以看出是针对哪一类的文件进行了header缓存。如果不经常更改,相信这样是足够了。

Nginx下zend framework的设置

Nginx下zend framework的设置

由于zf自带的工具,生成的项目都是基于apache的,而nginx和apache的htaccess(即Rewriter规则)又不一样,而我自己又不会配置nginx,因此看到这个文章就复制以下,以备以后采用。

在Linux环境下增加一段虚拟服务器的设置,设置nginx.conf如下

server {
listen 80;
server_name audit.local;
root /app/audit/public;
access_log /app/audit/logs/audit.access.log main;
error_log /app/audit/logs/audit.error.log;
location / {
index index.php;
# If file not found, redirect to Zend handling, we can remove the (if) here and go directly rewrite
if (!-f $request_filename){
rewrite ^/(.+)$ /index.php?$1& last;
}
}
location ~* ^.+\.(js|ico|gif|jpg|jpeg|pdf|png|css)$ {
access_log off;
expires 7d;
}
location ~ .*\.php?$ {
fastcgi_pass 127.0.0.1:36;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
error_page 404 http://audit.local/error;
}
原文网址:http://www.jefflei.com/post/34.html

在 Ubuntu 9.10 Server 上安装 Nginx 0.8.34

在 Ubuntu 9.10 Server 上安装 Nginx 0.8.34

本文的内容对我来说或许可以有用,因为我的VPS用的就是9.10,用默认的apache好象效率并不高,所以。。。真的可以参考一下。

Nginx 在 3 月 3 日放出了 0.8.34 这个开发版。张宴也随即更新了《Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器》 到第六版。不过,他写的记录是针对 CentOS、Redhat 等 rpm 包管理的服务器。由于习惯了 debian 系列的服务器,特别是用惯了 ubuntu 服务器,在这里特别做一下 Ubuntu 9.10 下的安装笔记。其他基于 deb 包管理的发行版也类似。

首先,为了编译 Nginx,应在新装好的 Ubuntu server 环境下安装如下软件包:

sudo apt-get install build-essential libpcre3-dev libssl-dev libxslt-dev libgd2-xpm-dev libgeoip-dev

然后下载 0.8.34 版本的 Nginx:

wget http://www.nginx.org/download/nginx-0.8.34.tar.gz

解压:

tar xvzf nginx-0.8.34.tar.gz

下载 upstream fair 模块。upstream fair 是比内建的负载均衡更加智能的负载均衡模块。它采用的不是内建负载均衡使用的轮换的均衡算法,而是可以根据页面大小、加载时间长短智能的进行负载均衡。

wget http://github.com/gnosek/nginx-upstream-fair/tarball/master

解压:

tar xvzf gnosek-nginx-upstream-fair-2131c73.tar.gz

然后进入 nginx 源码目录执行 configure 配置编译选项。下面是我所使用的配置:


./configure --conf-path=/etc/nginx/nginx.conf \--error-log-path=/var/log/nginx/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--with-debug \
--with-http_stub_status_module \
--with-http_flv_module \
--with-http_ssl_module \
--with-http_dav_module \
--with-http_gzip_static_module \
--with-mail \
--with-mail_ssl_module \
--with-ipv6 \
--with-http_realip_module \
--with-http_geoip_module \
--with-http_xslt_module \
--with-http_image_filter_module \
--with-sha1=/usr/include/openssl \
--with-md5=/usr/include/openssl \
--add-module=/home/mikespook/gnosek-nginx-upstream-fair-2131c73

这个配置来自于 Jeff Waugh 的 PPA 中的 nginx 0.8.34 编译选项。配置、lock、pid 等文件的位置都是按照 ubuntu 系统惯例设置的。需要注意的是 –add-module 指向的是 upstream fair 的解压缩目录的绝对路径。这样就可以将 upstream fair 编译进 nginx。

然后编译并安装:

make && make install

nginx 就安装成功了。目录 /var/lib/nginx 需要手工建立,否则启动 nginx 会报错:

[emerg]: mkdir() "/var/lib/nginx/body" failed (2: No such file or directory)

建立shell 脚本 /etc/init.d/nginx:

#! /bin/sh

### BEGIN INIT INFO
# Provides: nginx
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the nginx web server
# Description: starts nginx using start-stop-daemon
### END INIT INFO

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/nginx/sbin/nginx
NAME=nginx
DESC=nginx

test -x $DAEMON || exit 0

# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
. /etc/default/nginx
fi

set -e

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
restart|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON
sleep 1
start-stop-daemon --start --quiet --pidfile \
/var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
reload)
echo -n "Reloading $DESC configuration: "
start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \
--exec $DAEMON
echo "$NAME."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

并执行命令:

sudo update-rc.d -f nginx defaults

更新 rc 后,即可使用:

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

控制 nginx 启动。
其他配置不再累述,张宴的 blog 里写得非常清晰。只补充一下 upstream fair 的使用,只要在 nginx 配置文件的 upstream 段加入 fair 开关即可:

upstream backend {
server server1;
server server2;
fair;
}

当然,ubuntu 还可以用上面提到的 Jeff 的 ppa 源进行安装:

echo "deb http://ppa.launchpad.net/jdub/devel/ubuntu hardy main" >> /etc/apt/sources.list
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E9EEF4A1
apt-get update
apt-get install nginx

简单快捷。

原文来自:http://www.mikespook.com/index.php/archives/483,做个参考 。。。。

Linux 上的free命令详解

Linux 上的free命令详解

看到有介绍,当然要了解一下详细情况了。毕竟,我的htc g2当初就是靠这个玩意简单的来判断是沃达丰版还是HTC版的【即32A还是32B】。

解释一下Linux上free命令的输出。

  下面是free的运行结果,一共有4行。为了方便说明,我们加上了列号。这样可以把free的输出看成一个二维数组FO(Free Output)。例如:

  • FO[2][1] = 999212
  • FO[3][2] = 305404
1 2 3 4 5 6
1
total used free shared buffers cached
2 Mem: 999212 967476 31736 0 50668 223000
3 -/+ buffers/cache: 693808 305404
4 Swap: 2048276 154524 1893752

  free的输出一共有四行,第四行为交换区的信息,分别是交换的总量(total),使用量(used)和有多少空闲的交换区(free),这 个比较清楚,不说太多。

  free输出地第二行和第三行是比较让人迷惑的。这两行都是说明内存使用情况的。第一列是总量(free),第二列是使用量(free),第三 列是可用量(free)。第一行的输出时从操作系统(OS)来看的。也就是说,从OS的角度来看,计算机上一共有:

  • 999212KB(缺省时free的单位为KB)物理内存,即FO[2][1];
  • 在这些物理内存中有967476KB(即FO[2][2])被使用了;
  • 还用31736KB(即FO[2][3])是可用的;

这里得到第一个等式:

  • FO[2][1] = FO[2][2] + FO[2][3]

FO[2][4]表示被几个进程共享的内存的,现在已经deprecated,其值总是0(当然在一些系统上也可能不是0,主要取决于free命令 是怎么实现的)。

FO[2][5]表示被OS buffer住的内存。FO[2][6]表示被OS cache的内存。在有些时候buffer和cache这两个词经常混用。不过在一些比较低层的软件里是要区分这两个词的,看老外的洋文:

  • A buffer is something that has yet to be "written" to disk.
  • A cache is something that has been "read" from the disk and stored for later use.

也就是说buffer是用于存放要输出到disk(块设备)的数据的,而cache是存放从disk上读出的数据。这二者是为了提高IO性能的,并 由OS管理。

Linux和其他成熟的操作系统(例如windows),为了提高IO read的性能,总是要多cache一些数据,这也就是为什么FO[2][6](cached memory)比较大,而FO[2][3]比较小的原因。我们可以做一个简单的测试:

  1. 释放掉被系统cache占用的数据;
    echo 3 >/proc/sys/vm/drop_caches
  2. 读一个大文件,并记录时间;
  3. 关闭该文件;
  4. 重读这个大文件,并记录时间;

第二次读应该比第一次快很多。原来我做过一个BerkeleyDB的读操作,大概要读5G的文件,几千万条记录。在我的环境上,第二次读比第一次大 概可以快9倍左右。

  free输出的第二行是从一个应用程序的角度看系统内存的使用情况。

  • 对于FO[3][2],即-buffers/cache, 表示一个应用程序认为系统被用掉多少内存;
  • 对于FO[3][3],即+buffers/cache, 表示一个应用程序认为系统还有多少内存;

因为被系统cache和buffer占用的内存可以被快速回收,所以通常FO[3][3]比FO[2][3]会大很多。

这里还用两个等式:

  • FO[3][2] = FO[2][2] - FO[2][5] - FO[2][6]
  • FO[3][3] = FO[2][3] + FO[2][5] + FO[2][6]

这二者都不难理解。

  free命令由procps.*.rpm提供(在Redhat系列的OS上)。free命令的所有输出值都是从/proc/meminfo中读 出的。

在系统上可能有meminfo(2)这个函数,它就是为了解析/proc/meminfo的。procps这个包自己实现了meminfo()这个 函数。可以下载一个procps的tar包看看具体实现,现在最新版式3.2.8。

--EOF--

原文来自:http://www.cnblogs.com/coldplayerest/archive/2010/02/20/1669949.html,作者就是coldplayerest

Ubuntu 游戏安装设置总篇

Ubuntu 游戏安装设置总篇

如今,游戏这玩意离我有点远了。当然并不是说我不玩,而是说,现在凡是要钱的游戏我几乎都不玩了。或许少了很多乐趣,但相对的,我并不算是沉迷于其中了。

初中,中专那些年,我是算深深的迷在其中,浪费了不少钱,现在不花钱也算是一种补偿吧?初中时代羡慕别人有MD,SFC,中专时代羡慕的就是PS,SS和当时昙花一现的3dO了。直到后面我自己买了台DC后,对PS2,PS3之类的兴趣反而小了。

00年开始有电脑后,就对一些模拟器发生了兴趣,比如那个bleem!,就挺不错,而且还有FOR DC版的。那段时间也算对PS时代回忆了一下。但回忆不深。再后来。bleem!好象被SONY打压过一次之后就不行了,后来还出了一个v什么的,(忘了)这个epsxe在最后就是剩蛋老人了,想不到到现在还活着。。玩PS时,仅对两个游戏有点兴趣,主要是因为没有玩完他们,即使用了模拟器也没有玩全。他们就是:前线任务III和寄生前夜I,没有玩全有很多原因,前线任务是后面买不到CD了。也下载不到。寄生前夜,我在PSP上也玩了一下,但居然CD2那段读不出。郁闷。。。后面我也就放弃了。

看到介绍在UBUNTU下安装这些模拟器的教程,当然是忍不住要复制过来,为以后使用ubuntu的时候做好准备。OK,看全文吧。有点长,懒得编排了。

安装超任模拟器 Snes9X GTK

我对SFC有很深的感情. 试想在90年代, 一盘任天堂卡带动辄200-300银子, 而刷一张超任磁碟最多3块钱. 换个4碟的游戏三国志4才最多12块钱. 多么节省银子啊.

感谢这个软件的作者, 向其致以崇高的敬意. 让我得以在Ubuntu重温超任旧梦.

官方主页: https://launchpad.net/~bearoso/+archive/ppa

E文不好的同学请看我的翻译:

首先,打开源配置文件

sudo gedit /etc/apt/source.list


根据你的Ubuntu版本号, 追加以下源到文件里. 注意, 我是Ubuntu904, 如果你装的是804/810/910, 请自行将jaunty 换成 hardy 等字样


保存并关闭文件. 运行如下命令

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6CF5CE97
sudo apt-get update
sudo apt-get install snes9x-gtk


这样安装就完成了.但需要注意的 是, 默认将游戏的分辨率设成你电脑的分辨率. 这样你打开游戏会非常慢. 解决方法很简单, 依次打开 options -- preference 在左方的树形菜单找到 display , 在右方找到 change fullscreen resolution , 打上勾, 并将之设置为 1024 * 768, 保存即可.

这是我玩多拉基亚776的画面. 感谢游戏的翻译者和这个模拟器的开发者. 再次对你们表达我的敬意.(图暂时传不上)【这是原作者的话,膘叔我也没办法上图】


安装PS模拟器 ePSXE 1.6

网 上安装ePSXE的文章多数很老, 介绍在Ubuntu710 下装的. 今天翻出了一篇强文, 该文作者写了个一键式的安装脚本. 让我如获至宝. 下载后再经自己验证, 修改, 最终得出了这个完善了的安装程序. 应该能通行于Ubuntu 804/810/904/910

首先, 打开这个页面下载安装脚本: http://www.uushare.com/filedownload?user=diegoyun&id=2586695

然后运行如下安装命令

sudo ./installepsxe-32bit-diego-version.sh


命令运行完毕之后, 你将会看到 ~/epsxe 文件夹.

为了玩PS,你需要一个bios文件. 限于版权, 我不能直接把这个文件放到网上. 请自行搜索 Scph1001.bin 和 Scph7502.bin 文件, 并将之放到 ~/epsxe/bios 文件夹.

现在, 运行 ~/epsxe 目录里的 epsxe, 你就可以打开模拟器玩游戏了.

显卡的设置

如果你发现打开游戏的速度很慢, 那么你的显卡大概像我的一样差. 这种情况下, 你可以使用peter's people soft 驱动. 这个驱动的显示效果较次, 但速度很快. 对于玩PS的人来说, 足够满足需求了.

先打开模拟器, 依次点击 config -- video , 在下拉列表里, 选择 P.E.Op.S. SoftX Driver 1.18

然 后点 Configure , 设置很简单, 先点 Nice, 然后点 Window Mode . (这一步很重要. 如果你不点, 默认是全屏打开. 你会看不到游戏界面. ) 我目前设置的是1024 * 768, 再大点我的显卡就不行了. 你可以自己调整试试.

附注: 参考文章: http://ubuntuforums.org/showthread.php?t=1376675 对作者致以崇高敬意.
--EOF--

本文来自于:http://www.cnitblog.com/yunshichen/archive/2010/02/14/64261.html

单网卡 Ubuntu 服务器打造 PPTP Server(VPN)

虽然转载,但并未成功,只是为了防止以后再也找不到类似资料做个备份。

其实作者写的挺详细了,只是我明明设置了RemoteIP,但却无法正确的获取。不知道是否因为是VPS的关系。当然也或许我太笨吧。先转了再说

原文如下,如看原文点击这里:

自从实验室放了台 Linux 服务器后,可玩的东西就越来越多了。虽然这台服务器主要的工作是 Web Server,但鉴于我们那小站压力非常之小,服务器资源绝大多数还是浪费着,所以让它多干些活是个不错的选择。实验室的内部网络中有不少非常有用的资 源,例如科研用的文献资料,个人的实验数据等等,这些内容一旦离开实验室就不那么容易访问到了。解决这个问题最好的办法就是 VPN。在 Ubuntu 上搭建 VPN 服务器的方法非常多,比较著名的有 PPTP, L2TP/IPSec 和 OpenVPN。这三种方式中后两者的安全性比较好,但配置较麻烦。其中 OpenVPN 在 Windows/Mac 平台上还需要额外的客户端。而 L2TP/IPSec 方式虽然比较好,但我配置后,虽然 Windows 和 Linux 用户没有问题,但 Mac/iPhone 却始终无法连上,所以暂时删掉了,日后搞清楚是什么问题再换到这种方式。

只剩下 PPTP 了。事实上 PPTP 是这三者中配置最容易的方式,而且由于 Windows/Mac 系统中都内建相应的客户端,使用起来非常方便。下面我就简单写写我的安装过程,希望对需要的朋友有用。当然如果您有什么高见,也欢迎您提出。

首先,我所有的操作都是在之前文章中介绍的 Ubuntu 8.04 Server 系统中操作的,如果您的系统和我的不一样,请参考之前的两篇文章。我的服务器环境是单网卡 eth0。

在 Ubuntu 中建立 pptp server 需要的软件包为 pptpd,用 apt-get 即可安装:

sudo apt-get install pptpd

系统会自动解决依赖关系,安装好后,需要进行一番设置。首先编辑 /etc/pptpd.conf

sudo nano /etc/pptpd.conf

去掉文件最末端的 localip 和 remoteip 两个参数的注释,并进行相应修改。这里,localip 是 VPN 连通后服务器的 ip 地址,而 remoteip 则是客户端的可分配 ip 地址。下面是我的配置:

localip 10.100.0.1
remoteip 10.100.0.2-10

编辑好这个文件后,我们需要编辑 /etc/ppp/pptpd-options 文件,还是用 nano 编辑,命令这里就不写了。这里绝大多数参数只需维持原来的默认值即可,我们只需要改变其中的 ms-dns 选项,为 VPN 客户端指派 DNS 服务器地址:

ms-dns 202.113.16.10
ms-dns 208.67.222.222

修改 /etc/ppp/chap-secrets 文件,这里面存放着 VPN 的用户名和密码,根据你的实际情况填写即可。如文件中注释所示,第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)。这里我就不贴我的配置了 :)

全部搞定后,我们需要重启 pptpd 服务使新配置生效:

sudo /etc/init.d/pptpd restart

找一台 Windows 电脑,新建个 VPN 链接,地址填服务器的 IP(或域名),用户名密码填刚才设置好的,域那项空着(如果你在 pptpd-options 中设置了,这里就保持一致),点连接就可以了。正常情况下您应该能够建立与服务器的 VPN 链接了。

建立连接之后,您会发现除了可以访问服务器的资源,其余内外和互联网的内容均无法访问。如果需要访问这些内容的话,我们还需要进一步设置:

首先,开启 ipv4 forward。方法是,修改 /etc/sysctl.conf,找到类似下面的行并取消它们的注释:

net.ipv4.ip_forward=1

然后使新配置生效:

sudo sysctl -p

有些时候,经过这样设置,客户端机器就可以上网了(我在虚拟机上这样操作后就可以了)。但我在实验室的服务器上这样操作后仍然无法访问网络,这样我们就需要建立一个 NAT。这里我们使用强大的 iptables 来建立 NAT。首先,先安装 iptables:

sudo apt-get intall iptables

装好后,我们向 nat 表中加入一条规则:

sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE

这样操作后,客户端机器应该就可以上网了。

但是,只是这样,iptables 的规则会在下次重启时被清除,所以我们还需要把它保存下来,方法是使用 iptables-save 命令:

sudo iptables-save > /etc/iptables-rules

然后修改 /etc/network/interfaces 文件,找到 eth0 那一节,在对 eth0 的设置最末尾加上下面这句:

pre-up iptables-restore < /etc/iptables-rules

这样当网卡 eth0 被加载的时候就会自动载入我们预先用 iptables-save 保存下的配置。

到此,一个 VPN Server/Gateway 基本就算架设完毕。当然,也许你按照我的方法做了,还是无法成功,那么下面总结一些我碰到的问题和解决方案:

无法建立 VPN 连接

安装好 pptpd 并设置后,客户端还是无法建立到服务器的连接。造成的原因可能有以下几种:

  1. 服务器端的防火墙设置:PPTP 服务需要使用 1723(tcp) 端口和 gre 协议,因此请确保您的防火墙设置允许这两者通行。
  2. 如果服务器在路由器后面,请确保路由器上做好相应的设置和端口转发。
  3. 如果服务器在路由器后面,那么请确保你的服务器支持 VPN Passthrough。
  4. 如果客户端在路由器后面,那么客户端所使用的路由器也必须支持 VPN Passthrough。其实市面上稍微好点的路由器都是支持 VPN Passthrough 的,当然也不排除那些最最最便宜的便宜货确实不支持。当然,如果你的路由器可以刷 DD-Wrt 的话就刷上吧,DD-Wrt 是支持的。

能建立链接,但“几乎”无法访问互联网

这里我使用“几乎”这个词,是因为并不是完全不能访问互联网。 症状为,打开 Google 搜索没问题,但其它网站均无法打开;SSH 可用,但 scp 不行;ftp 能握手,但传不了文件。我就遇到了这种情况,仔细 Google 后发现原来是 MTU 的问题,用 ping 探测了一下果然是包过大了。知道问题就好办了,我们可以通过 iptables 来修正这一问题。具体原理就不讲了,需要的自己 Google。这里只说解决方案,在 filter 表中添加下面的规则:

sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN
-j TCPMSS --set-mss 1200

上面规则中的 1200 可以根据你的实际情况修改,为了保证最好的网络性能,这个值应该不断修改,直至能保证网络正常使用情况下的最大值。

好了,至此,一台单网卡 pptp-server 就算完成了。

----EOF---

后记:好象有很多类似的文章,前面几段都差不多的。

比如这里:

1、http://blog.sina.com.cn/s/blog_49cd61e70100cbph.html

2、http://hi.baidu.com/wangshuxun25/blog/item/b37779f04deae4a7a50f5231.html ,这个是用的shorewall防火墙,上面两篇都是用iptables的

继续后记:

已经可以了。哈哈。还是我没有配置好的原因。oh yeah ...

【笔记】UBUNTU下安装zendoptimizer

【笔记】UBUNTU下安装zendoptimizer

我用的vps是rashost的,装的是64位的ubuntu,9.10哦,最新版的。朋友在上面装个程序,结果发现无法运行。才想起来还没有安装ZendOptimizer。

找了一下ubuntu下如何安装的,却又搜索到Rashost的官方介绍。。。打开看了一下,没排过版。汗死。
原文内容如下:

Zend Optimizer是由PHP核心引擎“Zend”创建者Zend技术公司所开的免费PHP优化软件。据Zend公司透露使用这个软件某些情况下至少可以提高性能30%以上。今天我在安装了Ubuntu Hardy的VPS上配置了最新的ZendOp。过程记录如下:按照正常流程,在官方网站下载Zend Optimizer是需要注册用户登录之后才能下载的。下载一次后发现其实匿名用户也能下载,用下面这个URL即可: http://downloads.zend.com/optimizer/3.3.3/ZendOptimizer-3.3.3-linux-glib... 在安装Zend Optimizer之前需要先把apache,php安装好: apt-get install libapache2-mod-php 然后在/var/www/下创建index.php: echo "" > /var/www/index.php 然后用浏览器访问VPS,在首页里面搜索不到Zend Optimizer的字样.安装完成后应该能够搜索到Zend Optimizer才对。 tar zxf ZendOptimizer-3.3.3-linux-glibc23-i386.tar.gz cd ZendOptimizer-3.3.3-linux-glibc23-i386 ./install.sh 然后安装程序会询问几个路径,一个个回答即可完成安装。 安装完成,重启apache,然后再访问首页,应该能搜索到Zend Optimizer的字样,说明安装成功了,接下来就可以开始测试性能了。

不过,由于我装的是64位的,就没有办法这样安装了。所以我去官方下载了64位的ZendOptimizer。并解压到服务器上。却发现,根本没有上文说的install.sh
打开readme看了一下,才发现,原来在linux下面,居然只需要加一行代码就行了

[Zend]
zend_extension = "/xxx/xxx/ZendOptimizer.so"

当然,这或许是3.3.9独有的安装方式,反正而不需象windows那样先设置 zend_extenstion_ts,再设置zend_extension_manager.optimizer_ts了

添加了这一行后,运行/etc/init.d/apache2 restart ,再新建一个phpinfo的文件,发现里面已经有了zend optimizer的信息了。

最后提供一下64位的zendoptimizer的下载地址:http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz

【笔记】ubuntu安装AMP后的小问题等

【笔记】ubuntu安装AMP后的小问题等

我曾经写过一篇很简单的笔记,是讲如何安装AMP的,当然很方便。。。,那篇文章在:http://www.neatstudio.com/show-522-1.shtml

今天我在使用了VPS后,也装了这些配置。但最后却仍然报错:

Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

现在我把我的步骤列出来。并列出解决方法

1、到/var/www/下新建一个目录,例如我的 sbphp.com,新目录的路径则为 /var/www/sbphp.com/
2、到/etc/apache2/sites-available/目录下,新建一个文件,名为sbphp.com,内容如下:

<VirtualHost *:80>
ServerAdmin xxx@xxx.com
ServerName sbphp.com
ServerAlias www.sbphp.com
DocumentRoot /var/www/sbphp.com/
<Directory /var/www/sbphp.com/ >
#这行是不显示列表
Options -Indexes
Order Deny,Allow
Allow from all
</Directory>
</VirtualHost>

3、运行:a2ensite sbphp.com
4、然后系统会提示你重载一下apache,命令为 /etc/init.d/apache2 reload

于是乎就报上面的错了。这个问题的主要原因是没有定义ServerName,也就是没有定义默认的ServerName
5、到etc目录下建立一个hosts文件,内容为:127.0.0.1 localhost
6、回到apache2的目录,/etc/apache2/ ,打开httpd.conf,加上一行 ServerName 127.0.0.1 或者是你的服务器对应的IP地址

OK,再运行 /etc/init.d/apache2 reload ,不报错了吧。。

【备注】手工安装lamp的朋友可以看这里:http://hi.baidu.com/javatown/blog/item/c870547e956eb63d0dd7da3c.html

Tiny Core Linux 2.7 发布

Tiny Core Linux 2.7 发布

看这个名字就知道这个linux很小。事实上,也只有10M左右。不过我看中的是他的小,如果做分发软件那就爽了。。。给别人一虚拟机,然后啥也不提供。。。。就让他们自己使用我的软件。随便想想而己。。。

主要是yii的框架用的就是这种技巧,所以我也想学学。。

新闻来源:开源中国社区
Tiny Core Linux是一份很小(10 MB)的最低限度Linux桌面。它基于Linux 2.6内核、Busybox、Tiny X、FLTK图形用户界面、JWM窗口管理器,全部运行在内存中。它并非一份完整的桌面,也不完整支持所有的硬件;它只代表能引导进入一份最小X窗口桌面 所需的核心内容,典型情况下可包含对有线网络的访问。这份最小桌面可以通过从在线软件仓库安装额外应用软件来进行扩展。

Tiny Core Linux是一份很小(10 MB)的最低限度Linux桌面。它基于Linux 2.6内核、Busybox、Tiny X、FLTK图形用户界面、JWM窗口管理器,全部运行在内存中。它并非一份完整的桌面,也不完整支持所有的硬件;它只代表能引导进入一份最小X窗口桌面 所需的核心内容,典型情况下可包含对有线网络的访问。这份最小桌面可以通过从在线软件仓库安装额外应用软件来进行扩展。

Change log for v2.7:

* Updated appbrowser - single 'Install' button and renamed 'Download Only' to 'OnDemand'
* Updated appsaudit - new menu option 'Install Options' to maintain copy2fs.flg and copy2fs.lst
* New ondemand - create flwm right click menu shortcuts to load and start applications from /tce/optional - tune your system for much faster boot times.
* Updated tce-load - dropped l,m,lm,ml testing, ldconfig always called, depmod based on /usr/local/lib/modules, dropped -r option
* Renamed tcz2ram.flg, tcz2ram.lst to copy2fs.flg and copy2fs.lst, use flag for all, or list to specify extensions to be copied into filesystem.
* New 'ab' a tiny appbrowser in shell
* New cache-clear script.
* New boot code xvesa=WxHxD, e.g. xvesa=800x600x32 to set default Xvesa resolution bypassing xsetup
* Updated tce-update and tce-setup to implement an 'easy mode' to update extensions in your tce folder
* Updated tce-update feature enhancement for nfs support (Thanks to Gerald Clark)
* Updated rebuildfstab for block major 11 devices
* Updated udev/rules.d/75-cd-dvd.rules for sr[0-9] devices.
* Updated exitcheck.sh to call /opt/shutdown.sh for user shutdown commands.
* Removed mbchk and libpopt* as unneeded in base.
* Stripped more libs for smaller size, now at 10.1MB

下载地址:tinycore_2.7.iso (10.1MB, MD5).

目前正在准备vmware安装中,新闻来源:http://www.cnbeta.com/articles/100458.htm

------

安装完了,感觉还是和那种 floopy linux差不多的感觉 。简单的用用还行,不能做什么大的应用。哎。。。