Mobile wallpaper 1
1120 字
6 分钟
OpenWrt

1.Openwrt及其相关安装#

  1. Proxmox 安装 OpenWrt及扩容步骤

    1. 安装磁盘

      qm importdisk 101 /path/op.img local --format qcow2
      # 101为虚拟机编号
      # 使用qcow2可以不实际占用
    2. 使用虚拟光驱装入GParted

    3. 进入GParted命令行模式

    4. 依次输入命令

      parted /dev/sda #选择磁盘sda
      print #打印信息
      resizepart 2 4G #调整分区2
      print #打印信息
    5. 注意:GParted扩容只有squashfs有效

    6. 以上方法淘汰了,现在进入图形化界面:

      • 启动到 GParted 的图形界面后,它会自动检测到你的硬盘(如 /dev/sda
      • 你会看到 /dev/sda2 分区后面有一块“未分配”的空间(如果文件系统还没扩容的话),或者 GParted 会显示分区很大但文件系统很小(并标记一个警告)
      • 右键点击 /dev/sda2 分区
      • 选择 “检查” (Check)。GParted 会先运行 e2fsck 检查文件系统
      • 检查通过后,再次右键点击 /dev/sda2,选择 “调整大小/移动” (Resize/Move)
      • 在弹出的窗口中,将滑块拖到最右边,填满所有空间
      • 点击“调整大小”按钮
      • 点击主工具栏上的绿色“对勾” (Apply All Operations) 按钮。GParted 会自动离线完成 resize2fs 操作。
  2. Openwrt扩容分区

    1. cfdisk建立extend分区
    2. lsblk查看分区
    3. mkfs.ext4 /dev/sda3 格式化分区
    4. mount /dev/sda3 /mnt/sda3 挂载分区
    5. 重启后去web挂载分区,每挂载一个重启一次
  3. PVE虚拟机挂载硬盘

    1. ls /dev/disk/by-id/列出硬盘
    2. qm set 101 --sata1 /dev/disk/by-id/ata-HITACHI_HTS545050B9A300_110109PBN403171EPU9E 挂载硬盘
  4. 部分Docker容器创建命令

    1. AdguardHome

      docker run --name adg\
      --restart unless-stopped\
      -v /root/config/adg/work:/opt/adguardhome/work\
      -v /root/config/adg/conf:/opt/adguardhome/conf\
      --network host\
      -d adguard/adguardhome
    2. Emby

      docker run \
      #开放端口
      #http
      -p '8096:8096' \
      #https
      -p '8920:8920' \
      #local network discovery
      -p '7359:7359/udp' \
      #映射配置目录
      -v /mnt/user/ssd/config/emby:/config \
      #映射影视资源目录
      -v /mnt/user/o1hdd/emby:/media \
      #设置时区
      -e TZ="Asia/Shanghai" \
      #映射硬解驱动
      --device /dev/dri:/dev/dri \
      #设置权限
      -e UID=0 \
      -e GID=0 \
      -e GIDLIST=0 \
      --restart always \
      #docker名字
      --name emby \
      #docker源版本
      -d lovechen/embyserver
    3. 青龙

      docker run -dit \
      -v /root/config/ql:/ql/data \
      -p 5700:5700 \
      --name qinglong \
      --hostname qinglong \
      --restart unless-stopped \
      whyour/qinglong:latest
    4. LibreSpeed

      docker run -e MODE=standalone -e TITLE='喵喵卡の测速站' -p 5501:80 -d --name speed ghcr.io/librespeed/speedtest
    5. wallabag

      docker run --name mariadb -p 6603:3306 -e "MYSQL_ROOT_PASSWORD=Richly7092-*" -d mariadb
      docker run --name wallabag --link mariadb:mariadb -e "MYSQL_ROOT_PASSWORD=Richly7092-*" -e "SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql" -e "SYMFONY__ENV__DATABASE_HOST=mariadb" -e "SYMFONY__ENV__DATABASE_PORT=3306" -e "SYMFONY__ENV__DATABASE_NAME=wallabag" -e "SYMFONY__ENV__DATABASE_USER=wallabag" -e "SYMFONY__ENV__DATABASE_PASSWORD=wallapass" -e "SYMFONY__ENV__DATABASE_CHARSET=utf8mb4" -e "SYMFONY__ENV__DOMAIN_NAME=http://wall.lan" -p 5502:80 wallabag/wallabag
      #SQLite版本
      docker run --name wallabag -p 5502:80 -e "SYMFONY__ENV__DOMAIN_NAME=http://wall.abag" wallabag/wallabag
      docker run --name wallabag -v /root/config/wallabag/data:/var/www/wallabag/data -v /root/config/wallabag/images:/var/www/wallabag/web/assets/images -p 5502:80 -e "SYMFONY__ENV__DOMAIN_NAME=http://wall.abag" wallabag/wallabag
    6. Komag

      docker create \
      --name=komga \
      --user 1000:1000 \
      -p 5504:25600 \
      --mount type=bind,source=/root/config/komga,target=/config \
      --mount type=bind,source=/extend/hdd/media/comic,target=/data \
      --restart unless-stopped \
      gotson/komga

2. OpenWrt相关配置#

  1. samba4如需使用root用户需把invalid users = root注释掉

  2. 修改OpenWrt默认配置有以下几种方法,以nginx为例

    • 使用uci

    • 修改默认配置文件,位于/etc/config

    • 修改初始化配置文件,位于/etc/init.d

    • 添加自定义配置,位于/etc/nginx/conf.d

      #自定义配置示例
      server {
      listen 80;
      listen [::]:80;
      server_name adg.op;
      location / {
      proxy_pass http://localhost:3000/; #adg3000
      }
      }
    • 修改完后需刷新配置

      service nginx reload
    • 参见:OpenWrt Wiki

  3. Emby插件路径

    /config/plugins
    /system/plugins
    #我也不知道是哪个,两个都传一份吧
  4. 必备软件安装

    # 安装docker
    opkg install dockerd docker docker-compose luci-app-dockerman luci-i18n-dockerman-zh-cn
    # 安装主题
    opkg install luci-app-argon-config
    # 安装SFTP服务器
    opkg install openssh-sftp-server
  5. OpenWrt替换httpdnginx

    1. 停止并禁用 uhttpd

      /etc/init.d/uhttpd stop
      /etc/init.d/uhttpd disable
      # 完全删除uhttpd
      opkg remove uhttpd
    2. 安装 Nginx

      opkg install nginx
      opkg install luci-nginx

    此时luci已经由Nginx管理,但http访问会默认跳转到https,如果想用http访问还需额外配置

  6. 配置http访问

    # 先删除https跳转
    uci delete nginx._redirect2ssl
    uci commit nginx
    uci add nginx server
    uci set nginx.@server[-1].listen='80'
    uci add_list nginx.@server[-1].listen='[::]:80'
    uci set nginx.@server[-1].server_name='_lan_http'
    uci add_list nginx.@server[-1].include='restrict_locally'
    uci add_list nginx.@server[-1].include='conf.d/*.locations'
    uci set nginx.@server[-1].uci_enable='true'
    uci commit nginx
    # 重启Nginx
    /etc/init.d/nginx restart
    # service nginx reload 只会重载配置,修改uci后必须重启,否则可能不生效
  7. Dnsmasq解析lan域名

    # 在 /etc/dnsmasq.conf 添加如下内容
    # 特定域名优先匹配
    address=/a.lan/192.168.1.10
    address=/b.lan/192.168.1.20
    # 其他所有 *.lan 走第三个地址
    address=/.lan/192.168.1.30

    dnsmasq 会按 最具体 → 最模糊 的顺序匹配:

    • a.lan 匹配 /a.lan/...
    • b.lan 匹配 /b.lan/...
    • xxx.lanabc.lananything.lan 匹配 /.lan/...
  8. 常用DNS服务

    # 无加密dns
    119.29.29.29
    223.5.5.5
    114.114.114.114
    # 国内dns
    tls://dns.alidns.com
    tls://dot.pub
    https://dns.alidns.com/dns-query
    https://doh.pub/dns-query
    # 国际dns
    # ADGuard
    tls://94.140.14.14
    # Cisco OpenDNS
    tls://208.67.222.222
    # DNS.SB
    tls://186.222.222.222
    tls://1.1.1.1
    tls://8.8.8.8
    tls://9.9.9.9

3. 疑难杂症#

  1. luci-app-nikki首次启动时需要下载GeoIP和Geosite等文件,如果配置文件中使用的是GitHub等托管的文件,就会因为无法下载而无法启动,可以把相关文件手动放到/etc/nikki/run文件夹

  2. Tailscale的MagicDNS功能会修改/etc/resolv.conf,如果导致dns异常可以关闭MagicDNS功能并手动修改/etc/resolv.conf

OpenWrt
https://blog.2022918.best/posts/openwrt/
作者
shirok0
发布于
2025-11-29
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时