分类
OpenWRT

OpenWRT如何使用国内镜像

OpenWRT的安装命令opkg,使用opkg install来安装还是非常方便的。

opkg查询组件的2个常用命令

opkg list | grep -i samba

opkg list-installed | grep usb

OpenWRT使用list可以查询源里可选的组件有哪些?

OpenWRT使用list-installed可以查询已安装的组件有哪些?

by itgeeker.net

解决OpenWRT下载太慢的问题

OpenWRT官方网站推荐的其他镜像:https://openwrt.org/downloads#mirrors

其实里面没有中国境内的,但国内清华大学和中科院的镜像用起来都是没有问题的:

  1. https://mirrors.ustc.edu.cn/lede/ 
  2. https://mirrors.tuna.tsinghua.edu.cn/openwrt/ 

清华的还有一个是:https://mirrors.tuna.tsinghua.edu.cn/lede 其实和openwrt结尾一样的,因为之前openwrt就叫openwrt,后来改了叫lede,现在又改回去叫lede了。

修改文件 /etc/opkg/distfeeds.conf   

主要替换掉官方下载域名downloads.openwrt.org

#先备份原始的
cp /etc/opkg/distfeeds.conf /etc/opkg/distfeeds.conf.bk
#然后直接用sed替换
sed -i 's_downloads\.openwrt\.org_mirrors.tuna.tsinghua.edu.cn/openwrt_' /etc/opkg/distfeeds.confcat /etc/opkg/distfeeds.conf
#然后更新
opkg update

OpenWRT升级所有组件命令

opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade

如果OpenWRT没有发现可升级的组件,这条命令会抛出一段错误信息,不用管它,说明都已经是最新版本了。

by itgeeker.net

OpenWRT恢复原始源

sed -i 's_mirrors\.tuna\.edu\.cn_downloads.openwrt.org_' /etc/opkg/distfeeds.conf

或者也可以直接把刚才的备份文件覆盖回来更方便

cp -f /etc/opkg/distfeeds.conf.bk /etc/opkg/distfeeds.conf
分类
OpenWRT 树莓派Raspberry

树莓派3B/3B+刷OpenWRT原生img 作为旁路由让全屋免配置上机场(二)

接上部分:树莓派3B/3B+刷OpenWRT原生img 作为旁路由让全屋免配置上机场(一)

这部分是安装工具和应用部分,ITGeeker在不下于两套系统做了测试,该套方案全部可行。根据实践已完成技术奇客原创网络拓扑图设计v1:

具体如何配置以后补上,估计会涉及一些敏感词汇,所以会尽量避开具体软件的名称。

2020年4月20日 更新

by itgeeker.net

OpenWRT先更改一下国内镜像

可以参看:OpenWRT如何使用国内镜像

这对后面顺利安装组件及依赖包很重要。

添加OpenWrt-dist源

官方介绍在此: OpenWrt-dist 是专门针对OpenWRT的一个源,里面包含了很多已编译好的ipk文件,极大的方便了OpenWRT的用户。

通过此源可以方便安装诸如以下组件:

  • opkg update
  • opkg install ChinaDNS
  • opkg install luci-app-chinadns
  • opkg install dns-forwarder
  • opkg install luci-app-dns-forwarder
  • opkg install shadowsocks-libev
  • opkg install luci-app-shadowsocks
  • opkg install simple-obfs
  • opkg install ShadowVPN
  • opkg install luci-app-shadowvpn

OpenWRT获取设备架构命令:

opkg print-architecture | awk '{print $2}'

此处我们讨论的树莓派3B/3B+是同一个架构aarch64_cortex-a53,所以可以通过sed来添加对应的源:

echo "src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/base/aarch64_cortex-a53
src/gz openwrt_dist_luci http://openwrt-dist.sourceforge.net/packages/luci" >> /etc/opkg/customfeeds.conf

通过OpenWrt-dist安装代理相关组件

opkg update

opkg install ChinaDNS luci-app-chinadns dns-forwarder luci-app-dns-forwarder shadowsocks-libev luci-app-shadowsocks simple-obfs

这里技术奇客ITGeeker同时安装了simple-obfs混淆插件,不过后面如果通过luci界面配置ss时添加obfs参数后无法正常启动ss,但是可以通过修改或添加新的服务启动ss命令,绕过luci界面配置可以实现正常启动。

使用混淆是因为我的代理服务器支持obfs配置,而且工作的非常好。

by itgeeker.net
OpenWRT通过luci界面的services服务菜单配置组件出错的解决方案

OpenWRT 19.07.2在通过luci的服务菜单配置组件,会抛出一堆错误,无法打开组件配置界面的问题,类似:

Failed to execute cbi dispatcher target for entry '/admin/services/v2ray/global'.
The called action terminated with an exception:
/usr/lib/lua/luci/dispatcher.lua:938: module 'luci.cbi' not found:
	no field package.preload['luci.cbi']
	no file './luci/cbi.lua'
	no file '/usr/share/lua/luci/cbi.lua'
	no file '/usr/share/lua/luci/cbi/init.lua'
	no file '/usr/lib/lua/luci/cbi.lua'
	no file '/usr/lib/lua/luci/cbi/init.lua'
	no file './luci/cbi.so'
	no file '/usr/lib/lua/luci/cbi.so'
	no file '/usr/lib/lua/loadall.so'
	no file './luci.so'
	no file '/usr/lib/lua/luci.so'
	no file '/usr/lib/lua/loadall.so'

可以通过安装以下组件予以解决:

opkg install luci luci-base luci-compat

可选和必选组件安装

opkg install vsftpd openssh-sftp-server ipset libustream-mbedtls wget bind-dig ca-certificates iptables-mod-tproxy ip-full ca-bundle coreutils-base64 iptables-mod-nat-extra libpthread curl 

这里包含了一些必须的组件,比如wget,https支持,ipset以及curl等后面必要的组件,也有一些可选的,比如fsftpd就是使用sftp软件,比如使用filezilla连接到树莓派就可以使用该服务。

by itgeeker.net
OpenWRT启动sftp服务
/etc/init.d/vsftpd enable && /etc/init.d/vsftpd start

重要的dnsmasq-full安装

openwrt的默认dnsmasq并不支持ipset,需要安装dnsmasq-full版本。ipset是为了支持对域名的转发代理,而chinadns是对ip进行转发代理。所以如果你选择域名匹配的方式走代理,则需要安装dnsmasq-full版本。这里就有了一个问题,当卸载dnsmasq之后,无法解析域名,也就无法安装dnsmasq-full了。这里需要卸载和安装同步进行以避免此类问题。代码如下:

opkg remove dnsmasq && opkg install dnsmasq-full

至此,技术奇客已完成了相关的组件及应用的安装,接下来会发布针对各个应用/服务组件的配置指导。

by itgeeker.net

ITGeeker这介绍一下关于拓扑图的逻辑思路:

shadowsocks-libev包含 ss-local、ss-redir 和 ss-tunnel 三个组件。

by itgeeker.net
  • ss-redir 负责将 OpenWrt 的 TCP/UDP 出口流量透明地转发至ss代理服务器;
  • ss-local 是本地 SOCKS5 代理服务器,可额外地为浏览器等客户端应用提供 SOCKS5 代理服务;
  • ss-tunnel 负责转发本地 DNS 请求至 ss-server,借由 ss-server 连接指定的境外 DNS 服务器。
  • Dnsmaq-full 是 OpenWrt 的系统级 DNS 转发服务器,本方案下 Dnsmaq 接收来自局域网的 DNS 请求后直接转发给 ChinaDNS 处理;
  • ChinaDNS 利用国内 DNS 和 ss-tunnel 链接的ss-server的DNS,可解决 DNS 污染问题;
  • dns-forwared和ss-tunnel 作用类似,但似乎比后者更好用些。

OpenWRT代理配置方法:

OpenWRT SS服务配置细节 – 待更新

OpenWRT DNS-Forwarder配置

Listen Port         5353   #默认是5300

Listen Address      0.0.0.0

DNS Server          8.8.8.8

OpenWRT dnsmasq-full配置- 待更新

OpenWRT luci路由、防火墙ipset配置- 待更新

分类
OpenWRT 树莓派Raspberry

树莓派3B/3B+刷OpenWRT原生img 作为旁路由让全屋免配置上机场(一)

ITGeeker之前有发表过树莓派刷第三方编译好了的OpenWRT作旁路由的方法,具体请参看: 刷了OpenWRT的路由器+旁路由配置方法+无缝漫游配置(树莓派3B/3B+/4B使用OpenWRT系统做旁路由)

旁路由拓扑图 by itgeeker.net

但是ITGeeker发现第三方img总有各种各样的问题:

  1. 过于臃肿,安装了太多不需要的服务。
  2. 通过opkg安装想用的应用会有各种依赖问题。
  3. 有些组件不好用的时候很难更改,比如给SS添加obfs-local混淆功能就很难做到。
  4. 可能会夹带一些私货你也很难察觉。
  5. OpenWRT19.07.2原生已经支持树莓派3B/3B。Raspberry Pi 4B也在路上了,目前已有无界面的snapshot版本发布。
  6. 其他各种问题。。。。。。

OpenWRT安装部分

OpenWRT最新版本已来到19.07.2,技术奇客认为一般到大版本的第二版就会比较稳定了。

OpenWRT版本选择

有两个地方都可以下载:

  1. Table of Hardware: Firmware downloads:https://openwrt.org/toh/views/toh_fwdownload?dataflt%5BBrand*%7E%5D=raspberry
  2. Index of (root) / releases / 19.07.2 / targets:https://downloads.openwrt.org/releases/19.07.2/targets/

第一个可以根据产品品牌(brand)、型号(Model)、CPU等信息进行筛选,比较直观,而且筛选功能做的很完善。

第二个只是根据CPU的型号和架构来选择,另外在对应的产品里面(packages目录)找可以到已经编译好的ipk进行直接下载。

by itgeeker.net

树莓派3B和3B+的CPU型号:brcm2708

树莓派3B和3B+都是Broadcom的cpu,3B是BCM2837A0,3B+是BCM2837B0; Raspberry Pi 4B的cpu型号:Broadcom BCM2838. OpenWRT里对应型号是brcm2708

树莓派3B、3B+和4B的Target是brcm2708

树莓派3B和3B+的Subtarget都是bcm2710

树莓派4B的Subtarget都是bcm2711

by itgeeker.net

树莓派3B和3B+的img路径

Index of (root) / releases / 19.07.2 / targets / brcm2708 / bcm2710 /

树莓派3B和3B+的img文件选择和区别

基本上OpenWRT针对每个型号的产品都有4个文件:

  • rpi-3-ext4-factory.img.gz
  • rpi-3-ext4-sysupgrade.img.gz
  • rpi-3-squashfs-factory.img.gz
  • rpi-3-squashfs-sysupgrade.img.gz

1. 带ext4的是可以利用Linux命令把你的tf卡空余空加拿回来做其他用途,毕竟img才几十M大小而已,一般现在的tf卡都要16G起了吧;这个下次再开一篇讲解;

2. 带squashfs的相当于品牌路由器的rom,当你对自己安装的应用或配置不满意的时候,可以直接重置系统,就像回到初始状态一样;

3. 带factory的是给之前不是用OpenWRT系统的用户初始刷tf卡用的;

4. 带sysupgrade的是针对原先使用OpenWRT的用户,可以用cmd命令或者GUI界面直接升级用。

by itgeeker.net

树莓派3B和3B+刷OpenWRT

首先:直接把tf卡插入电脑,可以使用以下软件的任何一种把OpenWRT文件写入:

刷tf卡工具:
  • balenaEtcher
  • rufus
  • win32diskimager

然后:把tf卡插入树莓派,把网线插入树莓派网口并和你使用的终端连接到同一局域网就行,原生的img初始默认是不开启wifi的,所以这是必须的。

把你的终端,不管你使用pc、phone或者pad之类,需要把自己的ip地址手动设置到除了192.168.1.1之外的192.168.1.xxx

打开浏览器输入:http://192.168.1.1 进入OpenWRT登录界面,初始密码为空,点击登录就可以开始密码设置,密码设置好之后,ssh就可以用相同密码进行登录。

ssh root@192.168.1.1

这个时候还需要设置一下市区time zone,默认是utc时间,应该选择Asia/Shanghai如果你在中国, 然后点击同步时间就可以了。

下一篇开始介绍使用opkg安装常用工具及机场应用的安装及配置:

树莓派3B/3B+刷OpenWRT原生img 作为旁路由让全屋免配置上机场(二)