【硬创邦】跟hoowa学做智能路由(九):时区/服务/SSH

在第三部分Area 3部分,路由器的基础功能已经讲了很多,这些部分组成了一款可用的路由器。本章将继续介绍余下的一些常用系统配置。

系统信息和时区

我们大家知道电脑重新开机后时间都保留着,那是因为我们的主板上有电池和时间芯片,一般该芯片是达拉斯品牌的。在传统路由器上是没有时间芯片和电池的(传统的路由器也不需要),因为那些路由器只是个功能路由,时间没什么作用。可是智能路由中可能需要这个功能,至少如果有数据库,数据库记录数据的时间总要正确吧。

在OpenWRT下我们解决这个问题普遍是采用的是通过NTP服务向时间授权服务器发出请求要求提供时间服务。根据本地的时区配置,反应称为本地时间。

在/etc/config/system中配置有时区的参数。

config system 系统参数表
键 值 必须设置 说明
hostname 字符串 是 主机名称,要设置啊
timezone 字符串 是 时区设置,参考附录: 时区表, 中国填写: CST-8

举例参考:

config system
option hostname SmartRouter
option timezone CST-8

config timeserver 时区服务器参数表
键 值 必须设置 说明
server 列表值 是 NTP服务器地址
enable_server 数字 是 开启模式,值: 0 表示只作为客户端获取远端时间, 1 表示作为中继模式,从远端NTP服务器获得时间,为本地的设备提供NTP服务。

举例参考,这里第一个服务器使用了教程服务器提供的NTP服务:

config timeserver ntp
list server 182.92.3.46
list server 0.openwrt.pool.ntp.org
list server 1.openwrt.pool.ntp.org
list server 2.openwrt.pool.ntp.org
option enable_server 0

重新启动系统后会生成/tmp/TZ这个文件,新时区生效:

root@SmartRouter:/# reboot

以上的182.92.3.46是本次教学的定制版系统下载服务器(该服务器具备NTP服务),你可以根据实际需要来使用ntp服务器地址,通过查看系统时间指令可以确定是否取得了时间:

root@SmartRouter:/# date

有的时候,有的NTP服务器连接不上,尤其是海外的,因此可能得到的时间有快有慢。

进程和服务

在OpenWRT系统下有大量的服务进程,通过列表即可看到:

root@SmartRouter:/# ls /etc/init.d/

这些进程都可以进行复杂控制,直接执行这些进程可以看到可选参数,在这里我们以网络部分的服务network举例:

root@SmartRouter:/# /etc/init.d/network

语法: /etc/init.d/network [指令]

可用指令:
start 立即启动服务
stop 立即停止服务
restart 立即重新启动服务
reload 重新读取该服务的配置信息
enable 开机自动启动
disable 禁用开机自动启动
killclients 清楚掉已连接上来的客户端

通过以上参数执行,即可达到所需效果。

比如,启动network服务:

root@SmartRouter:/# /etc/init.d/network start

比如,重新启动network服务:

root@SmartRouter:/# /etc/init.d/network restart

系统中的服务有很多,大家刚才也看到列表了,那么这些服务的作用我们不一一讲解,还是那句话,用到哪个说哪个。

SSH配置

SSH(Secure Shell)是Linux系统中标配的远程命令管理协议,通过SSH即可访问系统的完整shell权限,其作用类似我们进行的串口登陆。

同时,我们在之前章节所讲过的SCP文件管理的技术,也是基于SSH实现的,在我们的系统中SSH默认已经存在了。

SSH的进程管理有点特殊,默认情况下要对系统的超级用户(root)设置密码后才可以启动,设置语法我们再温习一次,新密码根据提示输入两次,如果两次匹配则生效:

root@SmartRouter:/# passwd

SSH在系统中的配置文件为/etc/config/dropbear

config dropbear 参数表
键 值 必须设置 说明
enable 数字 是 是否开启SSH服务,值: 1 开启,0 禁用
PasswordAuth 字符串 是 登入是否需要密码,值: on / 1 表示需要,0 禁用
RootPasswordAuth 字符串 是 允许root密码方式登入,值: on / 1 表示允许, 0 禁用
RootLogin 字符串 否 允许root登入,值: 1 允许, 1 禁用
BannerFile 字符串 否 登入后显示的欢迎信息,默认直接读取/etc/banner
Port 数字 是 设置SSH的端口,范围在10-65535 不要跟别的端口冲突了啊

举例:

config dropbear
option PasswordAuth 'on'
option RootPasswordAuth 'on'
option Port '22'
# option BannerFile '/etc/banner'

SSH的默认配置已经达到要求了,因此不用做修改可以服务,如果需要修改就在修改完成后重新启动/etc/init.d/dropbear这个服务以生效:

root@SmartRouter:/# /etc/init.d/dropbear restart

使用putty远程登入SSH

到现在为止,我们使用的都是putty这个工具通过串口控制系统,其实OpenWRT完全可以像标准的Linux系统那样直接通过SSH远程登入的。

上一节我们已经启动了SSH的服务。那么现在我们使用putty直接登入设备的SSH端口。

请注意,OpenWRT默认是对WAN口实行防火墙管制的,SSH的端口一定是在关闭状态下,为了使用方便,我建议各位这个时候可以使用你的电脑直接通过WIFI或有线连接到LAN口上。

在putty填写内容大致如下:

填写完毕后点击Open即可通过SSH连接到你的设备上。然后填写帐号root,密码就是你上一章设置过的密码。点击确认就可以登入。

如果这样登入OK,那么以后的章节,你就可以不用一直插着串口线拉(当然如果能插着也是不错的选择)。

Area 3尾记

在整个第三部分Area 3中,hoowa向大家介绍了OpenWRT作为普通的基本路由器的配置和使用方法。这部分有很多东西是需要大家记下来的,这些都作为基础存在,Area 3可能显得有些枯燥,但是为了美好的Area 4那么多可以玩的地方,这部分必须要七七八八啃的差不多。

如果Area3操作完成以后,你的局域网向下面这样了,说明你学的基本OK了:

  • 小猫情况: 你的电脑--wifi--->M150开发板--->你上网的路由器--->外网
  • 大老虎情况: 你的电脑--wifi--->M150开发板--->外网
  • 喵星人情况: 你的电脑(lan(不设置网关, 192.168.1.X网段))---wifi----->你上网的路由器(M150开发板,192.168.100.X网段)

其实,Area 3的教学目的我们已经说明,就是让你首先的拿开发板变成一个路由器。感谢大家!

最后,大家现在可以开始提问,在雷锋网(公众号:雷锋网)文章评论、公众号「宅客」:letshome、QQ群:196302618、邮箱:DIYRouter#163.com都可以提交,问题我将会在下章的时候统一解答。需要提醒下,我并不是高手,我回答问题有三个原则:1、我会的我直接回答 2、我不太会的我看着回答 3、我不会的我瞎忽悠 所以我给的答案是否正确需要大家自行判断。

雷锋网原创文章,未经授权禁止转载。详情见转载须知

【硬创邦】跟hoowa学做智能路由(九):时区/服务/SSH

(完)