作者归档:vibbow

获取用于DDNS的阿里云Access Key ID/Secret

该教程是配合上一篇文章 RouterOS Aliyun DDNS 脚本 一起食用的。

1. 进入阿里云的 RAM 访问控制 功能

2. 在 权限管理->权限策略 里,创建权限策略。
策略名称可以自行起名,配置模式选择脚本配置,输入以下权限策略。
将策略中的 xxx.yyy 替换成你想要更新的域名 (主域名,非子域名)

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "alidns:DescribeSubDomainRecords",
        "alidns:UpdateDomainRecord"
      ],
      "Resource": "acs:alidns:*:*:domain/xxx.yyy",
      "Effect": "Allow"
    }
  ]
}

3. 在 身份管理->用户 里,创建一个用户,登录名称/显示名称可以自行起名,需要勾选 访问方式 中的 OpenAPI调用访问

4. 在 创建用户用户信息 界面上,保存上面显示的 AccessKey IDAccessKey Secret。该信息只会显示一次。

5. 编辑刚创建的用户,添加权限,将第二步创建的权限策略添加到账户内

RouterOS 阿里云 DDNS 脚本

将以下脚本添加到 System Scheduler 里,设置 Interval 为 00:01:00,并修改开头的四个变量,即可实现阿里云域名的DDNS。

注意事项:
该脚本只适用于WAN口能直接获取到公网IP的情形。
该脚本不会自动在阿里云DNS里创建子域名,要更新的子域名必须事先添加好。

:local "accessKeyId" "你的阿里云Access Key ID";
:local "accessKeySecret" "你的阿里云Access Key Secret";
:local "domain" "你的域名";
:local "wanInterface" "WAN口接口名称"

# ==========

:local "localIP"
:local "resolvedIP";
:local "epicFail" false;


:do {
  :set $localIP [ /ip address get [ find interface=$wanInterface ] address ];
  :set $localIP [ :pick $localIP 0 [ :find $localIP "/" ] ];
  :set $localIP [ :toip $localIP ];
} \
on-error {
  :set $epicFail true;
  :log error ("DDNS: Get local IP failed.");
}


:do {
  :set $resolvedIP [ :resolve $domain ];
} \
on-error {
  :set $epicFail true;
  :log error ("DDNS: Resolve domain " . $domain . " failed.");
}


:if ($epicFail = false && $localIP != $resolvedIP) \
do={
  :local "callUrl" ("https://ddns.vsean.net/aliyun/index.php");
  :local "postData" ("domain=" . $domain . "&id=" . $accessKeyId . "&secret=" . $accessKeySecret);
  :local result [ /tool fetch url=$callUrl mode=https http-method=post http-data=$postData as-value output=user ];
  :log info ("DDNS: " . $result->"data");
}

关于如何获取 Access Key ID / Secret 的教程可以参考下一篇文章:
获取用于DDNS的阿里云Access Key ID/Secret

服务器端脚本源代码看这里:
https://github.com/vibbow/aliyun-ddns-script


更新:如果你的接口无法直接获取到公网IP(如DMZ或者1:1 NAT),则可用以下代码取代获取 localIP 部分的代码

:do {
  :local result [/tool fetch url="http://ip.3322.net/" mode=http as-value output=user];
  :set $localIP ($result->"data")
  :set $localIP [ :pick $localIP 0 [ :find $localIP "\n" ] ];
  :set $localIP [ :toip $localIP ]
} \
on-error {
  :set $epicFail true;
  :log error ("DDNS: Get local IP failed.");
}

Git 设置备忘录

github.com SSH 加速访问

修改 C:\Users\Dell\.ssh\config 文件,添加如下内容:

Host github.com
  User git
  Port 22
  Hostname github.com
  IdentityFile "C:/Users/Dell/.ssh/id_ecdsa"
  TCPKeepAlive yes
  ProxyCommand connect -S 127.0.0.1:7891 -a none %h %p

全局设置 GPG 签名工具

GPG4Win 下载地址:https://www.gpg4win.org/

git config --global gpg.program "C:/Program Files (x86)/GnuPG/bin/gpg.exe"

列举 GPG Key

gpg --list-secret-keys --keyid-format=long

针对 Git Repo 启用 GPG 签名

git config --local user.signingkey [YOUR GPG KEY]
git config --local commit.gpgsign true

Dell iDRAC 系统更新 Catalog 国内镜像

功能:通过将 Catalog 文件指向到 Dell 国内镜像,加速 iDRAC 自带更新功能的更新速度。

使用教程:
iDRAC 系统更新 功能里,选择 手动更新
位置类型 选择为 HTTPS
HTTPS 地址 设为 dell.vsean.net
已过期或无效的证书操作 选择为 忽略

然后正常检查安装更新即可

RouterOS 通用 Hairpin NAT 规则

/ip firewall address-list
add address=192.168.0.0/16 list=LAN
add address=172.16.0.0/12 list=LAN
add address=10.0.0.0/8 list=LAN

/ip firewall nat
add action=masquerade chain=srcnat comment="Hairpin NAT" dst-address-list=LAN src-address-list=LAN

以上规则可能不适用启用了VLAN划分了多子网的情况。

用于 PHP 8.0 for Windows x64 NTS 的 Imagick 扩展

用于 PHP 8.0 for Windows x64 NTS 的 Imagick 扩展。

已测试版本:PHP 8.0.3 x64 NTS

下载地址:https://static.vsean.net/php_8.0_windows_x64_nts_imagick.zip

使用说明:
1. 运行安装 ImageMagick-7.0.10-43-Q16-x64-dll.exe
2. 将 php_imagick.dll 复制到 PHP 的 ext 目录内
3. 在 php.ini 内添加一行 extension=imagick

文件提取自 Apache Lounge

清理阿里云 ECS 无用进程

阿里云助手
/usr/loca/share/aliyun-assist/2.2.0.89/aliyun-service

systemctl stop aliyun
systemctl disable aliyun
rm /etc/systemd/system/aliyun.service
rm /usr/sbin/aliyun_installer
rm /usr/sbin/aliyun-service
rm -rf /usr/local/share/aliyun-assist
systemctl daemon-reload

阿里云助手守护进程
/usr/local/share/assist-daemon/assist_daemon

systemctl stop AssistDaemon
systemctl disable AssistDaemon
rm /etc/systemd/system/AssistDaemon.service
rm -rf /usr/local/share/assist-daemon
systemctl daemon-reload

阿里云盾
/usr/local/aegis/aegis_client/aegis_10_89/AliYunDun
/usr/local/aegis/aegis_update/AliYunDunUpdate

curl -sSL http://update.aegis.aliyun.com/download/uninstall.sh | bash
rm -rf /usr/local/aegis

云监控插件 Go 版
/usr/local/cloudmonitor/CmsGoAgent.linux-amd64

/usr/local/cloudmonitor/CmsGoAgent.linux-amd64 stop
/usr/local/cloudmonitor/CmsGoAgent.linux-amd64 uninstall
rm -rf /usr/local/cloudmonitor

RouterOS 屏蔽小米电视广告

因为使用到了正则式以及NXDOMAIN,需要RouterOS版本为 6.47 或更新版本

/ip dns static
add regexp="(.*\\.)\?abtest\\.mistat\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?ad\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?ad1\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?bss\\.pandora\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?data\\.mistat\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?de\\.pandora\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?dvb\\.pandora\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?image\\.box\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?jellyfish\\.pandora\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?m\\.bss\\.pandora\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?notice\\.game\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?o2o\\.api\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?ppurifier\\.game\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?sdkconfig\\.ad\\.intl\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?shenghuo\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?storeconfig\\.mistat\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?wtradv\\.market\\.xiaomi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?a\\.hl\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?a\\.union\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?ad\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?migc\\.g\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?migcreport\\.g\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?mis\\.g\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?mivideo\\.g\\.mi\\.com\$" type=NXDOMAIN
add regexp="(.*\\.)\?staging\\.admin\\.e\\.mi\\.com\$" type=NXDOMAIN

以上代码直接复制进 RouterOS 的 Terminal 里执行即可。

域名规则来自 https://github.com/lhie1/Rules

WinBox 扫描不到 RouterOS 解决方案之一

在 WinBox 里通过 Neighbors 功能扫描 RouterOS 设备时,是要监听 UDP 5678 端口的。而迅雷也会监听这个端口,导致 WinBox 无法扫描到任何设备。

因此解决方案就是把迅雷的进程杀掉。

请注意仅退出迅雷是无效的,你需要在任务管理器里把 ThunderPlatform 进程结束掉才行。