Mar 30

主路由器 (Router 1) 接入互联网,下面接入两台子路由器:Router 2 和 Router 3。Router 2 和 Router 3的 WAN 端口用网线连接到Router 1的 LAN 端口,两个子路由分别有自己的子网。这样的好处就是三个路由器可以根据需求分别管理,缺点就是管理比较复杂,更不方便的是 Router 2 和 Router 3 可以访问 Router 1 下的设备,如 NAS,Plex 等,但是 Router 1 不能访问 Router 2 和 Router 3 下的设备,这时就需要设置静态路由,实现各子域互通。

1.设置各路由器的静态 IP 地址
Router 1:
WAN IP:ISP Provideed
WAN Subnet:ISP Provideed
LAN IP:192.168.1.1
LAN Sunnet:192.168.1.0/24

Router 2:
WAN IP:192.168.1.2
WAN Subnet:192.168.1.0/24
LAN IP:192.168.2.1
LAN Sunnet:192.168.2.0/24

Router 3:
WAN IP:192.168.1.3
WAN Subnet:192.168.1.0/24
LAN IP:192.168.3.1
LAN Sunnet:192.168.3.0/24

2.设置主路由器
在 Setup->Advanced Routing 页面的 Static Routing 选项下添加内容。
Route Name: Router2
Destination LAN NET: 192.168.2.0
Subnet Mask: 255.255.255.0
Gateway: 192.168.1.2
Interface: LAN/WLAN

Route Name: Router3
Destination LAN NET: 192.168.3.0
Subnet Mask: 255.255.255.0
Gateway: 192.168.1.3
Interface: LAN/WLAN

3.设置两台子路由器
在Setup->Advanced Routing 页面的 Static Routing 选项下添加内容。
其中在 Router2 下添加:
Route Name: Router3
Destination LAN NET: 192.168.3.0
Subnet Mask: 255.255.255.0
Gateway: 192.168.1.3
Interface: LAN/WLAN

其中在 Router3 下添加:
Route Name: Router2
Destination LAN NET: 192.168.2.0
Subnet Mask: 255.255.255.0
Gateway: 192.168.1.2
Interface: LAN/WLAN

并且,在Setup->Advanced Routing 页面下,将 ‘Gateway’ 改成 ‘Router’ 模式,即将网管模式改成路由模式。

4.设置 Router2 和 Router3 的防火墙
在 Administration->Commands 页面下 添加防火墙的命令,然后让路由器开机自动运行。代码类似于

# Allow everything to be forwarded through the router (simple but do not use on routers directly connected to the internet)
iptables -I FORWARD -j ACCEPT

其中在 Router2 的防火墙应设置为

# Allow Router2 to forward traffic from Router1 and Router3's subnets
iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -I FORWARD -s 192.168.3.0/24 -j ACCEPT

其中在 Router3 的防火墙应设置为

# Allow Router3 to forward traffic from Router1 and Router2's subnets
iptables -I FORWARD -s 192.168.1.0/24 -j ACCEPT
iptables -I FORWARD -s 192.168.2.0/24 -j ACCEPT

也可以在 Router1 上设置

# Allow the entire 192.168.0.0/16 block to be forwarded through the router
iptables -I FORWARD -s 192.168.0.0/16 -j ACCEPT

如果嫌命令行设置太麻烦,还有直接粗暴的方法:直接关闭 Router2 和 Router3 的防火墙,但是关闭路由器的防火墙后可能会有安全问题。

最后就是重启路由器,使上述设置生效。

参考资料:https://www.dd-wrt.com/wiki/index.php/Linking_Subnets_with_Static_Routes

Mar 28
my.minor.tick <-
function (nx = 2, ny = 2, tick.ratio = 0.5, side=NA)  
{ # added the side parameter
    ax <- function(w, n, tick.ratio) {
        range <- par("usr")[if (w == "x") 
            1:2
        else 3:4]
        tick.pos <- if (w == "x") 
            par("xaxp")
        else par("yaxp")
        distance.between.minor <- (tick.pos[2] - tick.pos[1])/tick.pos[3]/n
        possible.minors <- tick.pos[1] - (0:100) * distance.between.minor
        low.minor <- min(possible.minors[possible.minors >= range[1]])
        if (is.na(low.minor)) 
            low.minor <- tick.pos[1]
        possible.minors <- tick.pos[2] + (0:100) * distance.between.minor
        hi.minor <- max(possible.minors[possible.minors <= range[2]])
        if (is.na(hi.minor)) 
            hi.minor <- tick.pos[2]
        if (.R.)        # Next three lines have only the modifications
            axis(if (w == "x" & is.na(side) )
                1
            else if (!is.na(side)) side
            else 2, seq(low.minor, hi.minor, by = distance.between.minor), 
                labels = FALSE, tcl = par("tcl") * tick.ratio)
        else axis(if (w == "x") 
            1
        else 2, seq(low.minor, hi.minor, by = distance.between.minor), 
            labels = FALSE, tck = par("tck") * tick.ratio)
    }
    if (nx > 1) 
        ax("x", nx, tick.ratio = tick.ratio)
    if (ny > 1) 
        ax("y", ny, tick.ratio = tick.ratio)
    invisible()
}

上面如果运行不正常,可以试试下面的代码:

environment(my.minor.tick) <- environment(minor.tick)

转自:http://stackoverflow.com/questions/17118360/does-minor-tick-of-library-hmisc-in-r-only-work-for-primary-axis-side-1-and-2

Jan 04

凡是在后台偷偷摸摸启动还关闭不了的程序都是垃圾程序。

下面附上关闭阿里服务的批处理文件:

@echo off
rem 将“Alipay payment client security service”停止
sc stop pcas
rem 将“Alipay security business service”停止
sc stop secbizsrv
rem 将“TBSecSvc”停止
sc stop TBSecSvc
rem 将“pcas”的启动方式设为禁用
sc config pcas start= disabled
rem 将“secbizsrv”的启动方式设为禁用
sc config secbizsrv start= disabled
rem 将“TBSecSvc”的启动方式设为禁用
sc config TBSecSvc start= disabled
pause

删除C:\Program Files (x86)\TaobaoProtect文件夹。
删除C:\Users\Chu\AppData\文件夹下所有与Alibaba相关的文件夹。

Sep 05

1.编译安装

svn co https://svn.ntop.org/svn/ntop/trunk/n2n
cd n2n/n2n_v2
make
sudo make install

2.Supernode 节点调试

supernode -l [listening port] [-v] [-h]
#测试的时候,建议开启调试日志,比如:
supernode -l 8080 -v

3.添加节点

sudo edge -d edge0 -a 10.0.0.3 -c chun -u 1000 -g 1000 -k chunchu -l 111.111.111.111:8080 -m e8:5e:02:2a:21:32

4.添加系统启动自动运行

sudo vim /etc/rc.local 
sudo edge -d edge0 -a 10.0.0.3 -c chun -u 1000 -g 1000 -k chunchu -l 111.111.111.111:8080 -m e8:5e:02:2a:21:32

Linux 下安装最为方便,按照上述的步骤的1、3、4即可。

OpenWrt 路由器的配置参照 连接

Windows 下需下载 N2N 的GUI客户端,地址为 http://sourceforge.net/projects/n2nedgegui/

Android 下 N2N 客户端下载地址为 https://play.google.com/store/apps/details?id=org.zhoubug.n2n_gui

Mac OS 下的安装稍稍麻烦一点,需要安装 tun/tap 补丁,然后下载 N2N 源代码后需要打一下 补丁,在tuntap_osx.o文件里, 删除void tunclose(tuntapdev *device)这行,并将tunclose(device)替换为tuntapclose(device),改动这二处就可以了,然后编译安装。Mac 下会自动生成 tun 设备 tap0, 所以运行时不用指定-d 参数:

sudo edge -a 10.0.0.5 -c chun -k chunchu -u 1000 -g 1000 -m 5c:96:5d:8c:2c:4f -l 111.111.111.111:8080

参考资料:
1.http://www.shuyz.com/n2n-vpn-network-introduction-and-config.html
2.http://www.vpnhosting.cz/wiki/index.php/N2n_Gui_En
3.http://luca.ntop.org/n2n.pdf
4.http://ahui.us/post/p2pvpn_zhi_n2n_an_zhuang_shi_yong.html
5.http://linux.die.net/man/8/edge

Sep 05

1.修改 Debian 中 crontab 默认编辑器 nano 为 vi

sudo update-alternatives --config editor

2.下载 WiFi_Check 脚本及修改权限

sudo wget https://raw.github.com/dweeber/WiFi_Check/master/WiFi_Check -O /usr/local/bin/WiFi_Check
sudo chmod 0755 /usr/local/bin/WiFi_Check

3.添加 Cron 任务每两分钟检查一次

sudo crontab -e
*/2 * * * * /usr/bin/sudo -H /usr/local/bin/WiFi_Check >> /dev/null 2>&1

参考资料:
1.http://blog.csdn.net/god_7z1/article/details/8822130
2.http://weworkweplay.com/play/rebooting-the-raspberry-pi-when-it-loses-wireless-connection-wifi/