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

2023-11-03

  
   在第三部分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网段)
  
 
  本文作者: 孙冰
本文转自雷锋网禁止二次转载, 原文链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 在 bash 中使用单个命令为 shell 变量分配默认值

    我对 bash 3 00 shell 脚本中的变量进行了大量测试 如果未设置变量 则它会分配默认值 例如 if z VARIABLE then FOO default else FOO VARIABLE fi 我似乎记得有一些语法可以在一行
  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 添加要在给定命令中运行的 .env 变量

    我有一个 env 文件 其中包含如下变量 HELLO world SOMETHING nothing 前几天我发现了这个很棒的脚本 它将这些变量放入当前会话中 所以当我运行这样的东西时 cat env grep v xargs node t
  • 如何以管理员身份在 rake 任务中运行 shell 命令?

    我有一个简短的 cmd 文件 我想将其作为部署过程的一部分运行 不幸的是 cmd 文件需要管理员权限 是否可以从 rake 中获得管理员权限 或者我是否需要以管理员身份启动 shell 您可以尝试runas http ss64 com nt
  • 分叉/多线程进程|重击

    我想让我的代码的一部分更加高效 我正在考虑让它分叉成多个进程 并让它们一次执行 50 100 次 而不是只执行一次 例如 伪 for line in file do foo foo2 foo3 done 我希望这个 for 循环运行多次 我
  • 通过 sed 使用 unix 变量将数据附加到每行末尾[重复]

    这个问题在这里已经有答案了 我有一个文件 我想使用 SED 将值附加到每行末尾的 unix 变量中 我已经通过 AWK 实现了这一点 但我想在 SED 中实现 像这样的东西 我已经尝试过以下命令 但它不起作用 sed i s BATCH R
  • 符合 POSIX 标准的 shell 相当于 Bash“while read -d $'\0' ...”?

    我正在尝试使 Bash 脚本严格符合 POSIX 标准 即消除任何潜在的 Bashisms http mywiki wooledge org Bashism 通过使用checkbashisms px script filename 在给定的
  • bash循环跳过注释行

    我正在循环文件中的行 我只需要跳过以 开头的行 我怎么做 bin sh while read line do if line doesn t start with then echo line fi done lt tmp myfile 谢
  • 每个命令都返回“bash:<命令>:找不到命令...”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我刚刚安装了 Scala 并添加了路径gedit bashrc export SCALA HOME home avijit sca
  • Shell Crontab 不工作

    GNU nano 2 0 9 文件 tmp crontab XXXXzBQgwS 5 check phpfpm sh 5 check nginx sh 5 disk clean sh 5 loadcheck sh 按理说我的代码应该每 5
  • Bash 脚本监听按键以继续

    因此 我想编写一个由一系列步骤组成的 bash 脚本 并将其标识为 task 然而 每个步骤都只能完成并且可以根据用户的需要运行 Do task1 if keypressed stop task1 and move on this is t
  • 这种 bash 文件名提取技术有何用途?

    我有一部分 bash 脚本正在获取不带扩展名的文件名 但我试图了解这里到底发生了什么 是做什么用的 有人可以详细说明 bash 在幕后做了什么吗 如何在一般基础上使用该技术 bin bash for src in tif do txt sr
  • 如何在 Makefile 中定义全局 shell 函数?

    我想定义一个shell函数 bin sh test do some complicated tests 1 2 if something then build thisway 1 2 else build otherway 1 2 fi 这
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • shell解析json并循环输出组合变量

    杰斯克喜欢我之前的话题 https stackoverflow com questions 74063588 shell parsing json contains spaces in string 我知道如何解析带有空格的简单 json
  • 使用运算符 j 操作 zsh 数组

    以下代码摘自here http eseth org 2010 git in zsh html function vi git st local ahead behind remote local a gitstatus Are we on
  • adb shell 输入带有空格的文本

    如何发送带有空格的文本 例如 一些文字 using adb shell input text 找到以下解决方案 adb shell input text some stext 工作正常 但是有什么简单的方法可以用 s 替换空格吗 Examp
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • 在 bash 中,如何除以两个变量并输出四舍五入到小数点后 5 位的答案? [复制]

    这个问题在这里已经有答案了 我将两个变量作为输入 将它们相除后 我希望将输出四舍五入到小数点后 5 位 我已经尝试过这种方法 gt sum 12 n 7 output scale 5 sum n bc echo output 我的代码没有显
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这

随机推荐

  • 往届生再培训:嵌入式培训4个月,我经历了什么?

    每年的五月正值万物生长的蓬勃季节 自己也不能够落下 拾起尘封日久的书籍 翻开黄黑相间的教程 刷新在线浏览的视频 有意而无形之间 我的嵌入式之旅悄然开始了 但网络资源过于丰富 让我有些眼花缭乱 难以把握重点 同时 自制力也有些许的不足 这些都
  • 互联网生活中的隐私保护:隐私换便利还是花钱护隐私?

    近日 某高校毕业生在校期间窃取学校内网数据 收集全校学生个人隐私信息的新闻引发了人们对互联网生活中个人信息安全问题的再度关注 在大数据时代 算法分发带来了隐私侵犯 在享受消费生活等便捷权利的同时 似乎又有不少个人信息泄露的担忧 用隐私换便利
  • 区块链+跨境支付的优势

    全球互联网的高速发展也带动了跨境电商的快速发展 跨境支付也瞬间成为第三方支付领域的一个风口 而将区块链技术应用在跨境支付领域也逐渐成为市场的热点需求 传统的跨境支付方式中间环节繁杂 费时又费力 而且跨境电商卖家在跨境支付环节 存在境外银行账
  • 快速生成dto转vo的方法

    方法1 使用BeanUntils 所属包org springframework beans BeanUtils demo Entity实体类 import lombok Data import java util Date author s
  • 分布式软件架构——SOA架构/微服务架构/无服务架构

    SOA架构 Service Oriented Architecture 面向服务的架构 面向服务的架构是一次具体地 系统性地成功解决分布式服务主要问题的架构模式 了解SOA架构前 先了解三种比较有代表性的服务拆分的架构模式 这些架构模式是S
  • 对KVM虚拟机进行cpu pinning配置的方法

    这篇文章主要介绍了对KVM虚拟机进行cpu pinning配置的方法 通过文中的各种virsh命令可进行操作 需要的朋友可以参考下 首先需求了解基本的信息 1 宿主机CPU特性查看 使用virsh nodeinfo可以看到一些基本信息 vi
  • Java架构纯享版进阶手册:核心框架篇,斩获阿里年薪50W+

    在做管理的时候 我发现了很多同事职业发展的问题 很多同事都是积极好学 自己看了很多书 网上买了很多视频 也参加过不少培训课程 但是发现自己的技术始终在某个瓶颈徘徊 始终没法达到一个很高的位置 为什么呢 这里我援引大量同事给我的反馈 我是看了
  • 我们为什么要上学--奥巴马开学演讲稿

    美国总统奥巴马开学演讲 Why do We Go to School Hello everybody Thank you Thank you Thank you everybody All right everybody go ahead
  • BigDecimal转成String

    String total String map get total 结果就报了java math BigDecimal cannot be cast to java lang String异常 查询发现 问题是出在强转上 只要改成 Stri
  • JavaScript中字符串运算符的使用

    字符串运算符是用于两个字符串型数据之间的运算符 它的作用是将两个字符串连接起来 在JavaScript中 可以使用 和 运算符对两个字符串进行连接运算 其中 运算符用于连接两个字符串 而 运算符则连接两个字符串 并将结果赋给第一个字符串 另
  • 精选9款迷人的HTML5 3D动画效果及源码

    新的一周开始了 今天小编要为大家分享最新整理的9款HTML5 3D动画效果及源码下载 前端爱好者都可以来学习一下 以下就是详细的内容 一起来看看 1 HTML5 3D图片折叠特效 超炫酷图片特效 我们之前介绍过很多HTML5 3D图片效果
  • 神经网络之反向传播算法(梯度、误差反向传播算法BP)

    文章目录 一 反向传播及梯度 二 误差反向传播算法 BP 1 算法原理 2 算法实现 2 1 训练过程 2 2 测试过程及结果 3 参考源码及数据集 一 反向传播及梯度 在神经网络中 初始化生成的参数在使用时往往难以使网络获得最好的回归效果
  • 10讲学会C语言之第10讲:学生管理系统

    文章目录 前言 一 文件操作 二 系统介绍 三 作业 前言 大家好 我是卷卷 本节课是最后一讲 学生管理系统 本节课主要有以下三个部分 文件操作 系统介绍 作业 文末附课程资源和讨论q群号 一 文件操作 程序是在内存中运行的 一旦程序结束
  • wazauh离线部署

    官网 https wazuh com 如果服务器可以联网 直接参照官网文档部署即可 为方便安装 选择手动下载rpm包进行安装 wazuh相关下载地址 https documentation wazuh com 3 12 installati
  • Java课题笔记~ ServletContext

    单个Servlet的配置对象 web xml
  • vue-a-table表格前端实现多个条件搜索筛选功能实现(模糊查询)

    监听里面实现多条件查询
  • pip.conf的报错

    global index url https pypi tuna tsinghua edu cn simple extra index url http mirrors aliyun com pypi simple http pypi do
  • 软件测试面试题及答案,2021最强版!

    1 你的测试职业发展是什么 测试经验越多 测试能力越高 所以我的职业发展是需要时间积累的 一步步向着高级测试工程师奔去 而且我也有初步的职业规划 前3年积累测试经验 按如何做好测试工程师的要点去要求自己 不断更新自己改正自己 做好测试任务
  • JAVA1

    文章目录 计算机的硬件与软件 DOS命令 计算机的硬件与软件 DOS命令
  • 【硬创邦】跟hoowa学做智能路由(九):时区/服务/SSH

    在第三部分Area 3部分 路由器的基础功能已经讲了很多 这些部分组成了一款可用的路由器 本章将继续介绍余下的一些常用系统配置 系统信息和时区 我们大家知道电脑重新开机后时间都保留着 那是因为我们的主板上有电池和时间芯片 一般该芯片是达拉斯