Archive for the ‘Server’ Category

【转】Htaccess文件用法集锦


27 12月

1.时区设置

有些时候,当你在PHP里使用date或mktime函数时,由于时区的不同,它会显示出一些很奇怪的信息。下面是解决这个问题的方法之一。就是设置你的服务器的时区。你可以在这里找到所有支持的时区的清单。
  1. SetEnv TZ Australia/Melbourne

2. 搜索引擎友好的301永久转向方法

为什么这是搜索引擎友好的呢?因为现在很多现代的搜索引擎都有能根据检查301永久转向来更新它现有的记录的功能。
  1. Redirect 301 http://www.aqee.net/home http://www.aqee.net/

3. 屏蔽下载对话框

通常,当你下载东西的时候,你会看到一个对话框询问你是保持这个文件还是直接打开它。如果你不想看到这个东西,你可以把下面的一段代码放到你的.htaccess文件里。
  1. AddType application/octet-stream .pdf
  2. AddType application/octet-stream .zip
  3. AddType application/octet-stream .mov

4. 省去www前缀

SEO的一个原则是,确保你的网站只有一个URL。因此,你需要把所有的通过www的访问转向的非www,或者反这来。
  1. RewriteEngine On
  2. RewriteBase /
  3. RewriteCond %{HTTP_HOST} ^www.aqee.net [NC]
  4. RewriteRule ^(.*)$ http://aqee.net/$1 [L,R=301]

5. 个性化Error页面

对每个错误代码定制自己个性化的错误页面。
  1. ErrorDocument 401 /error/401.php
  2. ErrorDocument 403 /error/403.php
  3. ErrorDocument 404 /error/404.php
  4. ErrorDocument 500 /error/500.php

6. 压缩文件

通过压缩你的文件体积来优化网站的访问速度。
  1. # 压缩 text, html, javascript, css, xml:
  2. AddOutputFilterByType DEFLATE text/plain
  3. AddOutputFilterByType DEFLATE text/html
  4. AddOutputFilterByType DEFLATE text/xml
  5. AddOutputFilterByType DEFLATE text/css
  6. AddOutputFilterByType DEFLATE application/xml
  7. AddOutputFilterByType DEFLATE application/xhtml+xml
  8. AddOutputFilterByType DEFLATE application/rss+xml
  9. AddOutputFilterByType DEFLATE application/javascript
  10. AddOutputFilterByType DEFLATE application/x-javascript

7. 缓存文件

缓存文件是另外一个提高你的网站访问速度的好方法。
  1. <FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf|js|css|pdf)$”>
  2. Header set Cache-Control “max-age=2592000″
  3. </FilesMatch>

8. 对某些文件类型禁止使用缓存

而另一方面,你也可以定制对某些文件类型禁止使用缓存。
  1. # 显式的规定对脚本和其它动态文件禁止使用缓存
  2. <FilesMatch “.(pl|php|cgi|spl|scgi|fcgi)$”>
  3. Header unset Cache-Control
  4. </FilesMatch>

安全问题

下面的htaccess代码能够提高你的web服务器的安全水平。图片链接盗用保护非常有用,它能防止其他人偷盗使用你的服务器上的图片资源。

1. 通过.htaccess放盗链

痛恨那些偷盗链接你的web服务器上的图片资源而耗尽了你的带宽的行为吗?试试这个,你可以防止这种事情的发生。
  1. RewriteBase /
  2. RewriteCond %{HTTP_REFERER} !^$
  3. RewriteCond %{HTTP_REFERER} !^http://(www.)?aqee.net/.*$ [NC]
  4. RewriteRule .(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

2. 防黑客

如果你想提高网站的安全等级,你可以去掉下面的几行代码,这样可以防止一些常见恶意URL匹配的黑客攻击技术。
  1. RewriteEngine On
  2. # proc/self/environ? 没门!
  3. RewriteCond %{QUERY_STRING} proc/self/environ [OR]
  4. # 阻止脚本企图通过URL修改mosConfig值
  5. RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
  6. # 阻止脚本通过URL传递的base64_encode垃圾信息
  7. RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR]
  8. # 阻止在URL含有<script>标记的脚本
  9. RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR]
  10. # 阻止企图通过URL设置PHP的GLOBALS变量的脚本
  11. RewriteCond %{QUERY_STRING} GLOBALS(=|[|\%[0-9A-Z]{0,2}) [OR]
  12. # 阻止企图通过URL设置PHP的_REQUEST变量的脚本
  13. RewriteCond %{QUERY_STRING} _REQUEST(=|[|\%[0-9A-Z]{0,2})
  14. # 把所有被阻止的请求转向到403禁止提示页面!
  15. RewriteRule ^(.*)$ index.php [F,L]

3. 阻止访问你的 .htaccess 文件

下面的代码可以阻止别人访问你的.htaccess文件。同样,你也可以设定阻止多种文件类型。
  1. # 保护你的 htaccess 文件
  2. <Files .htaccess>
  3. order allow,deny
  4. deny from all
  5. </Files>
  6. # 阻止查看指定的文件
  7. <Files secretfile.jpg>
  8. order allow,deny
  9. deny from all
  10. </Files>
  11. # 多种文件类型
  12. <FilesMatch “.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$”>
  13. Order Allow,Deny
  14. Deny from all
  15. </FilesMatch>

4. 重命名 htaccess 文件

你可以通过重命名htaccess文件来对其进行保护。
  1. AccessFileName htacc.ess

5. 禁止目录浏览

禁止服务器对外显示目录结构,反之亦然。
  1. # 禁止目录浏览
  2. Options All -Indexes
  3. # 开放目录浏览
  4. Options All +Indexes

6. 改变缺省的Index页面

你可以把缺省的 index.html, index.php 或 index.htm 改成其它页面。
  1. DirectoryIndex business.html

7. 通过引用信息来阻止某些不欢迎的浏览者

  1. # 阻止来自某网站的用户
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine on
  4. RewriteCond %{HTTP_REFERER} scumbag.com [NC,OR]
  5. RewriteCond %{HTTP_REFERER} wormhole.com [NC,OR]
  6. RewriteRule .* - [F]
  7. </ifModule>

8. 通过判断浏览器头信息来阻止某些请求

这个方法可以通过阻止某些机器人或蜘蛛爬虫抓取你的网站来节省你的带宽流量。
  1. # 阻止来自某些特定网站的用户
  2. <IfModule mod_rewrite.c>
  3. SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider |leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT
  4. SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT
  5. Deny from env=HTTP_SAFE_BADBOT
  6. </ifModule>

9. 禁止脚本执行,加强你的目录安全

  1. # 禁止某些目录里的脚本执行权限
  2. AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
  3. Options -ExecCGI

Nginx 0.8 Stable Source Installation document collection


29 9月
Eureka~ Nginx has published the stable version of 0.8. Since the auto update method of ubuntu is not available so soon I decided to install it via source. Download from here: http://nginx.org/en/download.html Everything introduced official about how to install it could be found here: http://wiki.nginx.org/Install#Stable And how to configure it could be found here: http://wiki.nginx.org/Configuration When you are going to compile the source you may want to read this first: http://wiki.nginx.org/NginxInstallOptions (Notice that if you are using a ubuntu or debian server like me, you should install libssl-dev first to enable the ssl module and PCRE for the rewrite mod,which may need to be pointed the PCRE lib path manually if you have installed but not discovered by the compile program.) Then you shall have a look at: http://wiki.nginx.org/Nginx-init-ubuntu It gives you an idea how to make the /etc/init.d/nginx file to start or stop your nginx server. You may have to change the Consts part of the file especially for the DAEMON and PID variable configuring well to make sure your nginx could be start and stop functionally. Oh, and if you want to compile other 3rd part module, you will find them here: http://wiki.nginx.org/Nginx3rdPartyModules Well, here's the EOF then. Have a nice trip with your new powerful Nginx server. LOL

Shindig Partuza 简易 安装 配置 小结


26 9月
写完caja,写下shindig,这个玩得不多,而且最后配合partuza的没有成功。 官网:http://shindig.apache.org/resources.html Shindig 基本是一个全套的container,支持各种opensocial的规范,甚至包括caja。 opensocial本身就是一个比较大的东东了,本人没有怎么研究,有兴趣的可以看: http://wiki.opensocial.org/index.php?title=Main_Page Shindig的安装非常简单,直接看官网就可以: http://shindig.apache.org/developers/php/build.html 一切顺利的话可以在samplecontainer/samplecontainer.html找到hello world的示例。 另外,官方有一个叫partuza的开源平台,号称是用来帮大家玩shindig的一个示例,可以在这里找到相关资料: http://code.google.com/p/partuza/ 这个安装也很简单,直接看官方wiki就好,不多赘述了。 然后我在玩partuza+shindig的时候,新加一个application的时候会报错,Can't get ownerId from an anonymous token,不知道要怎么玩,官方的partuza demo站也是的,总是说token不对之类的,可能会需要用oauth来做一些验证?不得而知。 (http://code.google.com/apis/friendconnect/docs/opensocial_rest_rpc.html ,oauth相关的一些基础,不过貌似看完没什么帮助,纠结。) 暂时放弃ing。此帖备忘,以便今后继续研究。 其他一些参考资料: http://hi.baidu.com/winsomeyeah/blog/item/7cbe6480d468b0d0bc3e1e09.html http://code.google.com/apis/opensocial/

Caja 简易 安装 配置 小结


26 9月
Caja project: http://code.google.com/p/google-caja/ 安装及running方面的细节: http://code.google.com/p/google-caja/wiki/RunningCaja http://code.google.com/p/google-caja/wiki/CajaCajole 大概小结一下步骤: 先确认自己环境是否都具备: Caja requires * JDK 6 * The subversion version manager * The Apache Ant build system. * The JUnit testing framework. Just drop junit.jar in the $ANT_HOME/lib directory you set up for Ant. 之后按照 http://code.google.com/p/google-caja/source/checkout 的方法 svn checkout http://google-caja.googlecode.com/svn/trunk/ google-caja Then, from the command line:
$ cd google-caja
$ ant
If Ant is properly installed, you should see the following:
Buildfile: build.xml

dirs:
    [mkdir] Created dir: ...
...

docs:
  [javadoc] Generating javadoc
...

BUILD SUCCESSFUL
Total time: 5 seconds
如出现问题,可参考上面原文链接中的细节,里面有一些解决方案,反正我没碰到问题。 下面说下running,caja有2种方式来玩,一种是直接command-line,另外一种是web service。 Anyway,run these first:
cd google-caja/src
ant jars
Command-line的官网说明还蛮清楚的,直接贴了:

Command-line cajoling

OpenSocial. To cajole an OpenSocial gadget, do the following:
bin/cajole_gadget -i <sourceGadgetUrl> -o <targetGadgetFile>
where:
<sourcegadgeturl>
- The absolute URL of a gadget spec, such as http://example.com/listfriends.xml or file:/Users/example/listfriends.xml.
<targetgadgetfile>
- The file path where you want your Cajoled gadget spec to be stored, such as ./listfriends-cajoled.xml.
Plain HTML. To cajole a plain HTML+JavaScript snippet, do the following:
bin/cajole_html -i <inputHtmlUrl> -o <targetJsFile>
where:
<inputhtmlfile>
- The absolute URL of the input HTML snippet, such as file:/Users/example/test.html.
<targetjsfile>
- The file path where you want your JavaScript module function to be stored, such as ./test-cajoled.js.
cajole_html defaults to generating separate HTML and JavaScript files, which is appropriate if you are going to be embedding the HTML in a host page. If you are dynamically loading modules, or if there is no HTML in the input, then you can pass --only_js_emitted. To see other available options, run bin/cajole_html with no arguments. 如果你是要让第三方来嵌入的话,那基本webservice是唯一的选择了。 貌似玩webservice的话,只要下载完以后,直接跑一句: ant playground 然后,以后运行直接: ant runserver 就可以了。然后可以访问 http://localhost:8080/ 初试下效果。(官网说是http://localhost:8080/cajole,但貌似我试了是没有"cajole"的,可能配置问题? Ok, 下面有2个不错的示例可以看一下的,配合着学一下怎么实时地在代码container里面玩这个webservice。 http://localhost/google-caja/src/com/google/caja/demos/container/container-trivial.html http://code.google.com/p/google-caja/source/browse/trunk/src/com/google/caja/demos/container/container-interaction.html 细节不多说了(其实我也没怎么细看,随手改了一点实验了下而已 - -),大家自己在自己机器上玩吧。 下面是一些资料型的供查阅: caja 可以防哪些attack:http://code.google.com/p/google-caja/wiki/AttackVectors 关于caja这个语言的资料(有空从这章开始一直把后面的章节也看到底吧,我还没看 = =):http://code.google.com/p/google-caja/wiki/CajaOverview HostTool的具体用法说明:http://code.google.com/p/google-caja/wiki/HostTools 嗯,暂时小结到这边,其他还有很多资料我还没有看过的,所以就不列了。 因其他事务缠身,caja研究暂时至此,有时间再继续钻研细节代码相关了。 P.S. Oh, BTW, 我试了在contrainer里面嵌入mootools,之后基本就是杯具了,跑了3分钟,期间我这台公司的破机器的风扇狂转得像直升机一样的。。。无敌了。。。之后试了用nginx做了反向代理,貌似还是有用的,不过就无法动态了,所以要做缓存还是另某他路吧,I have no idea,呵呵,只是随便玩玩,估计如果真要用这个东东,框架就不要想了,加载了没法用的,基本功能都被caja切掉了哈。官方貌似在做集成jquery到caja的架构中,不过仍然是实验阶段。Anyway,good luck。

Nginx + PHP FastCGI on Ubuntu 傻瓜式 安装 配置 指南


17 9月
最近在公司都用的ubuntu,升级到10.0.4后发现PHP自动就到5.3了,但是某些杯具项目只能在5.2上面跑,于是折腾了很久,最后选择删光原有的环境装了Zend Server... 好吧,那是另外一个故事了。 大家知道我是个“最新版本控”,所以5.3还是要玩的,于是想到了Nginx这东东一直想弄还没机会搞,于是有了这篇傻瓜式记录。之前也看了张宴之类的大师怎么装这个环境,不过貌似超复杂,像我这在linux水平很初级的同学基本看完就晕了。 于是google了一下,嘿,还真找到了一些英文的资料,于是挑重点的翻译在此,以备不时之需。废话至此,以下正文: 我首先装的是nginx,很容易,一句话: aptitude install nginx 然后FastCgi: aptitude install php5-cgi 恭喜,如果没有报错的话,一切就完成大半了。超傻瓜吧。。。 实验一下: php-cgi -b 127.0.0.1:9000 有报错的话自己处理,反正我没出问题。 好,下面是关键部分,怎么让这东西自动启动。反正作为新手的我对这种感觉还是很神奇的。 vi /etc/init.d/php-fastcgi 把下面这些复制过去:
  1. #!/bin/bash
  2. BIND=127.0.0.1:9000
  3. USER=www-data
  4. PHP_FCGI_CHILDREN=15
  5. PHP_FCGI_MAX_REQUESTS=1000
  6.  
  7. PHP_CGI=/usr/bin/php-cgi
  8. PHP_CGI_NAME=`basename $PHP_CGI`
  9. PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
  10. RETVAL=0
  11.  
  12. start() {
  13.       echo -n "Starting PHP FastCGI: "
  14.       start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
  15.       RETVAL=$?
  16.       echo "$PHP_CGI_NAME."
  17. }
  18. stop() {
  19.       echo -n "Stopping PHP FastCGI: "
  20.       killall -q -w -u $USER $PHP_CGI
  21.       RETVAL=$?
  22.       echo "$PHP_CGI_NAME."
  23. }
  24.  
  25. case "$1" in
  26.     start)
  27.       start
  28.   ;;
  29.     stop)
  30.       stop
  31.   ;;
  32.     restart)
  33.       stop
  34.       start
  35.   ;;
  36.     *)
  37.       echo "Usage: php-fastcgi {start|stop|restart}"
  38.       exit 1
  39.   ;;
  40. esac
  41. exit $RETVAL
加上执行权限: chmod +x /etc/init.d/php-fastcgi 跑跑看: /etc/init.d/php-fastcgi start 都没问题的话: update-rc.d php-fastcgi defaults 大功告成。 改nginx配置:(/etc/nginx/nginx.conf) 加上类似这样的东西:
server {
        listen          80;
        server_name     example.com;

        access_log      /var/log/nginx/example.com.access_log;
        error_log       /var/log/nginx/example.com.error_log warn;

        root            /var/www/example.com/public;

        index           index.php index.html;
        fastcgi_index   index.php;

        location ~ \.php {
                include /etc/nginx/fastcgi_params;
                keepalive_timeout 0;
                fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_pass    127.0.0.1:9000;
        }
}

ok,一切完成。

参考文章:
http://tomasz.sterna.tv/2009/04/php-fastcgi-with-nginx-on-ubuntu/
http://wiki.nginx.org/NginxHttpFcgiModule
——————————补充———————————— 有关权限,原来用apache的时候只要再httpd.conf里面改user和group就可以控制启动服务的用户和组了。 但是,用nginx+fastcgi的时候,需要改2个地方,nginx的那个都能想到,另外就是上面那段/etc/init.d/php-fastcgi脚本开头的,user也要改,我今天就忘记改了,被妖了半天,杯具。。。

webbench 压力测试 安装 使用


17 9月
上一篇中说到准备试试webbench,今天看别的东西的时候,正好又瞄到,于是拿来玩了一下。 官网: http://home.tiscali.cz/~cz210552/webbench.html webbench安装会依赖于ctags这个东东,所以如果你的机器上没有的话, yum install ctags 或 aptitude install ctags 之类的先装一下。 之后就简单了, wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz cd webbench-1.5 make & make install OK,如果没报什么错的话,就顺利完成咯。 直接: webbench -h webbench [option]... URL -f|--force               Don't wait for reply from server. -r|--reload              Send reload request - Pragma: no-cache. -t|--time <sec>          Run benchmark for <sec> seconds. Default 30. -p|--proxy <server:port> Use proxy server for request. -c|--clients <n>         Run <n> HTTP clients at once. Default one. -9|--http09              Use HTTP/0.9 style requests. -1|--http10              Use HTTP/1.0 protocol. -2|--http11              Use HTTP/1.1 protocol. --get                    Use GET request method. --head                   Use HEAD request method. --options                Use OPTIONS request method. --trace                  Use TRACE request method. -?|-h|--help             This information. -V|--version             Display program version. 测试: webbench -c 100 -t 10 http://www.yoohouse.com/index.php Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software. Benchmarking: GET http://www.yoohouse.com/index.php 100 clients, running 10 sec. Speed=1284 pages/min, 161379 bytes/sec. Requests: 214 susceed, 0 failed. P.S. 貌似这个表现有点烂哈。。。

压力测试 Apache ab


03 9月
今天看Drupal的东东的时候看到ab的用法,记录一下: Usage: ab [options] [http://]hostname[:port]/path Options are: -n requests     Number of requests to perform -c concurrency  Number of multiple requests to make -t timelimit    Seconds to max. wait for responses -b windowsize   Size of TCP send/receive buffer, in bytes -p postfile     File containing data to POST. Remember also to set -T -T content-type Content-type header for POSTing, eg. 'application/x-www-form-urlencoded' Default is 'text/plain' -v verbosity    How much troubleshooting info to print -w              Print out results in HTML tables -i              Use HEAD instead of GET -x attributes   String to insert as table attributes -y attributes   String to insert as tr attributes -z attributes   String to insert as td or th attributes -C attribute    Add cookie, eg. 'Apache=1234. (repeatable) -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip' Inserted after all normal header lines. (repeatable) -A attribute    Add Basic WWW Authentication, the attributes are a colon separated username and password. -P attribute    Add Basic Proxy Authentication, the attributes are a colon separated username and password. -X proxy:port   Proxyserver and port number to use -V              Print version number and exit -k              Use HTTP KeepAlive feature -d              Do not show percentiles served table. -S              Do not show confidence estimators and warnings. -g filename     Output collected data to gnuplot format file. -e filename     Output CSV file with percentages served -r              Don't exit on socket receive errors. -h              Display usage information (this message) 顺手很小规模的测了下drupal的并发(-c 100 -n 500),结果: Percentage of the requests served within a certain time (ms) 50%  31376 66%  33323 75%  35598 80%  37157 90%  39325 95%  43371 98%  46340 99%  47633 100%  52341 (longest request) 不过是什么缓存之类的都没用的情况下,嗯,事实告诉我们,缓存什么的还是很有用的。可以想象如果-c 50000的话。。。 另外看到一个叫webbench的,貌似听说比ab好用,记录下,以后有机会试试。

Some links about squid and nginx


12 6月
Squid 官网 doc :http://www.squid-cache.org/Doc/ 反向代理概念及Squid简单实现方法: http://linux.ccidnet.com/art/737/20070417/1063859_1.html 使用反向代理后可能碰到的客户端真实IP地址获取问题: http://wangpan80.javaeye.com/blog/286702 (代码是java的大概意思看看就好) nginx异步反向代理: http://www.net527.cn/a/caozuoxitong/Linux/1514.html nginx反向代理做cache配置:http://blog.sina.com.cn/s/blog_5dc960cd0100gvk2.html(额,这篇有点乱,没仔细看) Round Robin DNS Load Balancing: http://content.websitegear.com/article/load_balance_dns.htm(with BIND name server) nginx常识扫盲:http://edu.codepub.com/2010/0516/22746.php nginx url hash模块:http://www.wurmbai.info/2010/02/nginx_url-hash/ 另外一篇同上: http://wiki.nginx.org/NginxHttpUpstreamRequestHashModule (url hash就是类似所谓的7层负载均衡,可以通过url来分配不同的业务逻辑到不同的服务器上面去,很好很强大) nginx request process:http://nginx.org/en/docs/http/request_processing.html nginx server names:http://nginx.org/en/docs/http/server_names.html nginx mogileFS module: http://grid.net.ru/nginx/mogilefs.en.html nginx和squid结合的概念:http://edu.codepub.com/2010/0202/20282.php 这些文章主要是我学习nginx做url hash负载+squid反向代理缓存查阅的一些资料,可能有所遗漏,暂时整理至此。

各种VPN方法——美国VPN,Packetix,PopTop PPTP VPN Server,Windows7 or Windows Vista or Windows XP VPN Server Setup


11 6月
最近洋葱不好使了,杯具啊,天朝真是强大。搜了下VPN的东东,记录一下。 最简单的自然是网上收费的那些美国vpn提供商了,品种繁多,我同事用的一个貌似还不错,地址 http://www.vpn98.com。 另外我自己看到的一个:http://www.macrovpn.com/ 第二种就是通过第三方的VPN平台,我看到的不错的是:http://www.packetix.net/en/vpn/,当然是免费的,可以自己建自己的vpn,而且这个东东主要是提供真正的VPN功能,而不是单纯的翻墙功能,如果要通过VPN中的某台机器链接外网,还需要另外到http://www.packetix.net/en/vpn/admin/vpnbridge.aspx 下载bridge的工具安装后才可以。具体的见官网教程吧。因为要连到他的服务器作为类似网关一样的存在,所以速度不快。 第三种自然是自己建VPN了,看了下,PPTP的VPN SERVER开源的,http://www.poptop.org/,如果外国有关系的同学可以让那边的帮忙,这样就无成本啦,哈哈。 最近天朝越来越瓜三了,貌似很多美国主机都丢包很厉害,唉。。。什么世道啊。。。逼我出国吗。。。 ———————————————win7 vpn server————————————————— 刚才网上看了下,windows似乎设置成vpn超方便的: Following are the steps for configuring Incoming VPN Connection in Windows 7 1. First go to Control Panel and open Network and Sharing Center. 2. Click on Change adapter settings. 3. Press Alt+F and select New Incoming connection 4. Put a check on who you’d like to give access to this computer or you can configure a new account by clicking on Add someone,after that click on Next. 5. Put a check mark on Through the Internet. Click on Next. 6. Select the protocols you want to enable for this connection. Click on Allow access. 7. Make a note of the Computer name as this will be used by the client to connect to this computer and after that Click on Close. 不知道好不好用,回头试试。。。如果可以连到美国的话。。。无敌来。。。 P.S. XP 和 VISTA的参考这里: http://www.onecomputerguy.com/networking/xp_vpn_server.htm http://www.onecomputerguy.com/networking/vista_vpn_server.htm ————————————poptop 设置指南—————————————— 安装不说了,网上很多,自己查吧,说下配置,有点搞的,老是619,809的错误 网上查了下找到了答案(From http://www.webhostingtalk.com/showthread.php?t=944722): in /etc/pptpd.conf
  1. local ip :   [my VPS ip]
  2. remote ip :  192.168.0.100-120
you can use any private ip range for remote ip. in /etc/ppp/pptpd-options
  1. refuse-pap
  2. refuse-chap
  3. refuse-mschap
  4. require-mschap-v2
  5. require-mppe-128
  6. ms-dns 208.67.222.222
  7. ms-dns 208.67.220.220
you can use any dns server you like,i used opendns. in /etc/ppp/chap-secrets
  1. user1 * password1 *
  2. user2 * password2 *
Also be careful : between fields in chap-secrets file use TAB. one of my problems was using Space instead of TAB. in /etc/sysctl.conf
  1. net.ipv4.ip_forward=1
Uncomment that line. enables ip forwarding. i also create a simple script for testing my iptables rules. you can add these rules to the /etc/rc.local
  1. iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
  2. iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT
  3. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  4. iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
  5. iptables -A INPUT -i eth0 -p gre -j ACCEPT
and a Reboot! 基本上这样就搞定了,619错误好像还有可能是路由器设置的问题,可以上vpn98的常见问题看哦。 安装什么的可以参考这里:http://www.5dlinux.com/article/4/2007/linux_5328.html 配置还是以上面的为主。 Good Luck!

Vmware7.1 Fedora13


03 6月
前两天看到fedora13发布了,下了后,今天终于有时间玩一下了,另外vmware也升级到7.1了呢。 在前面的文章中说到过,vmware认不出fedora12,嗯,7.1貌似认得出了,于是也让我碰到了传说中的vmware eazy install的问题,就是它会很世博的自动帮你乱装你的系统,也不问你愿不愿意。。。 好吧,其实它是问了,只不过。。。它是在最前面,让你选择安装文件路径的时候,下面有个checkbox: I will install the operating system later. 真是完全。。。比开司米还绕啊。。。 ok,选好这个勾勾之后,在最后的hardware customize的地方,把cd/dvd那地方选到你的iso文件就可以了。 嗯,其他貌似没啥了,刚装完,去玩喽~ —————————————————————————————————— 不知道怎么的,新装的是英文的,突然变中文的系统了。。。莫名。。。 于是又学到一招,只需要将/etc/sysconfig/i18n文件中的LANG="zh_CN.UTF-8" 改成LANG="en_US.UTF-8",然后重启即可。

貓熊寶寶幼齒園

姜經緯的博客