opkg 问题

  1. 卡顿问题

    因为默认优先使用ipv6,dns解析慢,关掉ipv6的dns解析就快多了。

  2. 源错误

    自动配置的源地址可能是错误的,自己找正确的。

使用nginx

opwrt默认使用uhttpd运行web站点服务,功能少,性能低,可替换成nginx。

直接安装 luci-nginx 就行了,会自动配置好登录站点。

注意默认主配置文件为: /etc/nginx/uci.conf

并且主配置文件每次启动都会从此文件重新生成: /etc/config/nginx

建议是在 /etc/nginx/conf.d 下面增加自己的 server 配置,uci.conf 之外的其他文件不会重新生成。

防火墙

opwrt的防火墙配置文件在: /etc/config/firewall

此配置文件对应网页配置的防火墙选项,firewall规则不够灵活,有时可能需要使用 iptables 命令规则。

比如网页的通信规则都是转发,设置入站规则需要自行定义:

1
2
3
# iptables 每条命令只能单独定义 tcp或者udp规则
iptables -A INPUT -p tcp --dport 8010 -j ACCEPT
iptables -A INPUT -p udp --dport 8010 -j ACCEPT

网页自定义iptables命令对应配置在: /etc/firewall.user

卸载 dropbear 并安装 openssh

dropbear 是轻量级的 openssh,多部署在嵌入式小型设备上。

但是它使用自己的秘钥交换算法,无法与 openssh 互用,不支持主流的 DSA 等算法。

卸载替换成 openssh 的方法如下:

  1. 更改 dropbear 的端口为 223,然后重启 dropbear。
1
2
3
uci set dropbear.@dropbear[0].Port=223
uci commit dropbear
/etc/init.d/dropbear restart
  1. 再使用 223 端口重新登录 openwrt。
1
ssh -p 223 root@192.168.5.1
  1. 安装 openssh 的服务端和客户端。
1
2
3
4
opkg update
opkg install openssh-server
opkg install openssh-client
opkg install openssh-sftp-server # 对 sshfs 支持, 可不装
  1. 修改 openssh 的配置。
1
2
3
4
5
6
# 修改配置文件
vim /etc/ssh/sshd_config
# 将以下内容进行修改
PermitRootLogin yes # 开启 root 用户直接登录
PasswordAuthentication yes # 开启密码登录
GatewayPorts yes # 开启端口访问
  1. 自启或重启 openssh。
1
2
3
/etc/init.d/sshd enable
/etc/init.d/sshd start
/etc/init.d/sshd restart
  1. 退出终端,再使用 22 端口重新登录 openwrt。
1
ssh root@192.168.5.1
  1. 卸载 dropbear。
1
2
3
/etc/init.d/dropbear disable
/etc/init.d/dropbear stop
opkg remove dropbear