查看: 252|回复: 1

『面向小白』嫌newifi功能太少?用命令行管理路由教程

[复制链接]

主题

好友

322

积分

少尉

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2016-12-12 16:22 |显示全部楼层
TG-NET
Anywlan微信公众号
^. 写在前面

本文描述了ssh登录newifi的基本方法,同时介绍了可以用命令行实现各种应用的思路,包括『MAC地址克隆』、『计划任务』、『用路由器挂qq』、『屏蔽DNS污染』以及『端口映射』等等等。。
本人赋闲的大学狗一只。Linux小白,openWRT小白,硬件小白。上周拿到路由器之后觉得很好玩,就泡了几个论,略略研究了下,与各位分享一下心得。
话说这算是造轮子么?
面向小白,所以可能会有点啰嗦,老司机不用看了==,当然看看也好,有问题请斧正XD

1. openWRT八卦

正如电脑需要操作系统一样,路由器也是需要操作系统的。普通的所谓『非智能』路由器上运行的大多是基于Linux或者vxWorks修改的嵌入式系统,非常封闭,扩展性很差。而当前所谓的『智能路由器』,包括小米、**以及其他等等,运行的大多都是openWRT的定制版操作系统。(说错了不要打我)
关于openWRT的来源,可以参考知乎上的这个回答。引用如下:
Cisco/Linksys 在2003 年发行的WRT54G这款无线路由器非常“经典”。同年有好事者在 Linux Kernel Mailing List 搜索 WRT54G,发现它的IOS是基于Linux,然而Linux 基于GPL 发布许可证,就是 GNU General Public License. 该许可证规定Cisco 应该把WRT54G 的IOS 的源代码公开。本来Cisco 拒绝公开源代码,最后,03 年三月份的时候,基于公众压力Linksys 公开了WRT54G 的源代码。
故事本来到这里就结束了,然而相反,结果越闹越大:有了源代码以后,开发者便清楚知道代码如何控制路由器的硬件,并且掌握了一些通过增加新的代码到原有的IOS 当中去 —— 使得硬件支持更多的Feature 的技术。这些开发者组成了一个项目开发团队,不断对原来的IOS 进行更新,编码,加入新的特性…… 现在他们手上的WRT54G 无线路由器的能力已经大大超过了原来Cisco 设计的地摊货的设计思路。不但如此,随着这两年互联网Web2.0 技术的发展,不同的开发团队之间找到了更好的协同工作平台,其规模不亚于TAC. 他们最近建立了一个DD-WRT 项目的Wiki 站点将全套文档以及代码公开发布。使用DD-WRT 项目提供的源代码,重新升级WRT54G 以后你就能够获得一台相当于$600 左右的中端无线路由器了。
当Linksys 释放 WRT54G/GS 的源码后,网上出现了很多不同版本的 Firmware 去增强原有的功能。大多数的 Firmware 都是99%使用 Linksys的源码,只有1%是加上去的,每一种 Firmware 都是针对特定的市场而设计,这样做有2个缺点,第一个是难以集合各版本Firmware的长处,第二个是这版本距离 Linux 正式发行版越来越远。
OpenWrt 选择了另一条路,它从零开始,一点一点的把各软件加入去,使其接近 Linksys 版 Firmware的功能,而OpenWrt 的成功之处是它的文件系统是可写的,开发者无需在每一次修改后重新编译,另它更像一个小型的 Linux 电脑系统,也加快了开发速度。


简直是一个都市传说啊这。。。。我想说这『好事者』是要有多闲才会干出这种事。。。。
对于联想的Y1S路由器来说,其上运行的系统是openWRT AA的一个定制版。
哎我觉得我好像写了很多废话啊。。。好吧我主要是想介绍一下这个八卦。。


2. SSH登录

通常我们管理路由器都是通过在浏览器中输入路由的IP来访问的,实际上这样访问的是运行在路由器上的一个web服务器。联想所谓的这个newifi界面是基于openWRT的LuCI组件定制的,虽然看起来很华丽,并且在流程和界面上对小白很友好(个人感觉比如意云好),但是功能上还有很大的欠缺。
实际上还有其他的方式来登录并管理路由器,这里要介绍的就是SSH登录。
SSH(secure shell)是一个安全协议,具体是什么就不(qi)在(shi)此(wo)介(ye)绍(bu)了(dong)。下面介绍ssh登录的具体步骤。

2.1. Windows
如果你用的是windows,推荐使用putty和winSCP,前者是用来登录命令行的,后者是像ftp一样用来管理文件和文件夹的。注意,这两个软件请从官网(puttywinscp.net)或者Google搜索名字来下载,并且推荐使用英文版的。用百度搜索中文版的后果是这样。路由器还好,要是用来登录网站服务器就危险了。。

本文只介绍putty。下载安装后,填入IP和端口号(默认22),点击『open』按钮即可。(如下图黄色所示)



注意图中我写的是newifi对应的ip,其他版本的固件请自行修改。
之后会弹出一个黑框框,输入用户名root并回车,然后输入路由器的管理密码。和所有的Linux一样,输入密码时屏幕上不会有任何显示,连星号都不会有。输入完成后回车,弹出欢迎信息。
其实newif的欢迎信息我也没见过,因为我知道可以ssh登录的时候我已经刷了1516的如意云了(╯﹏╰),要是谁登录成功了截个欢迎信息给我见识见识吧,不会和如意云一样也是一个大大的『D-Team』吧?
好了这个就是所谓的Linux命令行了。

2.2. Android
谁那么蛋疼会在手机上ssh登录路由器啊,好吧有时候我在床上玩手机的时候丧心病狂的想改一个设置(/ω\)
推荐Android Terminal Emulator,Google Play链接在此,没Google账户或者翻不了墙的乃们就自己去搜吧。
无需root,无需配置直接输入以下命令即可:

[color=rgb(224, 51, 0) !important]复制代码




3. shell基本命令

以下几个基本命令按照实用程度排序,基本上vi和vi之后的都可以不用看了。。。

  • cd:change directory 切换目录,例如,『cd config』切换到当前目录下的config目录,『cd ..』将切换到上级目录,『cd /etc』切换到根目录下的目录『etc』
  • ls:list 。列表显示文件和文件夹。蓝色表示目录,绿色表示可执行文件,白色表示普通文件。『ls -l』显示详细信息。『ls /etc』显示etc文件夹下的内容,留空则显示当前目录中的内容。
  • ll:等同于『ls -l --color=tty』,简便写法。
  • cat:CATenate输出文件内容,例如『cat /proc/cpuinfo』将输出proc文件夹中cpuinfo的内容。超常用的命令。
  • vi:Linux中常用的文本编辑器,具体用法请自行Google。如果觉得vi学起来麻烦,也可以用在电脑上编辑好文件再用winSCP传上去。
  • find:搜索文件
  • cp:CoPy复制文件。虽然是基本命令但我好像从来没用过
  • grep:Global Regular ExPression搜索文本,请配合正则表达式服用。
  • sed:似乎是可以用在脚本中的文本编辑器,嘛这个真的没(wo)啥(bu)用(hui)啦~
  • opkg:OpenWRT PacKaGe。在pandoraBox中可用来下载安装软件,newifi里的话,可能有用,参考4.4.

基本上上面几个命令对于管理路由器来说是够用了。
如果想要了解openWRT的具体系统结构,以及根目录下的各种文件夹究竟是干嘛的,可以看hoowa的这篇文章
如果想要了解一个命令有什么参数可用,可以看这个中文版的速查手册

4. 具体实现
首先声明,本章的所有解决方案都未经newifi测试,因为我刷的是pandoraBox。。。
但是我相信没有什么问题,就算功能不一定能实现但是总归不会把路由变砖的,只要你不手贱去运行『/etc/init.d/network stop』这种命令。。。
尽管如此,我还是事先声明一下,请各位明白自己在做什么之后再按下回车键,不然出了问题我可不负责哈。

4.1. MAC克隆
这个功能应该是超常用了,newifi竟然没有提供简直是丧心病狂啊。俺学校就是绑定MAC和IP才能上网的,不提供这个功能我怎么才能在学校能活下去。。
如意云和PandoraBox应该是在图形界面有这个功能的。在newifi上,只好用ssh了。输入如下命令:
  • cd /etc/config
  • vi network

[color=rgb(224, 51, 0) !important]复制代码

这就用vi打开了network的UCI配置文件,可以看到这配置文件还是写的很用户友好的,懂英文就能看懂。
用方向键把光标定位到『config interface 'wan'』行的末尾,按『o』插入新的一行,输入『option macaddr 'B8:AC:6F:75:XX:XX'』,注意把其中的MAC地址替换成自己的。ESC退出编辑模式,按『:wq』保存并退出vi。
然后输入 『/etc/init.d/network restart』重新启动网络。
关于vi的初级教程和UCI的基本介绍,可以参考hoowa的这篇文章
关于network的详细配置教程,可以参考hoowa的这里

4.2. 计划任务
计划任务可以让路由器在指定的时刻完成指定的任务。在openWRT上通常使用crontab(cron还是一个来自希腊语的词汇一刚)来管理计划任务。
不知道newifi有没有装crontab啊,应该是有的吧。
现在我路由器上的计划任务就是定时关闭wifi,让我不至于在床上玩手机玩到很晚,强制我睡觉。。。

下面以定时开关wifi为例。
输入『crontab -e』,打开crontab的配置文件,如果我没估计错的话本来这个文件应该是空的,至少我这pandoraBox是这样。
按『o』插入新行,进入编辑模式,输入以下两行

这里简要介绍一下,crontab的配置文件中,每行代表一个任务,格式为
  • 分钟 小时 日期 月份 星期 命令 参数

[color=rgb(224, 51, 0) !important]复制代码

其中可用『*』表示取任意值,『1/2』表示1或2,『1-5』表示1到5。
所以图中第一条就是每天凌晨0点15分运行『wifi down』,也就是关wifi。
编辑完成后,按ESC退出编辑模式。输入『:wq』保存并退出vi即可。
这时可以运行『crontab -l』查看当前的任务。

当然其实计划任务非常强大,除了关闭和开启wifi之外,它实际上可以实现任何用命令能实现的功能,也就是说,它可以实现定时挂qq,定时更改wifi密码,定时断网,定时关闭WPS(听上去都好蛋疼),定时添加计划任务(这个更蛋疼)。。。。

4.3. 关闭WPS
昨天看了@甄夏流 写的这个帖子,深感关闭WPS的重要性。因为照他这说法,4到10个小时之内是必然可以攻破一个开了WPS的无线网的,即使采用WPA2加密。
pandoraBox是默认没开wps的,不知道如意云和newifi怎样。我听说好像newifi是不能在web里关闭WPS的来着。
总之可以打开『/etc/config/wireless』编辑『config wifi iface』下的内容,把wps开头的键值都删除了就好。
具体的键值含义可以参考这个

4.4. 挂 3G QQ
这个我也没试过,因为我不想把qq密码明文写出来放在路由器上。。。想尝试的可以参考这个帖子
虽然这个教程是针对pandoraBox的,但是楼主说可以用pandoraBox的源把curl和其他软件装在小云上,那我想newifi应该也没有问题。
有时间可以试试。这样想来我当初其实也没必要刷pandoraBox的啊,直接用ssh管理newifi算了。。。
具体来说,对于newifi,思路应该是这样的:
  • 修改『/etc/opkg.conf』,添加『src/gz pandoraboxhttp://downloads.openwrt.org.cn/PandoraBox/ralink/mt7620/packages
  • 运行『opkg update』然后『opkg install』安装必要的软件
  • 按照前文提到的教程配置
这个我真没试过,有『好事者』可以研究下O(∩_∩)O~~

4.5. VPN服务器
我觉得这个也是相当有用的功能,因为坛子上有个帖子说可以通过VPN免登录使用联通的无线网ChinaUnicom
虽然网上也有TenacyVPN等免费VPN可供选择,但是那个主要是用来翻墙的,速度比较慢,还是自己搭一个pptp服务器比较方便。
当然你也可以用wifi伴侣这样的获取用户名密码的软件。
对于newifi来说,要实现这个功能,比较麻烦的是需要配置源,和4.4中一样
正好手头有个CMCC,等下我试试看。……
好了花了几个小时终于成功架设了一个pptp的VPN,不过坏消息是CMCC不能用。。。
教程见这个帖子。不过其中的防火墙规则有些问题,更改如下:
  • iptables -t nat -I PREROUTING -p gre -j DNAT --to-destination 192.168.1.55
  • iptables -A input_wan_rule -p tcp --dport 1723 -j ACCEPT
  • iptables -A input_wan_rule -p gre -j ACCEPT
  • iptables -A INPUT -p 47 -j ACCEPT
  • iptables -A input_rule -i ppp+ -j ACCEPT
  • iptables -A forwarding_rule -i ppp+ -j ACCEPT
  • iptables -A forwarding_rule -o ppp+ -j ACCEPT
  • iptables -A output_rule -o ppp+ -j ACCEPT

[color=rgb(224, 51, 0) !important]复制代码

另外我把remoteip改成192.168.1.55了,不知道原来那种写法可不可以。但是这样的话就只能连一台客户端了。
虽然很遗憾的不能用在CMCC上,但是据网上的消息,Chinanet和ChinaUnicom是没问题的。。。
另外我也可以在家里连VPN到学校然后下载文献啦~



4.6. 端口映射
所谓的端口映射就是局域网内的某个客户端的某个端口开放给外网,这样 ,当外网访问路由器的某个端口时,实际上访问的是内网中某台机器的端口。
大约是用在内网有NAS或者服务器的时候罢。
具体的配置参考坛子@qidingxuan的这个帖子

4.7. 屏蔽ISP的DNS污染
参考@小黑的这个帖子
简单来说就是,在『/etc/config/dhcp』的『dnsmasq』配置段中加入一句『bogusnxdomain=1.2.3.4』即可。其中1.2.3.4是奸商的IP地址。
我还特地去查了下这个bxx什么意思,原来『bogus』是伪造的意思,『nxdomain』指的是『nonExistent domain』。

4.8. 其他
其他我觉得挺有价值的应用包括可以叠加带宽的『单线多拨』、破解无线网络的『aircrack-ng』以及各种NAS相关应用。不过我都不怎么用的上所以就懒得写了,另一方面,写着写着我越来越发现这帖子怎么变成汇总贴了

主题

好友

1210

积分

上尉

签到天数: 84 天

[LV.6]常住居民II

发表于 2016-12-13 18:16 |显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

Archiver| 手机版| 中国无线门户 ( 粤ICP备11076993 )  |网站地图    小黑屋 | 免责声明

GMT+8, 2017-1-18 05:17

Powered by Discuz! X3.2

© 2003-2013 广州威思信息科技有限公司

返回顶部 返回列表