2016年12月9日星期五

利用路由器iptables实现家长控制定时断网

iptables -I FORWARD -m mac --mac-source 00:00:00:00:00:00 -m time --timestart 22:00 --timestop 7:00 --days Mon,Tue,Wed,Thu,Fri -j DROP
mac-source后的地址改为被控制的客户端的MAC地址,时间的起始自由设定,上面为晚上十点到早上七点禁止上网,周一到周五生效。

改变路由器DNS服务端口而不影响对内网正常DNS服务的方法

  在“绕过校园网无线认证,实现免账号上网”一文中,有一个步骤为设置OpenVPN端口为53。而我们知道,DNS服务器的端口也是53。如果不改变DNS服务器的端口,就无法将OpenVPN的端口成功设置为53。然而在修改dnsmasq配置文件将DNS服务端口改为5353后,内网无法正常解析DNS,因为没有做对应的端口映射。
  只需下面两条命令,即可让内网机器正常解析DNS。其中5353为修改后的DNS端口,192.168.1.1为路由器的IP地址。
iptables -t nat -A PREROUTING -d 192.168.1.1 -p udp --dport 53 -j DNAT --to 192.168.1.1:5353
iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 53 -j DNAT --to 192.168.1.1:5353

2016年11月26日星期六

解决校园网在Padavan路由器固件下客户端IPV6网络访问的问题

适用条件
  1. 路由器能够获得原生IPV6地址
  2. 上网需要通过锐捷认证(访问IPV6无需认证可用三个命令解决
步骤
  1. 进入路由器管理界面,外部网络 (WAN) - IPv6 设置
  2. USB 应用程序 - 其他设置:允许运行 Optware:选Entware
  3. 准备一个NTFS/EXT4格式的U盘或TF卡(依路由器而定),并在根目录新建一个文件夹命名为opt
  4. 将存储介质连上路由器,查看路由器日志,若出现“Entware:Congratulations”,则表示opt环境配置完成。
  5. 登录路由器SSH,执行以下命令:
    opkg update;opkg install 6relayd
  6. 运行6relayd:
    /opt/sbin/6relayd -d -A eth2.2 br0
    eth2.2对应WAN口,br0表示整个内网,可用ifconfig查看它们对应的名称,一般不用改变。 
  7. 自定义用户脚本,使6relayd开机自动启动:自定义设置 - 脚本 - 在路由器启动后执行:
    /opt/sbin/6relayd -d -A eth2.2 br0
    logger -t "【IPV6】" "6relayd 启动完成"
缺点

  6relayd的缺点很明显,就是一段时间不走IPV6流量后,就需要重新获取IPV6地址才能继续使用IPV6(可用一个命令解决)。对于校园网最好的解决方法就是刷OpenWRT最新版本,用IPV6 NAT实现内网对IPV6的访问。

参考

三个命令解决Padavan路由器内网IPV6访问(适用于IPV6无需认证的网络)

modprobe ip6table_mangle
ebtables -t broute -A BROUTING -p ! ipv6 -j DROP -i eth2.2
brctl addif br0 eth2.2
解释

  1. 第一条命令:加载ip6table_mangle内核模块。
  2. 第二条命令:阻止内网对外网所有非IPV6流量的访问,即IPV4流量依然通过NAT。
  3. 第三条命令:让WAN口(eth2.2)成为内网(br0)的一个端口,这样做使得局域网内的主机与外网处于一个广播域,可以收到校园网网关的路由配置信息,每一台主机便可以得到一个全局的IPv6地址。
效果

  执行后eth2.2会进入混杂模式,网络会临时中断。客户端重新联网后,可以从公网直接获得IPV6地址并访问IPV6网站。该方法不适用于IPV6需要认证的网络(解决方法)。

参考

注意事项

  • 用ifconfig查看WAN口名称,并在命令中更改。

一个命令解决IPV6中继(Relay)一段时间不走流量就断网的问题



tracert ipv6.google.com
  将这条命令保存为快捷方式,当需要使用IPV6网络时就运行一次。

原理
  tracert是Windows下路由追踪的工具。当执行该命令时,系统向上级网关发送访问IPV6的请求,从而激活了IPV6网络。在ping不通IPV6地址的时候,使用tracert往往能解决问题。

执行效果

  用Chrome的IPvFoo扩展可以查看访问的网站走的是IPV4还是IPV6。

(访问www.kame.net,在IPV6网络环境下可以看见乌龟的动画)