匆匆那年

未完待续.

本文基于 ROS 7.18.2、ImmortalWrt 24.10.1、keepalived 2.3.1-r1 编写

简单的记录一下 RouterOS 和 OpenWrt 上的 VRRP 设置

RouterOS 设置

VRRP 接口设置

左侧 Interfaces → VRRP,新建一个接口
接口设置

  • interface: bridge1 # 选择桥接接口名称,或网口名称
  • VRID: 51 # 填写一个数字,一会需要和 OpenWrt 上的保持一致,这里填写了 51
  • Priority: 100 # 权重,这里使用了默认

其余设置保持默认即可:

  • Authentication: 认证方式
  • Password: 密码
  • Preenption Mode:是否允许从低优先级设备中接管虚拟 IP
  • version: 如果这里使用了默认的版本3,在 OpenWrt 中需要保持一致

VRRP 地址设置

左侧 IP → Addresses,新建一个 IP 地址(下图 IP 显示红色是因为当前虚拟 IP 被 OpenWrt 接管)
IP 设置

  • Address:192.168.1.2/24 # 填入你想要使用的 IP
  • Network:192.168.1.0 # Address 填入掩码时会自动计算,不用管
  • Interface: vvrp1 # 选择刚刚新建的 VRRP 接口,因为刚刚没有修改,默认名称为 vvrp1

防火墙设置

如果虚拟 IP 可以 ping 通没有网络(如 nslookup 192.168.1.2 时无法响应、设置为网关时无法上网)
检查防火墙中是否设置了拒绝流量,如这里的 defconf: drop all not from LAN
防火墙设置

如果存在类似的规则,在其上方新增一条 input 规则,允许 vvrp1 接口的流量通过

OpenWrt 设置

安装 keepalived

  1. 命令行 opkg update 或者在软件包中更新列表后,安装 keepalived,这里不推荐安装 luci-app-keepalived,其实用配置文件更方便( 最主要的是查找教程方便
  2. 大部分的 OpenWrt 不会专门为了 VRRP 功能修改内核参数,使用前需要修改 /etc/sysctl.conf 文件,添加如下设置并重启,否则无法绑定虚拟 IP
1
2
3
4
5
6
7
8
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.ip_forward = 1
net.ipv4.ip_nonlocal_bind = 1
  1. 重启后修改 /etc/config/keepalived 文件为以下内容,作用为忽略 /etc/config/keepalived 文件内容,使用 keepalived.conf,因为使用标准的 .conf 文件更方便查找教程:
1
2
config globals 'globals'
option alt_config_file "/etc/keepalived/keepalived.conf"
  1. 修改 /etc/keepalived/keepalived.conf 文件,这是一份最简化并可用的配置内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
! Configuration File for keepalived

global_defs {
router_id VRRP_OPENWRT # 自定义标识(随便写)
}

vrrp_instance VI_1 {
state MASTER # 初始状态为 MASTER(VRRPv3 中实际由优先级决定)
interface br-lan # 监听的物理接口(OpenWrt 中通常为 br-lan)
virtual_router_id 51 # VRRP 组 ID(1-255,需与对端一致)
priority 150 # 优先级(0-254,值越大越优先)
advert_int 1 # 通告间隔(秒)
version 3 # 因为刚刚 RouterOS 的设置使用了默认值,这里需要注明 VRRPv3 协议
#authentication { # 因为我使用了无认证,所以这一段不需要,已注释
# auth_type PASS # 认证类型
# auth_pass 123456 # 密码
#}
virtual_ipaddress { # 虚拟IP配置
192.168.1.2/24
}
}
  1. 在系统 → 启动项 中重启 keepalived,或者使用命令 /etc/init.d/keepalived restart

现在可以观察 VRRP 的运行情况了,停止 keepalived 进程或重启 OpenWrt,观察虚拟 IP 是否成功飘动,如果未成功运行,尝试 logread | grep -i keepalived 查看日志输出

本文基于 ROS 7.18.2 编写

前言

因为最近忽悠了个同事玩NAS,暂时用的我的域名,给他整完反代之后,看着 cloudflare 一大串的域名记录,看着很蛋疼,索性把没必要更新的地址全都换成了 CNAME 记录,看起来清爽多了
然后还是感觉原本的脚本不太好用,就重新写了一个脚本自用
和网上流传的脚本,主要有以下改进:

  • ✅ 支持多个域名和记录类型(A / AAAA)同时更新
  • 🔐 使用 Cloudflare API Token,设置更简单
  • ➕ 自动新建域名记录,无需手动创建
  • 🧠 使用缓存机制,避免高频 API 请求,支持强制更新时间间隔
  • 📤 支持提交本机或内网设备的 IPv6 地址(如 ::1、手动后缀拼接、MAC 地址获取)
  • 📡 使用 Cloudflare DNS API 读取域名记录,而非 DNS 解析

其实本来应该加上可以同步多个设备 IPv6 地址的,不过考虑到设置反代之后其实根本不需要这个功能,就懒得做了

阅读全文 »

本文基于 ROS 7.18.2 编写

前言

IPv6 日渐普及,最近闲来无事,想着把 RouterOS 上的分流规则改为 IPv4 & IPv6,因为 IPv6 的分流设置和 IPv4 有诸多不同,在此记录一下

自动更新分流规则的脚本

左侧 System → Scripts,新建一个用于自动更新分流规则的脚本
【RouterOS(ROS)】自动更新分流规则 by 2022 之前的文章有一个适用于 IPv4 的更新脚本,我们在这里需要做一下修改,使它可以适用于 IPv4 & IPv6

这里使用的是已经制作好的 IP 列表文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 下载 IPv4 并重命名
/tool fetch url=http://www.iwik.org/ipcountry/mikrotik/CN dst-path=CN_ipv4

# 下载 IPv6 并重命名
/tool fetch url=http://www.iwik.org/ipcountry/mikrotik_ipv6/CN dst-path=CN_ipv6

# 关闭日志输出避免刷屏
/system logging disable 0

/import file-name=CN_ipv4
:local CNv4 [:len [/ip firewall address-list find list="CN"]]
/file remove [find name="CN_ipv4"]

/import file-name=CN_ipv6
:local CNv6 [:len [/ipv6 firewall address-list find list="CN"]]
/file remove [find name="CN_ipv6"]

# 恢复日志输出
/system logging enable 0
:log info ("CN列表更新: IPv4 " . $CNv4 . "条, IPv6 " . $CNv6 . "条")
阅读全文 »

网上各种版本的 PVE 首页温度 DIY 脚本,但萝卜青菜各有所爱,总是难得遇到钟情的那一款
自行 DIY 的话,正则 + js 入门确实需要点门槛
所以这里提供另一种实现方式 json,清晰明了,便于阅读,修改简单
无论是 温度、风扇转速、硬盘温度、硬盘信息都可以轻松搞定


阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 下载文件
/tool fetch url=http://www.iwik.org/ipcountry/mikrotik/CN
# 关闭日志输出,避免刷屏
/system logging disable 0
# 载入列表
/import file-name=CN
# 恢复日志输出输出选项
/system logging enable 0
# 查看当前列表数量
:local CN [:len [/ip firewall address-list find list="CN"]]
# 删除文件
/file remove [find name="CN"]
# 写入日志
:log info ("CN列表更新:"."$CN"."条规则")

End

  • 以下脚本命令基于 ROS 7.2.3,其他版本不一定适用

  • 此脚本在 7.9 或更早已经失效,新版本的 ROS 不允许删除动态对象

  • ROS 开启 UPNP 后,会自动映射端口,所生成的端口映射可以在 IP - Firewall - NAT 中查询,但 ROS 自动生成的端口映射没有老化时间,需要手动进行删除,或使用脚本进行删除,这里记录一下编写的脚本。

  • upnp 老化(自行设定定时执行)

1
2
3
4
5
6
7
/ip firewall nat;
:foreach singleRule in=[find where dynamic=yes] do={
:if ([:ping [get $singleRule to-addresses] count=2] < 1) do={
remove $singleRule
:log warning "*** 删除不可用的 upnp 规则 ***";
}
};
  • 拨号后自动修改 dst-address (建议 pppoe 接口绑定拨号脚本,然后在 PPP - Profiles 下添加)
1
2
3
4
5
6
7
8
:global addold
:global addnew
:set addnew [/interface get [/interface find name="pppoe-out1"] running]
:if ($addnew=true) do={
:set addold [/ip address get [/ip address find dynamic=yes interface="pppoe-out1"] address]
:set addold [:pick $addold 0 ([:len $addold ] -3)]
/ip firewall nat set [find dynamic=yes comment ~"^upnp*."] dst-address=$addold
}

End

前因

家里使用的是 J4125 小主机,原先只是为了做个软路由,然后挂挂青龙面板薅羊毛,但后来由于媳妇是在用不习惯电视的视频软件(没有弹幕、会员费用高、操作不方便、零零散散的独占节目太多又不想每个都充会员)

于是就在 J4125 上面虚拟化了一个 Windows 作为 HTPC 使用,但这对于 J4125 来说实在是太吃力了

尤其是当初装修的时候没规划好,导致弱电设备只能放在酒柜里,散热不太好,一到夏天就开始过热降频,于是打算 618 入手,但最终还是没忍住剁手,希望 618 不会遭受太多背刺(虽然大多东西都是海鲜市场购入)

弱电柜

海鲜市场零零散散淘了一个月,前几天终于将配件购买完成。

在这里对踩过的坑,PVE 直通、调试等做一个记录,避免自己忘记,也希望给看到的网友带来一点帮助。

成品展示

功耗(PVE 打开 ROS+openwrt,空载状态)

阅读全文 »

因为新购入了主机,需要重新调试 PVE ,在这里做一些记录

PVE初装

1. BIOS设置

1)debian 默认 BIOS 时间为 UTC 时间,时间不对的情况下会造成主机开启关闭状态显示不正常,并造成令牌验证失败频繁退出登录,所以最好调整 BIOS 时间为 UTC 时间
PVE 安装时间同步软件也可以,但是初装电脑,开机网络不通的时候虚拟机开关会造成以上问题,所以推荐直接改 BIOS 时间
2)确认开启虚拟化
根据需要确认开启或关闭 CSM 、CPU 节能、板载声卡、来电自启动等选项(CPU C6/C7/C10 等节能请确认硬件支持再开启,以免造成低负载随机死机)

2. PVE安装

官网下载镜像:https://www.proxmox.com/en/downloads
使用 U盘刻录软件刻录即可,我这里使用的是 balenaEtcher
为了方便设置管理口,只插上一根自动分配IP的网线到要要设置的管理口上,IP 可以在安装界面上更改,主要是为了分辨网口编号
(尽量不要使用板载网卡,有些主板官方内核板载网卡、板载声卡等设备无法拆分,会导致后续声卡直通时出问题,我这里从 I340T4 里面选了一个口作为管理口使用)

3. PVE设置

1)删除 local-lvm 分区,只留下 local 分区

避免空间浪费,而且 PVE 首页上显示的空间剩余指的是 local 分区,我使用 J4125 的时候就发生过一次 local-lvm 塞满造成的 IO-err,推荐新装 PVE 时进行设置,不然还要备份还原虚拟机,比较麻烦

1
2
lvremove pve/data
lvextend -l +100%FREE -r pve/root

数据中心-存储-删除local-lvm
选择local,编辑,在内容里添加磁盘映像和容器
如果需要还原之前的虚拟机,则需要使用如下命令(无法使用 WEB 页面还原,因为储存位置不一致)

1
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2022_05_19-19_07_41.vma.zst 101 -storage local
2)换源、关闭订阅、首页温度提示等操作

参考:
https://github.com/xiangfeidexiaohuo/ProxmoxVE-7.0-DIY
http://songw.top/archives/748.html
https://zry.io/archives/285

阅读全文 »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
hexo new "My New Post"

More info: Writing

Run server

1
hexo server

More info: Server

Generate static files

1
hexo generate

More info: Generating

Deploy to remote sites

1
hexo deploy

More info: Deployment

0%