CA88新登入 2

web管理页面,过程笔记

一、OpenWrt介绍

OpenWrt官网: https://openwrt.org
CA88新登入 1
OpenWrt是一种适用于嵌入式设备的Linux发行版,是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VoIP设备中。同时,OpenWrt还提供了100多个已编译好的软件,且数量还在不断增加,OpenWrt
SDK简化了开发相关软件的过程。

在uHTTPd上安装LuCI

在下的树梅派2不幸被延期到年后才能发货了,春节没的折腾了怎么办?无意中在
Rpi2 的报道中读到了关于 TL-WR703N
的消息,才想到还剩在箱底的她。思索着既然是春节,就做个好事情,将 OpenWrt
介绍给她!

二、DNSCrypt介绍

DNSCrypt官网: https://www.dnscrypt.org
CA88新登入 2
DNSCrypt是一种DNS客户端和DNS解析器之间的认证通信的协议。它可以防止DNS欺骗,它使用密码签名来验证来自选择的DNS解析器返回的原始响应,保证信息没有被篡改。DNSCrypt软件支持Linux、Mac
OSX、Android、iOS、BSD和Windows等系统。
DNSCrypt不属于任何公司或组织,它是一个使用了高度安全的、非NIST加密的文档化协议,其参考实现是开源的,有一个非常宽松的许可证。
要注意,DNSCrypt并非VPN的替代品,因为它只是验证DNS流量,并不会预防“DNS泄露”等。

本文主要讲述怎样在OpenWrt路由器上安装和配置DNSCrypt。

CA88新登入,这是安装Web用户界面LuCI的要点。运行”opkg update && opkg list
luci-*”命令查找所有可用的能通过LuCI管理OpenWrt的软件包。

主角介绍

TL-WR703N 是 TP 在 2011
年推出的一款便携式 3G 路由器,具备一个可连接 3G 上网卡的标准 USB
口,802.11N 150M 无线网络,microUSB 供电接口,搭载 Atheros AR7240 CPU 及
Atheros AR9331 芯片组。小巧省电,不到手掌心大,功耗不及 0.5W。

[OpenWrt]则是面向路由器等小型嵌入式设备的 Linux 发行版,可以使用 opkg
包管理器轻松扩展功能。截止本文发表时最新版本为代号是 Barrier Breaker 的
14.07 Final
版,使用
Linux Kernel 3.10 。

步骤1:安装DNSCrypt

DNSCrypt源码不在opkg的默认列表中,因此需要先把源添加到opkg列表的最后
‘/etc/opkg.conf’。

echo 'src/gz exopenwrt http://exopenwrt.roland.black/barrier_breaker/14.07/ar71xx/packages/exopenwrt' >> /etc/opkg.conf

然后接着进行安装:

opkg update
opkg install dnscrypt-proxy

验证安装:

### opkg status | grep -n "dnscrypt-proxy"
### Result ###
230:Package: dnscrypt-proxy
236: /etc/config/dnscrypt-proxy ff316755d745da9b15b7166b667ed108

安装

初次见面

单纯刷入 OpenWrt 固件相当简单,OpenWrt 提供了针对 TL-WR703N
的预编译镜像。大致步骤如下:

  1. 从 OpenWrt 官网下载对应型号的固件,由于这个时基于 AR7240 CPU
    的,所以在名为 ar71xx
    的目录下寻找
    wr703n 即可。

  2. 首次从官方固件转换到 OpenWrt 固件,需要使用
    factory镜像。另外的sysupgrade用于从老版本的
    OpenWrt 升级,这里无须操心。

  3. 使用有线方式连接 WR703N 与电脑,然后在浏览器中输入 WR703N
    的网络配置
    IP。验证用户名和密码后,在左侧选择固件升级,然后选择刚才下载的
    OpenWrt
    镜像,确认写入。若是固件不识别,尝试将固件名称缩短些,比如重命名为
    openwrt.bin

  4. 耐心等待,大概快五分钟后,它会自动重启,此时迎接您的就是 OpenWrt 的
    LuCI 管理配置界面了。

根据 Wiki 上的说明,似乎 V1.7
版的官方固件存在兼容性问题,刷入困难。笔者手上的 V1.2
版倒是一切顺利,此外 14.07 Final 版的代号早已远高于报告有问题的
Trunk,应该无须担忧。

步骤2:配置DNSCrypt

DNSCrypt的配置文件在/etc/config/dnscrypt-proxy,它比较简单,易于调整:

### nano /etc/config/dnscrypt-proxy
config dnscrypt-proxy
    option address '127.0.0.1'
    option port    '5353'
  # option resolver        'cisco'
  # option resolvers_list  '/usr/share/dnscrypt-proxy/dnscrypt-resolvers.csv'
  # option ephemeral_keys '1'

现在可以启动DNSCrypt,并设置自启动:

/etc/init.d/dnscrypt-proxy enable
/etc/init.d/dnscrypt-proxy start

如果路由器重启后dnscrypt-proxy没有启动,那么或许该尝试在网络接口完全启动前启动它。在/etc/rc.local文件的“exit
0”行上面添加:

sleep 10
/etc/init.d/dnscrypt-proxy start

接下来,编辑‘/etc/config/dhcp’配置:

config dnsmasq
    option domainneeded         1
    option boguspriv            1
    option filterwin2k          0
    option localise_queries     1
    option rebind_protection    1
    option rebind_localhost     1
    option local                '/lan/'
    option domain               'lan'
    option expandhosts          1
    option nonegcache           0
    option authoritative        1
    option readethers           1
    option leasefile            '/tmp/dhcp.leases'
#   option resolvfile           '/tmp/resolv.conf.auto'
    option noresolv             1
    list server                 '127.0.0.1#5353'
    list server                 '/pool.ntp.org/208.67.222.222'
#   list server                 '208.67.222.222'
#   list server                 '208.67.220.220'

重启dnsmasq,使之生效:

/etc/init.d/dnsmasq restart

至此,就成功完成了DNSCrypt的安装。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-10/136406.htm

CA88新登入 3

在软件库中检索可用软件包的最新列表:

轻度调教

在呈现的登陆提示框下设定了 root 账户密码后,名为
dropbear SSH
服务器就可以使用了。用任意 SSH 客户端即可登陆进行配置工作

记得之前强调要用有线方式链接么?因为 OpenWrt 的无线网络默认是关闭的……

接下来根据个人需要分别设定无线网络和有线网络接口的功用,PPPoE、DDNS
什么的都有,如有必要还可以配置下防火墙什么。

如果您仅是想要 WR703n 继续乖乖的做一个路由,至此就可以了。

如果想要进一步挖掘它的其他潜能,请继续往下读。

opkg update

想要更多

顺便浏览下 opkg 软件仓库及 OpenWrt 的
Wiki,这款小小的设备的处理器还有很大的潜能。不过若是想要更多的话,首先要解决存储空间的问题,否则一两个额外软件包就能占满其仅有
4M 的闪存。而扩充容量最直接的方式就是插一个 U 盘!接下来要做的就是将 /
分区迁移到大容量的外接 U 盘上。

找一个空闲的 USB2.0 接口的 U 盘,注意太老的 USB 1.1 不认,格式化成
ext4 格式,插到 USB 接口上,然后在通过 SSH
在终端中执行以下步骤为系统添加外部 USB 大容量存储设备支持:

opkg update opkg install kmod-usb-storage block-mount kmod-fs-ext4

亦可在 LuCI 的 Software 面板中操作。Wiki 中还建议在 U
盘中顺道创建一个交换分区,可以根据您的接下来的具体应用考量。

然后用 mount 简单尝试下能否正常挂载,若是没问题话,继续。 假设 U
盘挂载到了 /mnt/sda1

mkdir -p /tmp/cproot
mount --bind / /tmp/cproot
tar -C /tmp/cproot -cvf - . | tar -C /mnt/sda1 -x
umount /tmp/cproot

之后用 vi 编辑 /etc/config/fstab 文件,仿照如下字段修改或添加:

config mount
       option target /
       option device /dev/sda1
       option fstype ext4
       option options rw,sync
       option enabled 1
       option enabled_fsck 0

保存退出,然后重启 WR703n,然后用 df 看看 / 分区容量是不是增大了呢?

除了这里描述的将整个 / 迁移到 U 盘的方法以外,还有一种仅将包含系统的
/overlay 分区迁移的方法,效果类似,不再赘述。

◾ 完整安装一个不需要HTTPS支持的LuCI:

分享彼此

既然通过扩容获得了足够的空间,可以折腾的空间就大很多了,比如您首先可能想要的就是中文支持:

opkg install kmod-nls-utf8 luci-i18n-chinese

接下来就任凭您想像了。有趣的是,不知出于何种原因中文论坛有不少人求该款设备的应用,这里还是建议直接从官方仓库在线安装比较好。

这里,首先介绍使用 Samba 供局域网分享文件。

为了方便管理及配置,可以安装 LuCI 的 Samba 管理模块:

opkg install luci-app-samba

它会依着依赖关系安装 Samba 3.6 版的服务器端。此外在 LuCI 界面上增加了
Service 分类,点击下面的 Network Share 开始配置。

General Settings
下的内容非常直观,主要是指定要共享的文件夹目录以及新文件权限。值得修改的是
Edit Template 标签中的内容。以下是几个推荐修改的选项

unix charset = UTF-8  #中文支持
security = share #方便本地访问

Wiki
页面上用了不少篇幅在说明防火墙的配置,似乎并不适用于最新版本的默认防火墙配置:它默认就已经是仅允许局域网访问。

opkg install luci

全能下载

在测试 Samba
可以良好的实现包括手机、高清播放机及电脑之间的文件共享之后,我琢磨着要不再用它做下载好了。

OpenWrt 仓库里提供有 aria2transmission-daemon 两个可以 BT
的下载软件,其中后者甚至还有 LuCI
配置界面模块。不过简单比较了下,aria2 的内存占用要明显少很多( 19% vs.
39%,空闲),考虑到仅有 32M 的内存,在下选择了前者。

opkg install aria2

之后按照 RPC 方式将 aria2 以守护进程方式运行:

/usr/bin/aria2c --enable-rpc --rpc-listen-all -D -d [DOWNLOAD FOLDER]

省事期间,可以直接将这一句写道 /etc/rc.local
中实现开机后自动运行,可以通过终端或者 LuCI 的 Startup 标签页操作。

aria2有不少前端,电脑上可以用WebUI,Android
手机则可以用Transdrone,配置都非常简单,无需赘言。

若是将下载目录指定为上述的 Samba
共享目录的话,更可以实现下载内容整个局域网可见。

◾ 完整安装一个需要HTTPS支持的LuCI:

性能及测试

借助 OpenWrt,WR703n 的性能得以充分发挥,在经过了如上配置后,同时两个
HTTP 下载及 Samba 大文件拷贝也不过仅仅消耗了其 50% 的 CPU 及 35%
的内存,意味着它还有不少潜力可以发挥。这一切都仅仅需要不到 0.5W
的功耗,实在是环保节能啊。

若是您手上也恰好这样一个小设备,不妨也试试用 OpenWrt 折磨它吧~

opkg install luci-ssl

参考阅读

OpenWrt Wiki:TP-Link
TL-WR703N

OpenWrt Wiki:USB
Storage

OpenWrt Wiki:Rootfs on External
Storage

OpenWrt Wiki: Samba

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-02/113815.htm

CA88新登入 4

OPKG 安装 luci

本地语言支持

基本的LuCI
Web用户界面是英文的。但是,志愿者们正积极的把它翻译成许多语言。参见http://i18n.luci.subsignal.org/pootle/可以参与!有关可用包的列表,运行