分类 软件 下的文章

有遇到设置2.4G,却无法切换到2.4G频段的,可使用本补丁文件,恢复2.4G频段。

--- package/network/services/hostapd/Makefile
+++ package/network/services/hostapd/Makefile
@@ -28,6 +28,7 @@
     CONFIG_PACKAGE_hostapd-mini \
     CONFIG_WPA_RFKILL_SUPPORT \
     CONFIG_DRIVER_WEXT_SUPPORT \
+    CONFIG_DRIVER_11N_SUPPORT \
     CONFIG_DRIVER_11AC_SUPPORT \
     CONFIG_DRIVER_11AX_SUPPORT \
     CONFIG_WPA_ENABLE_WEP
@@ -74,6 +75,10 @@
 
 STAMP_CONFIGURED:=$(STAMP_CONFIGURED)_$(CONFIG_WPA_MSG_MIN_PRIORITY)
 
+ifneq ($(CONFIG_DRIVER_11N_SUPPORT),)
+  HOSTAPD_IEEE80211N:=y
+endif
+
 ifneq ($(CONFIG_DRIVER_11AC_SUPPORT),)
   HOSTAPD_IEEE80211AC:=y
 endif
@@ -85,6 +90,7 @@
 DRIVER_MAKEOPTS= \
     CONFIG_ACS=$(CONFIG_PACKAGE_kmod-cfg80211) \
     CONFIG_DRIVER_NL80211=$(CONFIG_PACKAGE_kmod-cfg80211) \
+    CONFIG_IEEE80211N=$(HOSTAPD_IEEE80211N) \
     CONFIG_IEEE80211AC=$(HOSTAPD_IEEE80211AC) \
     CONFIG_IEEE80211AX=$(HOSTAPD_IEEE80211AX) \
     CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \

--- package/network/services/hostapd/Config.in
+++ package/network/services/hostapd/Config.in
@@ -78,6 +78,10 @@
     select KERNEL_WIRELESS_EXT
     default n
 
+config DRIVER_11N_SUPPORT
+    bool
+    default n
+    
 config DRIVER_11AC_SUPPORT
     bool
     default n

--- package/network/services/hostapd/src/src/utils/build_features.h
+++ package/network/services/hostapd/src/src/utils/build_features.h
@@ -7,6 +7,10 @@
     if (!strcmp(feat, "eap"))
         return 1;
 #endif
+#ifdef CONFIG_IEEE80211N
+    if (!strcmp(feat, "11n"))
+        return 1;
+#endif
 #ifdef CONFIG_IEEE80211AC
     if (!strcmp(feat, "11ac"))
         return 1;

补丁文件下载:06_recover_11N.zip

将以下代码保存成php后缀名,存放到可外网访问的php服务器下,可调用本地安装的wol程序,实现远程唤醒群晖。当然也可以唤醒其它支持网络唤醒的设备。根据自己实际需要设置好登录密码、mac地址和广播域。

<?php
#群晖远程唤醒
$passwd="1234567890"; //设置登录密码
$devmac="00:11:32:76:C8:69";//设置群晖的mac地址
$broadcast="172.0.255.255";//设置广播域172.0.X.X
    
header("Content-type:text/html;charset=gb2312");
echo "<title>群晖远程唤醒</title>";
echo "<pre>";

if(isset($_POST['btn']) and $_POST['passwd']==$passwd){
    $message=shell_exec("wol -i ".$broadcast." ".$devmac." 2>&1");
    echo "<B><br/><body style=\"text-align:center;\"><h1 style=\"color:red;\">群晖远程唤醒</h1></B><br/><h3>请稍等片刻再访问群晖……<pre>正在唤醒中:".$message."</h3><br/>";
    echo "<pre>";
}
else
{
    if(isset($_POST['passwd'])!="") {
        echo "<script>alert(\"密码错误!\");</script>";
    }
    echo "<B><br/><body style=\"text-align:center;\"><h1 style=\"color:red;\">群晖远程唤醒</h1></B><br/><h3>确定要唤醒群晖吗?</h3>";
    echo "<pre>";
    echo "<form  method=\"post\"> <h3>密码:<input type=\"text\" id=\"passwd\" name=\"passwd\"  required  minlength=\"4\" maxlength=\"10\" size=\"10\" /> <input type=\"submit\" name=\"btn\"   value=\"确认\"/></h3></form>";
}
    echo "</body>";
?>

唤醒登录.jpg 唤醒中.jpg
范例:http://yang1010.vicp.net/wol.php

相关资料来至:
1.github-【资料库】 https://github.com/gsuberland/lbfo_win10
2.原博主博客-【Re-enabling NIC Teaming (LBFO) in Windows 10 & other desktop SKUs, even after Microsoft removed it】 https://codeinsecurity.wordpress.com/2020/05/27/re-enabling-nic-teaming-lbfo-in-windows-10-desktop-skus-even-after-microsoft-removed-it/
3.github问题讨论区-【WIN32_EXIT_CODE : 1077 (0x435) #1】 https://github.com/gsuberland/lbfo_win10/issues/1

搬运优化补充了相关内容,经win10 x64 22H2和Win11 21H2验证可用。
具体安装步骤如下:
1.提取Windows Server 2022的install.wim镜像文件,存放工程目录下;
2.执行extract.bat文件,完成从install.wim镜像文件提取LBFO服务文件;
3.用管理员权限执行cmd命令:psexec -s -i cmd,进入system权限的cmd命令窗口,再执行install.bat,完成LBFO服务安装;
4.进入控制面板->网络和Internet->网络连接->找到“以太网”接口图标,鼠标右键“属性(R)”->以太网属性页,单击“安装(N)...”->选择网络功能类型页->选择“服务”-“添加(A)...”->选择网络服务页,单击“从磁盘安装(H)...”->从磁盘安装页,单击"浏览(B)..."->选择“C:\Windows\System32\DriverStore\FileRepository\mslbfoprovider.inf_amd64_f9d27a6b05ef21aa\mslbfoprovider.inf”文件->从磁盘安装页,单击"确认”,完成LBFO服务启用。
5.用管理员权限打开PowerShell命令行窗口,参照如下命令,完成VLAN网卡创建。

获取网络适配器信息

Get-NetAdapter

创建虚拟交换机:“Vbox”为虚拟交换机,"以太网" 为本地网络接口(根据自己实际修改)

New-NetLBFOTeam -Name "Vbox" -TeamNicName "Vbox"  -TeamMembers "以太网" -TeamingMode SwitchIndependent -LoadBalancingAlgorithm IPAddresses -Confirm:$false

创建VLAN网卡,案例是创建了Vlan7、Vlan8和Vlan9

Add-NetLbfoTeamNic -Team "Vbox" -VlanID 7 -Confirm:$false
Add-NetLbfoTeamNic -Team "Vbox" -VlanID 8 -Confirm:$false
Add-NetLbfoTeamNic -Team "Vbox" -VlanID 9 -Confirm:$false

移除VLAN网卡

Remove-NetLbfoTeamNic -Team "Vbox" -VlanID 9
Remove-NetLbfoTeamNic -Team "Vbox" -VlanID 8
Remove-NetLbfoTeamNic -Team "Vbox" -VlanID 7

移除虚拟交换机

Remove-NetLBFOTeam -Name "Vbox"

附件已经包含从Windows Server 2022提权的文件,解压后从步骤3往下做就可以了。
lbfo_win10-master.zip

固定IP使用旁路的网关,自由分配的IP使用主路由网关。
1.把DHCP服务器,设置主路由的地址和对应的DNS。
微信图片_20231229010309.png
2.把需要从旁路由出去的设备设置成静态地址分配。
微信图片_20231229010501.png

--- package/network/services/dnsmasq/files/dnsmasq.init
+++ package/network/services/dnsmasq/files/dnsmasq.init
@@ -339,9 +339,9 @@
 
     if [ $DNSMASQ_DHCP_VER -eq 6 ]; then
         addrs="${ip:+,$ip}${hostid:+,[::$hostid]}"
-        xappend "--dhcp-host=$macs${duids:+,$duids}$hosttag$addrs$nametime"
+        xappend "--dhcp-host=set:ssr,$macs${duids:+,$duids}$hosttag$addrs$nametime"
     else
-        xappend "--dhcp-host=$macs$hosttag${ip:+,$ip}$nametime"
+        xappend "--dhcp-host=set:ssr,$macs$hosttag${ip:+,$ip}$nametime"
     fi
 }
 
@@ -951,6 +951,17 @@
     [ ! -d "$dnsmasqconfdir" ] && mkdir -p $dnsmasqconfdir
     xappend "--user=dnsmasq"
     xappend "--group=dnsmasq"
+
+    br_lan="$( ifconfig |grep "Bcast" | sed 's/.*addr://;s/Bcast.*//' )"
+    br_lan6="$( ifconfig |grep -A1 "Bcast" |grep inet6.*addr| sed 's/.*inet6.*addr://;s/\/.*//' )"
+    xappend "--dhcp-option=tag:ssr,option:router,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:dns-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:nis-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option:ntp-server,$br_lan"
+    xappend "--dhcp-option=tag:ssr,option6:dns-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:nis-server,$br_lan6"
+    xappend "--dhcp-option=tag:ssr,option6:sntp-server,$br_lan6"
+
     echo >> $CONFIGFILE_TMP
 
     config_get_bool enable_tftp "$cfg" enable_tftp 0


--- feeds/luci/modules/luci-base/po/zh-cn/base.po
+++ feeds/luci/modules/luci-base/po/zh-cn/base.po
@@ -838,8 +838,9 @@
 "\"<code>6,192.168.2.1,192.168.2.2</code>\" which advertises different DNS "
 "servers to clients."
 msgstr ""
-"设置 DHCP 的附加选项,例如设定 \"<code>6,192.168.2.1,192.168.2.2</code>\" 表"
-"示通告不同的 DNS 服务器给客户端。"
+"设置 DHCP 的附加选项,例如设定 \"<code>3,192.168.2.1</code>\" 表"
+"示指定客户端的网关地址;\"<code>6,210.2.4.8,192.168.2.1</code>\" 表"
+"示指定客户端的 DNS 服务器地址。"
 
 msgid "Delete"
 msgstr "删除"

补丁下载地址:02_fixed_router_dns_dnsmasq.zip

;忙碌的上班生活,让我们分身乏术,每天下班都还得记得做一件小事关闭计算机。
;人毕竟不是机器,难免有时会因其他琐事而疏忽了正在待机的计算机,造成不环保,所以写了这个程序辅助大家关闭计算机,为节约资源做点贡献!
;“程序名.EXE /I”为注册本程序服务,以后可以随系统运行而运行,一劳永逸;“程序名.EXE /U”为移除本程序服务,你仍可以通过手工运行此程序来获得此服务。
;正常下班关机时间大约为17点,加班下班时间为21点。

#Include <Date.au3>
#NoTrayIcon

Global $afternoon="16:58",$night="20:58"

If $CmdLine[0] > 0 Then
 If StringUpper($CmdLine[1]) ="/I" Then
  If ProcessExists("AutoHalt.EXE") Then
     ProcessClose("AutoHalt.EXE")
  sleep(250)
  EndIf
  FileCopy(@ScriptFullPath,@WindowsDir&"\AutoHalt.EXE",1)
  sleep(250)
  RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "AutoHalt", "REG_SZ", @WindowsDir&"\AutoHalt.EXE")
  Run("AutoHalt.EXE",@WindowsDir)
  MsgBox( 0, "消息", "注册成功,计算机已经启用自动关机服务")
 EndIf
 If StringUpper($CmdLine[1]) ="/U" Then
  RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "AutoHalt")
  If ProcessExists("AutoHalt.EXE") Then
     ProcessClose("AutoHalt.EXE")
  sleep(250)
  EndIf
  MsgBox( 0, "消息", "自动关机服务已经成功移除")
 EndIf
 Exit 
EndIf

If WinExists("AutoHalt") Then Exit
AutoItWinSetTitle("AutoHalt")

If _NowTime(4) > $afternoon AND _NowTime(4) < $night Then
 $b = False
Else
 $b = True
EndIf

HotKeySet("^!u", "cancel")

While 1
   sleep(1000*60)
    If _NowTime(4)> $afternoon and _NowTime(4)< $night and $b Then
  $b = False
  halt()
 EndIf
 If _NowTime(4)> $night and not($b) Then
  $b = true
  halt()
 EndIf
WEnd

Func halt()
 $c = MsgBox( 4369, "下班时间到了!", "确定要立即关闭计算机吗?"&@CRLF&"默认将于1分钟后自动关闭计算机 ",60 )
 IF  $c = 1 Then

  IF MsgBox( 4369, "下班时间到了!", "请再次确定是否要立即关闭计算机?" ) = 1 Then
   Shutdown(13)
  EndIf
 EndIf
 IF  $c = -1 Then
  Shutdown(13)
 EndIf
EndFunc

Func cancel()
 If _NowTime(4)< $afternoon  Then
  If $b Then
   $b = False
   ToolTip("下班自动关机已经取消!", 0, 0,"",0,1)
   Sleep(1000)
  Else
   $b = True
   ToolTip("下班自动关机已经启用!", 0, 0,"",0,1)
   Sleep(1000)   
  EndIf
 EndIf
 ToolTip("", 0, 0,"",0,1)
EndFunc