固件写入
对于从旧版本(<=19.xx)升级的设备, 需要先刷 Kernel 包, 再刷 Sysupgrade 包,
- 如果只刷后者, 可能会无法启动,
- 如果只刷前者, 配置无法保存, 因为启动后文件系统挂载是不正确的, 重启后就恢复初始配置了
Kernel包只需要刷入一次, 之后升级只需要刷 Sysupgrade 包. 下载固件时, 建议通过 https://firmware-selector.openwrt.org/ 这个界面搜索型号下载, 因为这里会同时提供Kernel和Upgrade的固件, 比较方便.
设备运行
MT7621
测试了 NeWiFi D1, D2, 迅雷 Timecloud, 运行正常无压力.
MT7620
MT7620方案测试了极路由的极贰, 初始固件下运行速度正常, 但是安装 block mount 之后, 通过ping上游观察到的延迟增长很大, 经常会达到数百毫秒
安装配置 Wireguard
安装
# Install packages
opkg update
# 21.02 or above
opkg install wireguard-tools
配置wg(客户端)
这个场景适用于已经配置了带外网IP的WG节点, 在OpenWrt的LAN内配置WG节点连接到外网的WG节点.
在 /etc/config/network 下添加配置
config interface 'wg0'
option proto 'wireguard'
option private_key 'ECh===========私=============钥='
option listen_port '50055'
list addresses '10.233.0.17/32'
config wireguard_wg0 'wgserver'
option public_key '=====外网WG=======公=======钥='
option endpoint_host '123.234.120.115'
option endpoint_port '50055'
option persistent_keepalive '25'
option route_allowed_ips '1'
list allowed_ips '10.233.0.0/24'
list allowed_ips '192.168.255.0/24'
以上的修改也可以通过uci命令完成
# Configure network
uci -q delete network.wg0
uci set network.wg0="interface"
uci set network.wg0.proto="wireguard"
uci set network.wg0.private_key="${WG_KEY}"
uci set network.wg0.listen_port="${WG_PORT}"
uci add_list network.wg0.addresses="${WG_ADDR}"
uci add_list network.wg0.addresses="${WG_ADDR6}"
# Add VPN peers
uci -q delete network.wgclient
uci set network.wgclient="wireguard_wg0"
uci set network.wgclient.public_key="${WG_PUB}"
uci set network.wgclient.preshared_key="${WG_PSK}"
uci add_list network.wgclient.allowed_ips="${WG_ADDR%.*}.2/32"
uci add_list network.wgclient.allowed_ips="${WG_ADDR6%:*}:2/128"
uci commit network
然后重启network
/etc/init.d/network restart
# 查看wireguard状态
wg show
将wg0添加到LAN zone, 如果不添加, 那么wg0就不能与br-lan的机器forward, br-lan的其他机器无法通过这个wg0去连接隧道其他端的机器
编辑 /etc/config/firewall, 在 config zone 下添加一行 list network 'wg0'
config zone
option name lan
list network 'lan'
list network 'wg0' <----- 添加这行
option input ACCEPT
option output ACCEPT
option forward ACCEPT
然后重启firewall
/etc/init.d/firewall restart
问题解决
错误 /etc/config/luci seems to be corrupt, unable to find section 'main'
当连接数较大时, 如果去实时统计里查看连接, 会出现上面的错误, 导致luci页面完全失效. 这时候重启 rpcd 可以恢复
/etc/init.d/rpcd restart
PPPOE 拨号容易掉线问题
PPPOE拨号时, OpenWrt 默认会将 MTU 设置为 1492, 这个配置对于宽带服务商设备的设置而言可能还是太大, 在访问量较大(例如观看视频时), 容易被上游设备封锁, 导致掉线. 建议通过ping测试实际的 MTU.
先通过tracert得到路由器的直接上级设备的IP, 下面的202.38.64.1是中科大的ns, 这个随便换成一个别的公网IP都行, 注意执行测试的电脑要直接连到这个路由器上
C:Usersmilton>tracert -d 202.38.64.1
Tracing route to 202.38.64.1 over a maximum of 30 hops
1 2 ms 1 ms 1 ms 192.168.6.1
2 33 ms 5 ms 4 ms 42.12.64.1
3 5 ms 5 ms 4 ms 218.221.245.21
PING 测试
关于 DF(Don't Fragment)标志
用来确定到达目的地的路径中最大传输单元 MTU 的大小, 通过在IP报头中设置不分片DF(Don't Fragment)标志来探测路径中的MTU值, 如果路径中设备的 MTU 值小于此报文长度, 并且发现DF标志, 就会发回一个Internet控制消息协议(ICMP)(类型3、代码4需要分片的消息ICMP_FRAG_NEEDED), 消息中包含它可接受的MTU值.
因为路由器IP是192.168.6.1, 其上级IP就是42.12.64.1, 需要对其检测 MTU , 首先确认路由器上没有做MTU限制(或者设置成1500)避免影响, 然后执行ping命令
# windows
ping -f -l 1436 42.12.64.1
# linux
ping -M do -s 1436 42.12.64.1
找到能得到正常的ping回显且不出现 DF fragmented 提示的最大的size, 在其基础上加28, 设置到 PPPOE 的 Advanced 选项中.
参考
- https://github.com/openwrt/luci/issues/4758
- https://github.com/openwrt/luci/issues/2231
- https://openwrt.org/docs/guide-user/services/vpn/wireguard/client
- https://openwrt.org/docs/guide-user/services/vpn/wireguard/server
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!