命令行 uci设置 OpenWrt router 模式拨号上网

如果路由器可以正常上网的前提,我们可以ssh登录路由器,直接在路由器的/tmp目录wget下载最新版固件并sysupgrade命令进行固件升级

有时候,路由器无法上网,这时候,可以在电脑里下载好固件,再把固件复制到路由器,再sysupgrade升级或设置其他参数

只要能进入路由器的安全模式,并ssh登录路由器,一切都不是问题

cd ~/Downloads
wget http://downloads.openwrt.org/snapshots/targets/ar71xx/generic/openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin

scp复制固件到OpenWrt路由器 /tmp目录

scp openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/

ssh登录OpenWrt路由器

ssh root@192.168.1.1
cd /tmp

sysupgrade升级固件并取消保留原来配置文件

注意,升级后将无法上网,也没有LuCI网页界面可以设置,必须以命令行方式设置好上网参数

如果在下面的实验中,命令行方式无法搞定路由器上网,就只能在电脑里下载好带luCI的固件,scp复制固件到路由器升级固件,然后以网页方式设置上网

在进行这一步前,确保你熟练掌握以前部分教程

root@OpenWrt:/tmp# sysupgrade -n openwrt-ar71xx-generic-tl-wr2543-v1-squashfs-sysupgrade.bin

参数 -n 表示升级时不保留原来的配置文件。固件刷好后会自动重启,这时要用前文教程讲过的方法进入OpenWrt安全模式,登录路由器并重新设置root密码

下面假设你已经登录了路由器并设好了root密码

OpenWrt uci命令行设置拨号上网:

root@OpenWrt: uci set network.wan.proto='pppoe'
root@OpenWrt: uci set network.wan.username='wan-username'
root@OpenWrt: uci set network.wan.password='wan-password'
root@OpenWrt: uci set network.wan.peerdns=0

wan-username替换成你自己的拨号上网用户名,wan-password替换成你自己的密码

以上命令行的操作对象是文件 /etc/config/network

OpenWrt uci命令行设置无线上网:

root@OpenWrt: uci set wireless.@wifi-device[0].channel=11
root@OpenWrt: uci set wireless.@wifi-device[0].txpower=17
root@OpenWrt: uci set wireless.@wifi-device[0].disabled=0
root@OpenWrt: uci set wireless.@wifi-device[0].country='CN'
root@OpenWrt: uci set wireless.@wifi-iface[0].mode='ap'
root@OpenWrt: uci set wireless.@wifi-iface[0].ssid='eastking-tlwr2543'
root@OpenWrt: uci set wireless.@wifi-iface[0].encryption='psk2'
root@OpenWrt: uci set wireless.@wifi-iface[0].key='icanfly9876'
root@OpenWrt: uci commit wireless >/dev/null

以上命令实际上是应用在 /etc/config/wireless 文件上

uci设置说明

  • channel 信道
  • txpower 功率
  • disabled 是否启用无线,0表示启用
  • ssid 名称,推荐后面以路由器型号结尾,这样调试多个路由器时不会混淆
  • encryption 加密方式
  • key 无线密码,如果你照上文的设置不动,好处是忘记密码时可以上 http://www.github.com/softwaredownload/openwrt-fanqiang 来查看

允许远程主机用ssh的方式登录路由器及设置时区

root@OpenWrt: uci set dropbear.@dropbear[0].GatewayPorts='on'
root@OpenWrt: uci set system.@system[0].zonename='Asia/Shanghai'
root@OpenWrt: uci set system.@system[0].timezone='CST-8'
root@OpenWrt: uci commit system

ssh登录OpenWrt相关高级设置(你可能暂时用不到)

root@OpenWrt: uci set dropbear.@dropbear[0].Port=22
root@OpenWrt: uci set dropbear.@dropbear[0].PasswordAuth=off
root@OpenWrt: uci set dropbear.@dropbear[0].RootPasswordAuth=off
root@OpenWrt: uci commit dropbear

说明(不懂千万别乱设)

  • Port ssh默认端口就是22,可以改成其他的提高安全性
  • PasswordAuth ssh是否启用密钥登录。如果你改成off,又没有设置好ssh私钥和安装好LuCI,你将无法ssh方式登录路由器,唯一的办法就是安全恢复模式登录重新开始设置
  • RootPasswordAuth 是否允许root用密码登录,如果已经设置好了ssh私钥就可以改成off增加安全性

启用新的网络和无线设置

root@OpenWrt: /etc/init.d/dropbear restart
root@OpenWrt: /etc/init.d/system restart
root@OpenWrt: /etc/init.d/network restart

怎么样,有线和无线上网又都回来了吧!

注意,有的人在网上贴出了他的完整配置文件/etc/config/network 和/etc/config/wireless, 如果你复制他的文件覆盖你的文件,再修改用户名和密码,可能会出问题,因为不同路由器的硬件配置可能不同

相关资源: