Jun 04

通常猫下面接了个路由器之后,我们不能再通过网络浏览器访问猫的设置界面了。因为通常来说,路由器和猫不在同一个网段,而且路由器通常是设置为网关而不是路由模式。如果你的路由器可以刷 DD-WRT 或者 Tomato 固件,则使用以下方法可以“穿透”路由器访问猫。

DD-WRT:

1. 假设你的路由器 IP 地址为 192.168.1.1 ;

2. 假设你的猫 IP 地址为 192.168.2.1

3. 用浏览器打开 DD-WRT 设置界面, 转到管理员>命令;

4. 键入:


ifconfig vlan1:0 192.168.2.2 netmask 255.255.255.0

然后点击 <保存在启动项>

5. 键入:


/usr/sbin/iptables -I POSTROUTING -t nat -o vlan1 -d 192.168.2.0/24 -j MASQUERADE

然后点击 <保存在防火墙>

注意:脚本中的 IP 子网范围其实只与猫的子网有关,如上例,猫的子网是 192.168.2.X,则脚本中两个涉及子网的参数都为 192.168.2.X;我们只需保证路由器和猫的子网不同即可,这是基本原则。这个规则同样适用于以下 Tomato 的方法;

Tomato:

1.现在我们假设猫的 IP 地址是: 192.168.0.1 ;根据上述规则,我们不必关心路由器的 IP 地址;

2.在浏览器中访问 Tomato 设置界面,转到 管理/脚本 页面:

初始化 或者 外网上线 中键入:


sleep 5
ip addr add 192.168.0.13/24 dev $(nvram get wan_ifname) brd +

防火墙 中键入:

iptables -I POSTROUTING -t nat -o $(nvram get wan_ifname) -d 192.168.0.0/24 -j MASQUERADE

3.重启路由器即可。

2011-06-05 补充一个硬件的方法,适合通用路由器(未测试 2012-02-07 测试有效!):

把猫和路由设置为同一网段但是不同的 IP,例如路由器是 192.168.1.1,猫是 192.168.1.2,注意路由器的 DHCP 不要和猫的 IP 冲突(只在猫或者路由器上启用 DHCP),电脑网卡也要分配同网段的 IP 才能访问。
接线方法是:猫连接到路由器上的任意 LAN 口,路由器的 WAN 口连接到自身的任意 LAN 口,电脑连接到路由器的任意 LAN 口。
电脑设置好 IP 后直接访问猫的 IP 即可,缺点就是你少了两个可用的 LAN 口,优点是可以直接访问猫,而且如果你的帐号如果支持多次拨号的话还可以用电脑直接拨号上网。


Apr 10

Tomato 内置的 DNS 服务器 DNSMASQ 默认缓存条目是 150 条,默认设置不能抵挡 127.0.0.1 段的 DNS-rebind attacks 。

Tomato_DNSMASQ_Setting

如上图设置 Tomato 的 DNS,并且添加如下自定义参数:


## Some Tweak
cache-size=8192
stop-dns-rebind
log-async=5
## Additional DNS servers
# Hong Kong BroadBand Network DNS servers
server=203.80.96.10
server=203.80.96.9
# Huchison Whampoa DNS servers
server=202.45.84.58
server=202.45.84.59

这样设置后用 DNS Benchmark 测试可以得到一个完全安全的本地 DNS 服务器,并且增加 DNS 缓存数量到 8192 条;添加的 DNS 服务器位于香港,适用于广州深圳用户,其他地方的用户可以修改这些服务器地址。

DNS Benchmark

在 Telnet 控制台输入 killall -USR1 dnsmasq ,然后去 Tomato 的日志目录可以查看全部 DNS 服务器查询命中情况。

以上适用于 TomatoUSB 或者原版,如果要用在 Tomato Duelwan 上面,要去掉 cache-size=8192 这条,因为 TD 已经内置了 cache-size=512 ,另行设置会出错导致 DNSMASQ 不能启动。

Tomato Duelwan 修改 cache-size 的方法,telnet 登录路由器:


nvram set dnsmasq_cachesize=1024
nvram commit
reboot


[4/4]  < 1 2 3 4