OpenWrt 配置指南
OpenWrt 配置指南
不得不说,中文网络上关于 OpenWrt 配置的文章是相当的乱,基本上都是零零散散的教程,还有很多都是抄来抄去的几篇同样的文章。 自从购入了 R2S 以后,就对 OpenWrt 爱不释手,虽然 OpenWrt 想正常使用非常简单,并不需要复杂的设置,但是看着这么多的功能,不使用也太浪费了。 于是便有了本文,本文的目的是对 OpenWrt 的功能做一个概括,包括常用的和不常用的功能介绍以及相关设置。同时,也是帮助自己重温一下学过的网络知识。 这是一个边发现,边学习,边完善的过程。
基本环节
下载
官方下载地址是:https://openwrt.org/ ,除此之外还有很多基于原版定制的系统,比如 iStoreOS。
安装
安装也很简单,可以使用 Rufus 直接安装到移动盘,或者安装到本地。
系统的配置
软件包
配置源(OPKG)
根据硬件版本不同,源的设置不同,这里的配置是根据 NanoPi R2S 来做的,主要替换的内容有:
- 源地址,将国外的地址替换为国内的,国内的主要的几个源地址有:
- 在
opkg.conf
中添加arch*
代码可以解决类似于Package xxx has no valid architecture
这样的错误。 - 屏蔽了 Signature 检查。
- 添加国内源
op.supes.top
到customfeeds.conf
,这个源包括了一些官方源没有的软件,比如科的学上网的软件。
这里贴上相关代码,需要根据不同型号的软路由替换。
/etc/opkg.conf
/etc/opkg/customfeeds.conf
/etc/opkg/distfeeds.conf
一键更新 OpenWrt 脚本(风险很大)
两种方式,第一种简单粗暴一句话:
第二种直接下载已经写好的脚本,功能稍微多一点,这里在原版基础上添加了 --force-overwrite
,可以强制刷新已经下载好的依赖。
当然你也可以直接用 wget 在 github 上下载。
服务的配置
UPnP
UPnP(通用即插即用)是用来自动配置设备端口映射和设备间通信的协议,其设计的初衷是为了消除网络应用程序中对端口映射的需求。
启动 UPnP 与 NAT-PMP 服务
就是开启 UPnP,所以我们开启就好了,其中 NAT-PMP(Network Address Translation Port Mapping Protocol)和 UPnP 类似,可以自动配置 NAT 设备上的端口映射规则,以允许外部网络访问内部网络中的设备和服务。但是是苹果公司开发的协议,比 UPnP 更简单,也更安全,但是支持的设备相对也更少。
启用 IGDv1 模式
IGD(Internet Gateway Device)是一种通用的网关设备类型,它是 UPnP 协议的一部分,用于在家庭或小型办公室网络中实现网络地址转换(NAT)和端口映射。IGDv1 是 UPnP 协议的第一个版本中的 IGD 规范,IGDv2 是 UPnP 协议的第二个版本中的 IGD 规范。IGDv2 增加了 IPv6 的支持,也增加了 SCTP 和 DCCP 协议的支持,有更好的扩展性和安全性,所有没有特殊的需求,可以关闭 IGDv1 模式。
SmartDNS
这里附上我的配置文件,将文件下载后放在 /etc/config/smartdns
就好了。
这个 SmartDNS 设置结合了 SSRP 使用,开设了第二服务器端口 5353,所以直接复制进去可能会无法生效,可以酌情关闭相关功能。
一些技巧
出门远程访问 OpenWrt
远程访问,要么需要公网 IP 结合 DDNS,要么需要用 frp 插件做内网穿透,这里再提供一个方便的网站 DDNS.to,不需要穿透,并且访问的时候需要验证,可以规避全网扫描机器人对你的网站暴力破解,当然缺点是要花点钱。
回到初始状态
我们经常会因为各种原因导致固件配置损坏,这时候只需要在 SSH 中输入 firstboot
,就可以回到固件初始状态,一般推荐 squashfs 格式的固件使用。
访问上级光猫
如果软路由做主路由,这时候直接访问光猫地址是不通的,需要做静态路由。
- 在
网络 - 接口
中添加一个接口,名称可以随便写,一般填写Model
,协议
填写静态地址
,设备选择和光猫连接的那根线的接口,一般是WAN
口;IPv4
写一个光猫段的地址,比如光猫是192.168.1.1
那么这里可以填192.168.1.2
;子网掩码(IPv4 广播地址)填写255.255.255.0
,其他的不用改,然后确认。 - 到
网络 - 静态路由
设置里,添加一个静态 IPv4 路由
,接口
选择刚刚添加的那个口Model
,目标写光猫地址比如192.168.1.1
,子网掩码填写255.255.255.255
,网关写上面添加的接口也就是192.168.1.2
,然后确认。 - 这时候
192.168.1.1
就可以正常访问网关了。
SD卡分区扩容
有时候我们的软路由是使用 SD 卡作为存储,系统写入后难免会有分区不足的情况,此时我们就需要对 SD 卡扩容。这里的扩容一般分为两种,第一种是对 ext4 的固件进行扩容,还有一种就是 squashfs 格式的扩容,ext4 比较好操作,直接将分区扩大就行,squashfs 有一点区别,由于是固化的大小,只能通过增加一个分区,并将 /overlay
分区挂载到新建立的分区才行。