Lean OpenWrt 编译使用小记

Lean OpenWrt 是 Lean 大佬修改的 OpenWrt 开源版本,和 KoolLede 是国内两个比较有名的分支。Lean OpenWrt 不提供预编译文件,所以想使用的话需要自己编译一遍。 编译需要使用 Ubuntu 系统,不要使用 WSL 会出问题。 编译没什么好说的,README 里面写的很详细一步步来就行了,推荐使用这个脚本白嫖下 Github 的服务器来云编译。 编译选项 如果没什么特别要求,保持默认就行,但来刷 Lean 的基本上都有一些奇奇怪怪的需求😁 这里有插件清单,包括 xls 格式的:https://www.right.com.cn/forum/thread-344825-1-1.html 酸乳饮料 Lean 内置的酸乳饮料插件很好用,而且没发布到官方源,也是很多同学来的目的。可惜现在默认给取消了,找回来分三步: 取消 feeds 注释。修改一下 feeds.conf.default 文件,去掉最后一行 helloword 的注释。重新执行 ./script/feeds update -a && ./script/feeds install -a. 如果是云编译,修改一下 diy-part1.sh 取消带 helloword 那一行的注释。 make menuconfig 生成配置文件的时候,在 LuCI - Applications 里选中 luci-app-***-plus. 系统安装完毕后如果找不到菜单,那命令行执行一下 0xDEADBEEF > /etc/config/google_fu_mode 就可以了。 IPv6 Lean OpenWrt 默认不支持 IPv6,启用的话在 Extra packages 里选中 ipv6helper 就好啦,所需的依赖会自动勾选。...

August 12, 2020 · Chenhe

LEDE 配置 IPv6 以及公网访问

偶然发现江苏电信宽带已经分配了 IPv6 pd 前缀,一不做二不休搞一下。 基础概念 IPv6 与 v4 不同。v4 时代运营商一般只给用户分配1个公网 ip,然后用户自己的路由器通过 NAT 再给局域网设备分配内网 IP,也就是 192.168.x.x 这种。这种情况下内网设备没有独立的公网 IP,要想从公网访问必须配置路由器端口转发。 随着 v4 资源枯竭,现在运营商默认已经不再分配公网 IP 了。要想正常从外网访问,必须做内网穿透。 IPv6 有无数个地址可供分配,“可以给地球上的每一粒沙子都分配一个 IP 地址”。因此运营商分配的策略也会变化。v4 分配的是一个地址,而 v6 分配的是一个前缀,也就是所谓的 pd,相当于是一整个网段,我们可以自己继续往下分配,从而使得每一个局域网设备都能获得公网 IP 地址。 这里采用的方案是光猫桥接,LEDE 路由拨号。 如果无法访问光猫 很多人用 LEDE 连接后可以上网但是打不开光猫的管理页面。 要求:知道光猫的 IP 且不与 LEDE 在同一网段。 假设光猫接到了路由器的 eth0 口,光猫 IP 是192.168.1.1,进入 LEDE 终端执行下面指令: #eth0是接光猫的网口名称,192.168.1.2随便写(是分配给LEDE WAN的IP),不冲突且位于光猫网段就行。 ifconfig eth0 192.168.1.2 netmask 255.255.255.0 #下面两个是添加防火墙规则允许访问光猫 #192.168.1.1为光猫自身IP iptables -I forwarding_rule -d 192.168.1.1 -j ACCEPT #192.168.1.1为光猫自身IP iptables -t nat -I postrouting_rule -d 192....

October 14, 2019 · Chenhe

OpenWrt/LEDE 搭建 Syncthing p2p 私有文件同步服务

简介 因为最近团队有文件同步的需要,常见的公有云服务要么就是不靠谱要么是速度慢,要么就是太贵:expressionless: 饱受好评的坚果云则是限制流量而且据说有隐性限制。 家里上传有 30M 带宽,足够满足常规的文件同步了。常见的私有云系统有 NextCloud/Syncthing/Resilio(BTSync)。NextCloud 更像是一个私人网盘,属于c/s模式,对中心服务器稳定性要求极高,家里路由器感觉无法担此重任。BTSync 是一个基于 BT 的同步软件,近年来大陆的 BT 情况并不好所以也暂不考虑。最终采用 Syncthing。Syncthing 是一个开源免费的文件同步系统,有多平台支持(官方不支持IOS,有一个第三方的收费客户端)。 Syncthing 是分布式的,不依赖中心服务器,如果节点有公网 IP 那么会走直连同步,否则走中继。Syncthing 有不少免费开放的公共中继节点可惜都不在大陆,速度比较慢。如果非常介意可以搭建一个私有中继服务。 先看看成品图: 安装 需要强调:Syncthing 是不分服务器/客户端的。本文仅把路由器节点作为逻辑上的「服务器」以便保证任何时候都有具有公网 IP 的节点在线以便加速传输。 在 release 页面可以看到各个平台编译好的安装包。由于我使用的是 J1900 软路由,所以选择 linux-64 版本。 # 进入用于保存程序的目录 cd /mnt/sda5/ # 下载程序 wget https://github.com/syncthing/syncthing/releases/download/v1.3.0/syncthing-linux-amd64-v1.3.0.tar.gz # 解压 tar -zxvf syncthing-linux-amd64-v1.3.0.tar.gz # 为了方便整洁改个名字 mv syncthing-linux-amd64-v1.3.0 syncthing # 给予执行权限 chmod +x syncthing/syncthing 其实到此为止我们直接执行 syncthing 就能开启服务了。它默认会在 \$HOME/.config/syncthing 创建配置文件。不过我们干脆一次性配置完再运行也不迟。 # 创建一个软链接,就可以在任何目录下执行了 ln -s /mnt/sda5/syncthing/syncthing /usr/bin/syncthing 开机自启...

October 12, 2019 · Chenhe

华硕路由器 ARP 绑定

何为 ARP 绑定 真想不到被吹爆的华硕路由器居然连 ARP 绑定功能都没有。这里要区别一下,在客户端列表中开启 MAC地址与IP绑定 其实仅仅是 DHCP 绑定,它可以保证每次给相同设备总是分配同一个 IP 地址,但前提是设备必须请求IP! 我们知道路由器内部会维护一个 ARP 表,记录 IP 与 MAC 的关系,每当设备请求 IP 时便会被记录,其超时时间因具体设置而不同。因此当设备长时间不在线(比如关机)时吗,ARP 记录就会失效,从而无法再通过 IP 给此设备发送数据。 有一个典型需求:PC 配置 WOL 网络唤醒,然后路由器设置端口转发,这样就可以在外面远程开机了。因此我们要进行 ARP 绑定,与 DHCP 绑定不同,ARP 绑定相当于把 IP 对应关系写死在表里,无论设备是否在线。 方案 ssh 或 telnet 登录路由器,执行 arp -s [IP] [MAC] 就搞定了。 但是这样每次重启都会失效,我们需要通过自启脚本来手动添加 ARP 项,因此官方固件是不行的,先刷梅林。 cd /jffs/scripts/ # 进入脚本目录 vi services-start # 打开编辑器(你也可以用其他编辑器) 将文件内容改为: #!/bin/sh arp -s [IP] [MAC] exit 0 保存,最后给予执行权限: chmod a+rx /jffs/scripts/* OK! 执行 arp 查看 ARP 表,对应项目如果标识有 [PERM] 就是已经绑定了。

September 28, 2019 · Chenhe

一步步把路由器变成NAS—离线下载+文件共享 AND MORE

家里升级了电信200M宽带,上行也提高到了20M,原来的百兆路由器已经不能满足需要了,经过一番比较最终入手了华硕AC86U。不过那么快的网速加上辣么棒的路由器,不做点别的实在太可惜了。折腾了一会后,成功实现媒体服务器、离线下载、远程管理、文件共享等诸多功能,着实提高了生活质量。 软硬件准备 路由器 路由器:华硕AC86U 固件:梅林 其他设备例如部分网件路由器也可以刷梅林固件,不行的话只好找其他固件或插件实现。本文提供的是一个思路,不同设备固件有不同的实现方法。 外接存储设备 我选择了一块闲置东芝USB3.0移动硬盘,直接插到路由器USB口即可。格式推荐用NTFS,路由器和windows都可以识别。 因为USB3.0与2.4G WIFI 有干扰,路由器默认限制了USB性能以减低干扰。不过家里大多数常用设备都使用5G频率,故这里关闭此功能。这个设置位于无线网络—专业设置—2.4G频段下。 媒体服务器 顾名思义,媒体服务器专门提供媒体资源,与FTP等文件传输协议不同,媒体服务器不需要预先下载到本地,可以在终端设备在线观看视频,并支持拖拽快进等操作。需要强调的是,媒体服务是协议级别的,因此它并不需要特别的设备、特别的系统或指定某公司的APP,简而言之就是任意一个设备接入局域网后都可以实现流媒体播放。如此一来路由器可以作为全家的媒体库,其中储存的电影可以在电脑、手机、平板、电视等设备随时播放。 梅林固件开启媒体服务非常简单,在USB相关应用—媒体服务器下可以轻松开启。 默认情况下会共享存储设备里所有媒体,如果不想这样可以选择手动设定媒体服务器路径,然后在下方添加想要共享的目录以及文件类型即可。 PS:媒体服务器中文件目录并不是按照实际路径显示的,而是根据类型自动分类。因此看到的文件位置不代表其真实路径。 PC端观看 以 WIN10 系统为例。打开网络,即可在媒体设备分组中找到我们的媒体服务器。右击选择打开媒体播放机即可浏览媒体库并在线播放。 桌面没有「网络」? 在桌面右击,选择「个性化」,在打开的设置页面左侧选择「主题」,在右侧点击「桌面图标设置」,勾选「网络」即可。 在 WIN7 等系统中,「网络」也叫「网上邻居」。 手机、平板观看 以 Android 系统为例。其实手机端大多数播放器都支持播放流媒体,但不是所有都支持扫描发现局域网中的媒体服务器。所以首先需要安装可以扫描发现媒体的应用,「VLC」以及「ES文件浏览器」等是具有此功能的。这里以 VLC 为例。 VLC 是著名的开源、跨平台的媒体播放软件。支持 Windows、Linux、Mac、Android、IOS 主流系统。 进入 LVC 点击左上角菜单按钮,选择本地网络,即可扫描到我们的媒体服务器,点进去选择文件就可以播放了。 电视观看 首先得确定电视是智能设备,或者有小米盒子之类智能机顶盒也行。这里以小米盒子为例。 小米盒子内置应用「高清播放器」自带局域网发现功能。打开高清播放器,在主页就可以看到路由器的视频已经扫描到并聚合在一起了,点击即可播放。如果想单独浏览,可以切换到设备选项卡,在DLNA设备中可以看到我们的媒体服务器。 PS:在设备选项卡,可能会看到一个名称类似的网络共享设备,点进去也可以浏览文件并播放,这是后面要讲的文件共享。他和媒体服务器功能有一定重叠。 离线下载 离线(远程)下载与媒体服务器(文件共享)简直是绝配。试想:在外面提交一个电影下载任务,回到家正好下载完,此时随便一个设备接入WIFI就可以开始欣赏,甚至可以中途切换设备。生活岂不美滋滋 (′▽`〃) 华硕固件自带一个离线下载器,位于USB相关应用 — Download Master,不过感觉并不是很好用,只能支持传统的下载链接。而国内情况是好多资源在百度云、115等网盘。所以这里使用「Aria2」实现。 Aria2 是一个跨平台轻量级下载工具。支持 HTTP(s)、FTP、SFTP、BT、Metalink 多种协议。其本身是纯命令行控制的,但是可以通过 RPC 协议实现可视化远程控制。亦可以通过 RPC 接入百度云等网盘。 听不懂这些?没关系,只要知道它很好用就OK了。 幸运的是,梅林固件软件中心有 Aria2 插件,大幅简化了安装配置。 Aria2 服务器配置 从软件中心安装 Aria2,点进去开始配置。开启后,大多数保持默认即可。下载存储目录是默认的文件保存目录,默认是第一个USB设备的根目录,如果没有USB设备则默认是路由器内存(小的可怜)。磁盘缓存大小指的是下载的数据缓存多少时再一次性写入存储设备,可以减少硬盘读写次数,一定程度延长硬盘寿命。默认是0,不要改得太大,否则内存也不够用。...

April 22, 2018 · Chenhe