From f00473ad60cf3c675a161c4948b99e423155e4e6 Mon Sep 17 00:00:00 2001 From: itwangaijava <> Date: Wed, 1 Nov 2023 10:33:32 +0800 Subject: [PATCH] update from gridea: 2023-11-01 10:33:32 --- 404.html | 89 + about/index.html | 150 ++ api-content/index.html | 1 + api-info/index.html | 1 + archives/index.html | 562 +++++ atom.xml | 637 ++++++ favicon.ico | Bin 0 -> 27865 bytes friends/index.html | 159 ++ images/avatar.png | Bin 0 -> 27865 bytes index.html | 364 +++ media/README.md | 1 + media/gridea-search/gridea-search.js | 230 ++ media/gridea-search/result-template.ejs | 33 + media/scripts/index.js | 1 + page/2/index.html | 382 ++++ page/3/index.html | 386 ++++ page/4/index.html | 171 ++ post-images/anaconda3-yu-huan-yuan.gif | Bin 0 -> 55145 bytes post/anaconda3-yu-huan-yuan/index.html | 202 ++ post/apple-id-huan-qu/index.html | 191 ++ post/ce-shi/index.html | 175 ++ post/csdn-po-jie-deng-lu-fu-zhi/index.html | 172 ++ .../index.html | 170 ++ post/diao-yu-ji-qiao-quan-gong-lue/index.html | 184 ++ .../index.html | 188 ++ .../index.html | 179 ++ post/git-ru-men/index.html | 177 ++ post/jian-dan-de-efhelper/index.html | 353 +++ .../index.html | 174 ++ .../index.html | 175 ++ .../js-zhi-xing-hua-kuai-yan-zheng/index.html | 195 ++ post/linux-bu-shu-dotnet-huan-jing/index.html | 184 ++ post/linux-ding-shi-ren-wu/index.html | 186 ++ post/mysql-luan-ma-txt/index.html | 171 ++ .../mysql-yuan-cheng-fang-wen-root/index.html | 176 ++ .../index.html | 175 ++ post/openwrt-cha-jian/index.html | 449 ++++ post/redmi-ac2100-gu-jian/index.html | 247 ++ .../index.html | 220 ++ post/roo-fen-qu-kuo-rong/index.html | 195 ++ .../shu-mei-pai-huan-qing-hua-yuan/index.html | 182 ++ post/shu-mei-pai-pei-zhi-wifi/index.html | 185 ++ post/sql-server-mi-yao-ji-jin/index.html | 190 ++ post/termux-shi-yong-ssh-lian-jie/index.html | 172 ++ post/visual-studio-2022vs2022/index.html | 172 ++ .../webapi-quan-ju-fan-hui-jsontxt/index.html | 175 ++ post/win10-qi-ye-ban-ji-huo/index.html | 178 ++ .../index.html | 176 ++ post/zeng-jia-swap/index.html | 193 ++ search/index.html | 157 ++ styles/main.css | 1991 +++++++++++++++++ tag/-abEMiMjQ/index.html | 225 ++ tag/4ng9AvzFm/index.html | 250 +++ tag/SPQCRxxpr/index.html | 175 ++ tag/bftlFwBmA/index.html | 225 ++ tag/ruan-jian-an-zhuang/index.html | 175 ++ tags/index.html | 160 ++ 57 files changed, 12686 insertions(+) create mode 100644 404.html create mode 100644 about/index.html create mode 100644 api-content/index.html create mode 100644 api-info/index.html create mode 100644 archives/index.html create mode 100644 atom.xml create mode 100644 favicon.ico create mode 100644 friends/index.html create mode 100644 images/avatar.png create mode 100644 index.html create mode 100644 media/README.md create mode 100644 media/gridea-search/gridea-search.js create mode 100644 media/gridea-search/result-template.ejs create mode 100644 media/scripts/index.js create mode 100644 page/2/index.html create mode 100644 page/3/index.html create mode 100644 page/4/index.html create mode 100644 post-images/anaconda3-yu-huan-yuan.gif create mode 100644 post/anaconda3-yu-huan-yuan/index.html create mode 100644 post/apple-id-huan-qu/index.html create mode 100644 post/ce-shi/index.html create mode 100644 post/csdn-po-jie-deng-lu-fu-zhi/index.html create mode 100644 post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/index.html create mode 100644 post/diao-yu-ji-qiao-quan-gong-lue/index.html create mode 100644 post/diao-yu-zheng-que-kan-piao-ji-qiao/index.html create mode 100644 post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/index.html create mode 100644 post/git-ru-men/index.html create mode 100644 post/jian-dan-de-efhelper/index.html create mode 100644 post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/index.html create mode 100644 post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/index.html create mode 100644 post/js-zhi-xing-hua-kuai-yan-zheng/index.html create mode 100644 post/linux-bu-shu-dotnet-huan-jing/index.html create mode 100644 post/linux-ding-shi-ren-wu/index.html create mode 100644 post/mysql-luan-ma-txt/index.html create mode 100644 post/mysql-yuan-cheng-fang-wen-root/index.html create mode 100644 post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/index.html create mode 100644 post/openwrt-cha-jian/index.html create mode 100644 post/redmi-ac2100-gu-jian/index.html create mode 100644 post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/index.html create mode 100644 post/roo-fen-qu-kuo-rong/index.html create mode 100644 post/shu-mei-pai-huan-qing-hua-yuan/index.html create mode 100644 post/shu-mei-pai-pei-zhi-wifi/index.html create mode 100644 post/sql-server-mi-yao-ji-jin/index.html create mode 100644 post/termux-shi-yong-ssh-lian-jie/index.html create mode 100644 post/visual-studio-2022vs2022/index.html create mode 100644 post/webapi-quan-ju-fan-hui-jsontxt/index.html create mode 100644 post/win10-qi-ye-ban-ji-huo/index.html create mode 100644 post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/index.html create mode 100644 post/zeng-jia-swap/index.html create mode 100644 search/index.html create mode 100644 styles/main.css create mode 100644 tag/-abEMiMjQ/index.html create mode 100644 tag/4ng9AvzFm/index.html create mode 100644 tag/SPQCRxxpr/index.html create mode 100644 tag/bftlFwBmA/index.html create mode 100644 tag/ruan-jian-an-zhuang/index.html create mode 100644 tags/index.html diff --git a/404.html b/404.html new file mode 100644 index 0000000..58bcadf --- /dev/null +++ b/404.html @@ -0,0 +1,89 @@ + + + + + + + Page Not Found + + + +
+
4 0 4
+
+ Page not found +
+
+ + + + + + Back + +
+
+ + + + \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 0000000..a443a19 --- /dev/null +++ b/about/index.html @@ -0,0 +1,150 @@ + + + + + + +关于 - itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+

记录点点滴滴

+ +
+
+
+
+ + + + + + + + + +
+
+ + diff --git a/api-content/index.html b/api-content/index.html new file mode 100644 index 0000000..0b88d90 --- /dev/null +++ b/api-content/index.html @@ -0,0 +1 @@ +{"posts":[{"title":"SQL Server 密钥集锦","content":"SQL Server 2019 Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-8468J Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4 Web:33QQK-WWQNB-G6T46-C86YB-TX2PH SQL Server 2017 Enterprise:TDKQD-PKV44-PJT4N-TCJG2-3YJ6B Enterprise Core:6GPYM-VHN83-PHDM2-Q9T2R-KBV83 Strandard:PHDV4-3VJWD-N7JVP-FGPKY-XBV89 Web:WV79P-7K6YG-T7QFN-M3WHF-37BXC SQL Server 2016 Enterprise:MDCJV-3YX8N-WG89M-KV443-G8249 Enterprise Core:TBR8B-BXC4Y-298NV-PYTBY-G3BCP Standard:B9GQY-GBG4J-282NY-QRG4X-KQBCR Web:BXJTY-X3GNH-WHTHG-8V3XK-T8243 SQL Server 2014 Business Intelligence:GJPF4-7PTW4-BB9JH-BVP6M-WFTMJ Developer:82YJF-9RP6B-YQV9M-VXQFR-YJBGX Enterprise:27HMJ-GH7P9-X2TTB-WPHQC-RG79R Enterprise Core:TJYBJ-8YGH6-QK2JJ-M9DFB-D7M9D Strandard:P7FRV-Y6X6Y-Y8C6Q-TB4QR-DMTTK Web:J9MBB-R8PMP-R8WTW-8JJRD-C6GGW ","link":"https://itwangaijava.github.io/post/sql-server-mi-yao-ji-jin/"},{"title":"解决ASP.Net Core项目IIS在默认情况下不支持PUT和DELETE请求","content":"<modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule"/> </modules> ","link":"https://itwangaijava.github.io/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/"},{"title":"Esxi 安装驱动 复制速度加快","content":"1、开启维护模式: esxcli system maintenanceMode set --enable true 2、上传 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 到虚拟机存储,我这里是上传到 /vmfs/volumes/datastore1 里 3、把 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 拷贝到 /var/log/vmware/ cp /vmfs/volumes/datastore1/scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib /var/log/vmware/ 4、卸载原来的驱动 esxcli software vib remove -n scsi-hpvsa -f 5、安装新上传的驱动 esxcli software vib install -v file:scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib --force --no-sig-check --maintenance-mode 如果提示出错,那就把--force等这些开关去掉,试一下 6、完事重启,记得关闭维护模式 ","link":"https://itwangaijava.github.io/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/"},{"title":"js执行滑块验证(无过程)","content":"function slide (id) { var slider = document.getElementById(id), container = slider.parentNode; var rect = slider.getBoundingClientRect(), x0 = rect.x || rect.left, y0 = rect.y || rect.top, w = container.getBoundingClientRect().width, x1 = x0 + w, y1 = y0; var mousedown = document.createEvent("MouseEvents"); mousedown.initMouseEvent("mousedown", true, true, window, 0, x0, y0, x0, y0, false, false, false, false, 0, null); slider.dispatchEvent(mousedown); var mousemove = document.createEvent("MouseEvents"); mousemove.initMouseEvent("mousemove", true, true, window, 0, x1, y1, x1, y1, false, false, false, false, 0, null); slider.dispatchEvent(mousemove); /*var mouseup = document.createEvent("MouseEvents"); mouseup.initMouseEvent("mouseup", true, true, window, 0, x1, y1, x1, y1, false, false, false, false, 0, null); slider.dispatchEvent(mouseup);*/ } slide('nc_1_n1z'); ","link":"https://itwangaijava.github.io/post/js-zhi-xing-hua-kuai-yan-zheng/"},{"title":"anaconda3与换源","content":"在terminal中输入 conda config --set show_channel_urls yes, 这一步之后会在C盘->用户->(你的用户名)这一文件夹下创建一个.condarc文件(在这个文件下我们可以修改conda源。),此处niuni是我的账户名。找到.condarc文件,使用记事本打开 打开后粘贴下列内容到文件内,修改为清华源,修改后保存文件修改。 channels: defaults show_channel_urls: true default_channels: https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud 此处的意外之坑: 按照这个方法一般没有问题,但是在我最近一次的换源后在terminal下使用pip发现速度极慢,在探索了之后发现还需要换掉pip源才可以。更换方法为: 打开Terminal,然后键入如下命令: python -m pip install --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 如果更换的时候速度过慢,建议使用如下指令: python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 、 ","link":"https://itwangaijava.github.io/post/anaconda3-yu-huan-yuan/"},{"title":"钓鱼正确看漂技巧 ","content":"1、浮漂轻点轻触。多为鲫鱼在试探,连点连触则提竿。 2、浮漂微微上升一点,徐徐下沉一目半目。说明鱼已吃稳,可提竿。 3、尾漂慢慢地从顶部,只送半粒到一粒,浮漂不动(有时被误认为是小鱼或碰线),是提竿时机。 4.浮漂有的时候会慢慢的往下沉。不可忽视它的动静,浮漂的动作愈慢,鲫鱼、鲤鱼、草鱼上钩的痕迹越明显。 5.星漂微微颤动后,略沉半粒至一粒,漂动即停止。这时提竿时机是浮漂刚刚下沉,其过程很短,垂钓者若不是精力高度集中,稍有迟缓,即可痛失良机。 6.浮漂一点一点,连续点动,动作很小。也是鲫鱼已吃稳的迹象,即可提竿。 7.浮漂点动后,接着慢慢上送。动作愈慢鲫鱼愈大,动作速度快多半是小鲫鱼。 8.浮漂轻轻斜向移位,或平移,或微沉,都要及时提竿。 9.浮漂有力猛点时。只点一下动作大,不下沉也不上送,鱼饵已吃到嘴里,鱼儿较大应及时提竿。 10.浮漂横向移动,还有点向下的动作,即提竿。 11.浮漂横移。不送漂也不黑漂,只作平行横向移动,此时鱼已咬钩,可提竿。 12.未见浮漂下沉,但送漂时往往是大鱼。说明鱼已吞饵,提必获鱼。 13.浮漂微微颤动时,连续不停,鱼已咬钩。 14.浮漂突然快速下沉,或快速上送,多半是小鲫鱼咬钩。 15.浮漂横卧水面不沉不动。这往往是大鲫鱼半路咬钩,及时提竿起鱼。 16.浮漂在水面微微连续点颤、轻送或轻沉,是鱼咬钩,应及时提竿。 17.找窝试点时,空钩下送,浮漂不下沉或突然下沉。这往往是鱼咬空钩,不可忽视,及时提竿可得鱼。 18.送漂后浮漂迅速恢复原状,漂相为一粒送平后又恢复原状。出现这种现象多为虾蟹脚爪拨动所致,起竿多为空钩。 19.黑漂后迅速恢复原状,漂相为一粒粒斜向入水,然后恢复原状。多为小杂鱼咬钩捣乱。 20.浮漂在水下忽闪一下。这鱼儿碰线所致,不用提竿。 ","link":"https://itwangaijava.github.io/post/diao-yu-zheng-que-kan-piao-ji-qiao/"},{"title":"钓鱼技巧全攻略","content":"一、传统立漂沉底钓鲫鱼: 这是比较普遍的钓法,我国南北东西都有不少钓友采用此种方法。即用立漂或散漂,铅坠沉底,鱼钩距铅坠的脑线大约25毫米。垂钓时鱼漂调整到直立,露出部分,便于判断鱼讯即可(散漂则没入水中两三粒,浮在水面三四粒)。 此法的优点是调整方便,钩坠漂配比要求不严格,便于掌握。但不很灵敏,有经验的鱼常常触动一下鱼饵,发觉较重,即警觉逃走。同时,此法鱼饵沉底不动,如不勤动一下鱼竿,常不为鲫鱼发现。 二、台钓鲫鱼: 目前较为盛行。其最大优点是灵敏度强,上鱼率高。鱼钩下沉慢,易为鱼发现。坠悬于水中,钩轻轻触底,鱼在其旁游弋,鱼钩即轻轻摇动,对鱼吸引力极大。为摘钩方便,使用无倒刺钩,摘钩迅速。漂坠饵配比要求严格,鱼汛反映极为灵敏。 缺点是漂坠调整较费事;各种鱼类混养水域,使用钓鲫鱼的钩线,遇到大鱼容易跑鱼损失工具;初学时不易掌握,常有人半途而废。但只要树立信心,勤于实践,掌握也不是很难,而一旦掌握,即会发现其优点大大过于一般传统钓法。 三、戳拱钓鲫鱼: 是一种传统钓法。常用在天气炎热的夏季,有浮萍或水草丛生的水域中。一般采用长竿、硬调、短线、无坠。热季水中缺氧,鱼常在水面浮萍下吸空气、拱食、乘凉。从而咬草出声或拱得浮萍形成一个小包。因而应采用听、看办法,寻觅鱼踪。 听主要是听鱼觅食发出的嚓嚓声响;看是看水草晃动和浮萍的鼓包,判断鱼情。发觉有鱼直指该处将钩垂入。一般轻轻将钩放到拱处,看到水面线向水中拽入,或线牵动竿梢即知有鱼咬饵,适时抖竿提起鱼来。 戳拱一般选安静处,动作要轻,鱼出水时尽量避免惊扰其它鱼儿,若有惊扰,鱼不再拱,可用嘴模仿鱼咬草的嚓嚓声,起到催鱼起拱的作用。 四、戳孔钓鲫鱼: 一般用于有荷叶、水草多、苇茬多的水域。观察荷叶边、水草孔、苇茬间的鱼泡、荷叶、苇子晃动的情况,判断鱼情。工具一般采用硬调长竿、较竿短的鱼线,小坠,先观察鱼情。 发现后针对有鱼动静的地方,垂竿下钩,使钩沉底,同时不断微微提动鱼竿,引鱼鱼池饵,凭手感觉察鱼儿咬钩,适时提竿。戳孔一般采取走钓,主动找鱼下钩。 五、浮钓鲫鱼: 鲫鱼属底层鱼,一般钓底,但遇炎热、气压低的气候,鱼浮到水面游动吸氧觅食,则可采取浮钓法,即将铅坠减轻,使鱼钩悬浮于水面下约0.3--0.5米处,动作要轻,不惊散鱼群。有人针对鲫鱼甩子期的特点也常采用浮钓法。浮钓不需打窝。 六、半浮钓鲫鱼: 一般用于体情况而定。底层杂草或淤泥较厚,钩沉底不易为鱼发觉的环境。办法是将坠减轻,调整浮漂至钩触底后露出数格,然后将漂下调5-10厘米(视水底草或淤泥的厚度而定),保持漂仍露出的格数(如坠重适当减轻)。这样使钩略高于水底,便于鱼的发现。 七、甩大边钓鲫鱼: 在河道、沟渠中常岸边有芦苇等,鱼喜欢栖居觅食,如果河道不很宽,你的钓位比较嘈杂,可以用长竿、长线,或海竿串钩甩至对岸芦苇、水草边,可以甩出四、五支竿,插好等待,手竿可用漂,海竿则将风线拉直,看竿梢湾动,往往效果很好。 八、走钓鲫鱼: 到一水塘,先行观察,选鲫鱼喜栖居的位置撒窝,可保持至少2米一上距离,撒若干窝子。然后采用5-6米左右质轻的鱼竿,采用7--10 粒的散漂,(便于适应水的不同深度,不必老调漂),钓线宜细,鱼钩最好是朝天钩,饵料一般采用红蚯蚓,保持活性最好。 走钓的特点是走,应手持钓竿,沿打过窝的水边观察鱼星的情况,有鱼星即应下钩,无鱼星可继续观察其它钓窝。打窝应每次少打,过些时间再打一遍,即少打勤打。这种钓法变等为找,因此由被动变主动,且对锻炼身体更有好处。 九、流水钓鲫鱼: 一般适用于流动水域,竿宜长,线不必太长,坠须重,漂可用数粒散漂,粒漂则宜长,饵以蚯蚓、小虾为好。钩甩入水中,如水流动,可使钩漂顺水同流,到下游后提起再甩至上游,见漂停住,立即提竿。以免底部挂住,若有托漂或下沉,即应提竿上鱼。 十、盒饭钓鲫鱼: 类似爆炸钩,但将食放在一个预制的塑料盒中,可以节省饵料,且对饵料的粘、散要求较底。方法是用一个直径为25-50毫米的塑料瓶底或盖,制成高约15-20的小盒。用螺丝自盒里底部中心穿出,固定一个铅坨。盒的四周均匀打七个直径2毫米的小孔。 一个孔穿入钓线,拴上连接环。用三棵软脑线,每棵对折,然后拧在一起套入一个短气门心内。对折的线圈挂在连接环上。三棵对折脑线的六个头,分别从六个小孔中穿出,每端系上一个鱼钩。用时,将盒中放上糟食,将钩从盒外折回到盒内,埋入糟食内,甩出到钓点进行垂钓。 十一、活水钓鲫鱼: 鱼类对氧气的需求量不亚于人类,有氧则活,无氧则死,氧气充足的水中,鱼儿最多,最活跃。垂钓水域的进、出水口,含氧量高,被称为活水,在此垂钓必有收获。 下雨时,雨水能将氧气带人水中,所以雨过天晴同样是垂钓的好时机。大风大,水随风而动,不但企氧气溶入,还有岸边的草籽、花粉、树叶等天然鱼食刮人,风停后在下风口垂钓也很好。 十二、适温钓鲫鱼: 一年四季,水温变化很大。鱼儿既怕冷又怕热,气温在 15-25T之间摄食最旺盛,过冷就会像人一样猫冬,过热就会歇伏,鲫鱼虽是广温性鱼,但大体规律也是如此。 春秋季节,气温、水温适合全天垂钓;炎热的夏季最好钓早钓晚;寒冷的冬季要选择晴朗的中午垂钓。 十三、择地钓鲫鱼: 鲫鱼胆小,喜安静。钓鲫鱼,要选择有草丛、竹木桩、砖砾、岩石、桥墩的地方下钩,这些僻静水域必然鱼多。牛滚幽、淘洗码头、水草茂密处,鱼儿有食可吃,也是钓鲫的好地方。 十四、寻洁钓鲫鱼: 鲫鱼喜欢在清洁、多氧气的水中栖息;如果水又脏又浊,鱼会感到憋闷,不想吃东西,常浮在水面嚼水,甚至窒息死亡。垂钓的水域应以浅色为上;淡绿色、淡青色次之;酱色、深褐色的污染水,腐殖质含量高,氧气不足,不宜垂钓。 十五、牵引钓钓鲫鱼: 诱饵投放以后,窝里不久就有鱼星上冒,可鱼就是不咬钩,这种情况可能是窝里有鲤鱼、草鱼之类的大鱼,鲫鱼不敢进窝吃食。 此时就应采用牵引法(也称逗钓),即在钓点上下前后左右轻轻地、缓慢地拉动渔线,诱鱼上钩,特别是鲫鱼少吃少动的冬天和初春,用红虫和蚯蚓效果特别好。 十六、换饵钓鲫鱼: 鲫鱼属条食性鱼种,荤素皆吃一草食以蚯蚓、红虫、小虾、蛆为主;素食以面粉、蚕豆粉、大米饭、红完了玉米粑为主一面钓时应革素饵变换使用鱼同人一样,有吃新的习惯,如果总吃一种食物也会腻口。 ","link":"https://itwangaijava.github.io/post/diao-yu-ji-qiao-quan-gong-lue/"},{"title":"Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备","content":"function getSTOK() { let match = location.href.match(/;stok=(.*?)//); if (!match) { return null; } return match[1]; } function execute(stok, command) { command = encodeURIComponent(command); let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A; console.log(path); return fetch(new Request(location.origin + path)); } function enableSSH() { stok = getSTOK(); if (!stok) { console.error('stok not found in URL'); return; } console.log(stok = "${stok}"); password = prompt('Input new SSH password'); if (!password) { console.error('You must input password'); return; } execute(stok, nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\\\"debug\\\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start ) .then((response) => response.text()) .then((text) => console.log(text)); console.log('New SSH password: ' + password); execute(stok, echo -e "${password}\\\\n${password}" | passwd root) .then((response) => response.text()) .then((text) => console.log(text)); } enableSSH(); 使用Putty 或 Xshell 终端连接路由器,MIWIFI默认网关地址为 192.168.31.1,用户名为 root,密码为上一步设定的密码。 使用 Vim 修改防火墙配置文件: vim /etc/config/firewall 将文件中defaults 闭包下 disable_ipv6 的值改为 0,zone 闭包下 forward 的值改为 ACCEPT 在原有的Rule 中添加一个闭包,允许IPv6外网访问路由器下游设备 config rule option name 'Allow-IPv6' option target 'ACCEPT' option family 'ipv6' list proto 'all' option src '' option dest '' 终端执行命令,重启路由器防火墙: /etc/init.d/firewall restart ","link":"https://itwangaijava.github.io/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/"},{"title":"OpenWrt 插件","content":"OpenWrt 编译 LuCI ---> Applications 添加插件应用说明 make menuconfig 进入定制界面 进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 ) 非常感谢大佬”L有大雕“更正补充,20181121 大佬源码仓库:https://github.com/coolsnowwolf/lede https://op.supes.top/packages/ 选择LuCI 配置 添加插件应用:常用 LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制 LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus + LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定 LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启 LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端) LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包) LuCI ---> Applications ---> luci-app-firewall #添加防火墙 LuCI ---> Applications ---> luci-app-frpc #内网穿透 Frp LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器 LuCI ---> Applications ---> luci-app-ramfree #释放内存 LuCI ---> Applications ---> luci-app-samba #网络共享(Samba) LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+ luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级) luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级) luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级) luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级) luci-app-ssr-plus ---> Include Include Shadowsocks Simple Obfs Plugin #SS Simple-Obfs混淆代理(Nginx) luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS) LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT) LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本 LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发) LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置 LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器 LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划 LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线 LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒 LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟 LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透 以下是全部: 注:应用后面标记 “ * ” 为最近新添加;标记“ ! ”与其他插件依赖或冲突。 LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制 LuCI ---> Applications ---> luci-app-acme #ACME自动化证书管理环境(丢弃) LuCI ---> Applications ---> luci-app-adblock #ADB广告过滤 LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus + LuCI ---> Applications ---> luci-app-adbyby #广告过滤大师(丢弃) LuCI ---> Applications ---> luci-app-adguardhome #AdGuard home广告过滤(Le库以外的插件) LuCI ---> Applications ---> luci-app-adkill #广告过滤(丢弃) LuCI ---> Applications ---> luci-app-advanced-reboot #Linksys高级重启 LuCI ---> Applications ---> luci-app-advancedsetting #系统高级设置(Le库以外的插件) LuCI ---> Applications ---> luci-app-ahcp #Ad-Hoc配置协议(AHCP) ipv6 and 双栈 自动配置协议 ! LuCI ---> Applications ---> luci-app-airplay2 #Apple AirPlay2 无损音频接收服务器 LuCI ---> Applications ---> luci-app-aliddns #阿里DDNS客户端(丢弃,集成至ddns) LuCI ---> Applications ---> luci-app-aliyundrive-webdav #阿里云盘 WebDAV 服务 LuCI ---> Applications ---> luci-app-amule #aMule下载工具 ! LuCI ---> Applications ---> luci-app-argon-config #Argon主题配置插件(Le库以外的插件) LuCI ---> Applications ---> luci-app-aria2 # Aria2下载工具 LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定 LuCI ---> Applications ---> luci-app-asterisk #支持Asterisk电话服务器 LuCI ---> Applications ---> luci-app-attendedsysupgrade #固件更新升级相关 LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启 LuCI ---> Applications ---> luci-app-baidupcs-web #百度网盘管理 LuCI ---> Applications ---> luci-app-bcp38 #BCP38网络入口过滤(不确定) LuCI ---> Applications ---> luci-app-bird1-ipv4 #对Bird1-ipv4的支持 LuCI ---> Applications ---> luci-app-bird1-ipv6 #对Bird1-ipv6的支持 LuCI ---> Applications ---> luci-app-bird4 #Bird 4(未知)(丢弃) LuCI ---> Applications ---> luci-app-bird6 #Bird 6(未知)(丢弃) LuCI ---> Applications ---> luci-app-bmx6 #BMX6路由协议 LuCI ---> Applications ---> luci-app-bmx7 #BMX7路由协议(丢弃) LuCI ---> Applications ---> luci-app-caldav #联系人(丢弃) LuCI ---> Applications ---> luci-app-cifs-mount #CIFS/SMB挂载设置 LuCI ---> Applications ---> luci-app-cifsd #CIFS/SMB网络共享 LuCI ---> Applications ---> luci-app-cjdns #加密IPV6网络相关 LuCI ---> Applications ---> luci-app-clamav #ClamAV杀毒软件 LuCI ---> Applications ---> luci-app-clash #Clash客户端(Le库以外的插件) LuCI ---> Applications ---> luci-app-commands #Shell命令模块 LuCI ---> Applications ---> luci-app-cshark #CloudShark捕获工具 LuCI ---> Applications ---> luci-app-dawn #分布式AP管理程序 LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端) LuCI ---> Applications ---> luci-app-diag-core #core诊断工具 LuCI ---> Applications ---> luci-app-diskman #磁盘管理工具 luci-app-diskman ---> Include btrfs-progs #新型的写时复制 (COW) luci-app-diskman ---> Include lsblk #lsblk命令 用于列出所有可用块设备的信息 luci-app-diskman ---> Include mdadm #mdadm命令 用于创建、管理、监控RAID设备的工具 luci-app-diskman ---> Include kmod-md-raid456 #RAID 4,5,6 驱动程序模块(丢弃) luci-app-diskman ---> Include kmod-md-linear #RAID 驱动程序模块(丢弃) LuCI ---> Applications ---> luci-app-dnscrypt-proxy #DNSCrypt解决DNS污染 LuCI ---> Applications ---> luci-app-dnsfilter #DNSFilter基于DNS的广告过滤 LuCI ---> Applications ---> luci-app-dnsforwarder #DNSForwarder防DNS污染 LuCI ---> Applications ---> luci-app-dnspod #DNSPod动态域名解析(丢弃) LuCI ---> Applications ---> luci-app-docker #Docker容器(dockerman更名为docker) LuCI ---> Applications ---> luci-app-dump1090 #民航无线频率(不确定) LuCI ---> Applications ---> luci-app-dynapoint #DynaPoint(未知) LuCI ---> Applications ---> luci-app-e2guardian #Web内容过滤器 LuCI ---> Applications ---> luci-app-easymesh #简单MESH(可有线+无线回程) LuCI ---> Applications ---> luci-app-eqos #基于IP地址限速(Le库以外的插件) LuCI ---> Applications ---> luci-app-familycloud #家庭云盘 LuCI ---> Applications ---> luci-app-fileassistant #文件管理助手(Le库以外的插件) LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包) LuCI ---> Applications ---> luci-app-firewall #添加防火墙 LuCI ---> Applications ---> luci-app-flowoffload #Turbo ACC网络加速(集成FLOW,BBR,NAT,DNS(丢弃,移至TurboACC) LuCI ---> Applications ---> luci-app-freifunk-diagnostics #freifunk组件 诊断(未知)(丢弃) LuCI ---> Applications ---> luci-app-freifunk-policyrouting #freifunk组件 策略路由(未知)(丢弃) LuCI ---> Applications ---> luci-app-freifunk-widgets #freifunk组件 索引(未知)(丢弃) LuCI ---> Applications ---> luci-app-frpc #内网穿透Frp客户端 LuCI ---> Applications ---> luci-app-frps #内网穿透Frp服务端 LuCI ---> Applications ---> luci-app-fwknopd #Firewall Knock Operator服务器 LuCI ---> Applications ---> luci-app-guest-wifi #WiFi访客网络 LuCI ---> Applications ---> luci-app-gfwlist #GFW域名列表(丢弃) LuCI ---> Applications ---> luci-app-go-aliyundrive-webdav #阿里云盘webdav协议(文件管理/同步等) * LuCI ---> Applications ---> luci-app-gost #隐蔽的https代理(Le库以外的插件) LuCI ---> Applications ---> luci-app-haproxy-tcp #HAProxy负载均衡-TCP LuCI ---> Applications ---> luci-app-hd-idle #硬盘休眠 LuCI ---> Applications ---> luci-app-hnet #Homenet Status家庭网络控制协议 LuCI ---> Applications ---> luci-app-https-dns-proxy #通过HTTPS代理为DNS提供Web UI LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec LuCI ---> Applications ---> luci-app-jd-dailybonus #京东签到服务 LuCI ---> Applications ---> luci-app-kodexplorer #KOD可道云私人网盘(与vnStat冲突 ! ) LuCI ---> Applications ---> luci-app-kooldns #VPN服务器 ddns替代方案(丢弃) LuCI ---> Applications ---> luci-app-koolproxy #KP去广告(丢弃) LuCI ---> Applications ---> luci-app-lxc #LXC容器管理 LuCI ---> Applications ---> luci-app-meshwizard #网络设置向导(丢弃) LuCI ---> Applications ---> luci-app-minidlna #完全兼容DLNA / UPnP-AV客户端的服务器软件 LuCI ---> Applications ---> luci-app-mjpg-streamer #兼容Linux-UVC的摄像头程序 LuCI ---> Applications ---> luci-app-mtwifi #MTWiFi驱动的支持 (丢弃) LuCI ---> Applications ---> luci-app-mmc-over-gpio #添加SD卡操作界面(丢弃) LuCI ---> Applications ---> luci-app-multiwan #多拨虚拟网卡(丢弃,移至syncdial) LuCI ---> Applications ---> luci-app-mwan #MWAN负载均衡(丢弃) LuCI ---> Applications ---> luci-app-music-remote-center #PCHiFi 数字转盘遥控 LuCI ---> Applications ---> luci-app-mwan3 #MWAN3负载均衡 LuCI ---> Applications ---> luci-app-mwan3helper #MWAN3分流助手 LuCI ---> Applications ---> luci-app-n2n_v2 #N2N内网穿透 N2N v2 VPN服务 LuCI ---> Applications ---> luci-app-netdata #Netdata实时监控(图形化) LuCI ---> Applications ---> luci-app-nfs #NFS网络共享 LuCI ---> Applications ---> luci-app-nft-qos #QOS流控 Nftables版 LuCI ---> Applications ---> luci-app-ngrokc #Ngrok 内网穿透(丢弃) LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器 LuCI ---> Applications ---> luci-app-noddos #NodDOS Clients 阻止DDoS攻击 LuCI ---> Applications ---> luci-app-nps #内网穿透nps LuCI ---> Applications ---> luci-app-ntpc #NTP时间同步服务器 LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务 LuCI ---> Applications ---> luci-app-olsr #OLSR配置和状态模块 LuCI ---> Applications ---> luci-app-olsr-services #OLSR服务器 LuCI ---> Applications ---> luci-app-olsr-viz #OLSR可视化 LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务(丢弃) LuCI ---> Applications ---> luci-app-openclash #运行在OpenWrt上的Clash代理客户端(Le库以外的插件) LuCI ---> Applications ---> luci-app-openvpn #OpenVPN客户端 LuCI ---> Applications ---> luci-app-openvpn-server #易于使用的OpenVPN服务器 Web-UI LuCI ---> Applications ---> luci-app-oscam #OSCAM服务器(丢弃) LuCI ---> Applications ---> luci-app-p910nd #打印服务器模块 LuCI ---> Applications ---> luci-app-pagekitec #Pagekitec内网穿透客户端 LuCI ---> Applications ---> luci-app-passwall #科学上网(Li大佬插件) Configuration ---> Include Brook #Brook代理(跨平台强加密且不可检测代理) Configuration ---> Include ChinaDNS-NG #防污染DNS服务 Configuration ---> Include Haproxy #HAProxy #HAProxy负载均衡 Configuration ---> Include Hysteria #Hysteria双边加速工具 Configuration ---> Include Kcptun #Kcptun双边加速工具 Configuration ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量) Configuration ---> Include PDNSD #DNS服务器 Configuration ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级) Configuration ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级) Configuration ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟) Configuration ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级) Configuration ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级) Configuration ---> Include Simple-Obfs (Shadowsocks plugin) #simple-Obfs简单混淆工具(Nginx) Configuration ---> Include Trojan_GO #Trojan_GO代理(直接模仿协议HTTPS) Configuration ---> Include Trojan_Plus #Trojan_Plus代理(直接模仿协议HTTPS) Configuration ---> Include V2ray #V2Ray代理 Configuration ---> Include v2ray-plugin (Shadowsocks plugin) #SS V2ray插件(WebSocket+TLS ) Configuration ---> Include Xray #Xray代理(XTLS) Configuration ---> Include Xray-Plugin (Shadowsocks Plugin) #SS Xray插件(WebSocket+TLS ) * Configuration ---> Include Dns2socks #DNS服务器(丢弃) Configuration ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器)(丢弃) Configuration ---> Include Shadowsocks #SS代理(丢弃) Configuration ---> Include Shadowsocks Server #SS服务器(丢弃) Configuration ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD加密)(丢弃) Configuration ---> Include ShadowsocksR #SSR代理(丢弃) Configuration ---> Include ShadowsocksR Server #SSR服务器(丢弃) Configuration ---> Include Https DNS Proxy(DoH) #HttpsDNS服务(丢弃) LuCI ---> Applications ---> luci-app-polipo #Polipo代理(是一个小型且快速的网页缓存代理) LuCI ---> Applications ---> luci-app-pppoe-relay #PPPoE NAT穿透 点对点协议(PPP) LuCI ---> Applications ---> luci-app-pptp-server #VPN服务器 PPTP LuCI ---> Applications ---> luci-app-privoxy #Privoxy网络代理(带过滤无缓存) LuCI ---> Applications ---> luci-app-ps3netsrv #PS3 NET服务器(用于加载蓝光/游戏ISO/PKG) LuCI ---> Applications ---> luci-app-pushbot #全能推送(钉钉推送,企业微信推送,Bark,PushPlus推送) LuCI ---> Applications ---> luci-app-qbittorrent #BT下载工具(qBittorrent) Build Version Selection (Static Build) ---> Static Build #选择静态编译版本 Build Version Selection (Static Build) ---> Dynamic Build #选择动态编译版本 LuCI ---> Applications ---> luci-app-qos #流量服务质量(QoS)流控 LuCI ---> Applications ---> luci-app-radicale #CalDAV/CardDAV同步工具 LuCI ---> Applications ---> luci-app-ramfree #释放内存 LuCI ---> Applications ---> luci-app-rclone #命令行云端同步工具 Include rclone-webui #Rclone界面 Include rclone-ng (another webui) #Rclone另一个界面 Include fuse-utils (mount cloud storage) #fuse-utils(挂载云存储)(丢弃) LuCI ---> Applications ---> luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器 LuCI ---> Applications ---> luci-app-samba #网络共享(Samba) LuCI ---> Applications ---> luci-app-samba4 #网络共享(Samba4) LuCI ---> Applications ---> luci-app-serverchan #微信/Telegram推送的插件 LuCI ---> Applications ---> luci-app-sfe #Turbo ACC网络加速(丢弃,移至TurboACC) LuCI ---> Applications ---> luci-app-shadowsocks #SS科学上网(丢弃) LuCI ---> Applications ---> luci-app-shadowsocks-libes #SS-libev服务端 LuCI ---> Applications ---> luci-app-shairplay #支持AirPlay功能 LuCI ---> Applications ---> luci-app-siitwizard #SIIT配置向导 SIIT-Wizzard LuCI ---> Applications ---> luci-app-simple-adblock #简单的广告拦截 LuCI ---> Applications ---> luci-app-smartdns #SmartDNS本地服务器(丢弃) LuCI ---> Applications ---> luci-app-softethervpn #SoftEther VPN服务器 NAT穿透 LuCI ---> Applications ---> luci-app-splash #Client-Splash是无线MESH网络的一个热点认证系统 LuCI ---> Applications ---> luci-app-sqm #流量智能队列管理(QOS) LuCI ---> Applications ---> luci-app-squid #Squid代理服务器 LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+(Le大佬插件) Include libustream-ssl ---> Include libustream-wolfssl #选择wolfSSL库(传输层安全协议) Include libustream-ssl ---> Include libustream-openssl #选择OpenSSL库(传输层安全协议) luci-app-ssr-plus ---> Include Kcptun #Kcptun双边加速工具 luci-app-ssr-plus ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量) luci-app-ssr-plus ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器) luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级) luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级) luci-app-ssr-plus ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟) luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务端(负载均衡/探测延迟) luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级) luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级) luci-app-ssr-plus ---> Include Simple-Obfs Plugin #SS Simple-Obfs混淆代理(Nginx) luci-app-ssr-plus ---> Include Trojan #Trojan代理(直接模仿协议HTTPS) luci-app-ssr-plus ---> Include Shadowsocks V2ray Plugin #SS V2ray代理(WebSocket+TLS ) luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS) luci-app-ssr-plus ---> Include Shadowsocks New Version #新SS代理(丢弃) luci-app-ssr-plus ---> Include Shadowsocks #SS代理(丢弃) luci-app-ssr-plus ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD密码) (丢弃) luci-app-ssr-plus ---> Include V2ray #V2Ray代理(丢弃) luci-app-ssr-plus ---> Include Xray (V2RAY/Trojan-GO implemented) #Xray代理(丢弃) luci-app-ssr-plus ---> Include Trojan-go #Trojan-go代理(丢弃) luci-app-ssr-plus ---> Include Shadowsocks Server #SS服务器(丢弃) luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务器(丢弃) luci-app-ssr-plus ---> Include ShadowsocksR Server #SSR服务器(丢弃) luci-app-ssr-plus ---> Include DNS2SOCKS #DNS服务器(丢弃) luci-app-ssr-plus ---> Include ShadowsocksR Socks and Tunnel(丢弃) luci-app-ssr-plus ---> Include Socks Server #socks代理服务器(丢弃) LuCI ---> Applications ---> luci-app-ssr-pro #SSR-Pro(丢弃) LuCI ---> Applications ---> luci-app-ssrserver-python #ShadowsocksR Python服务器 LuCI ---> Applications ---> luci-app-statistics #流量监控工具 LuCI ---> Applications ---> luci-app-syncdial #多拨虚拟网卡(原macvlan) LuCI ---> Applications ---> luci-app-tinyproxy #Tinyproxy是 HTTP(S)代理服务器 LuCI ---> Applications ---> luci-app-transmission #BT下载工具 LuCI ---> Applications ---> luci-app-travelmate #旅行路由器 LuCI ---> Applications ---> luci-app-ttyd #网页终端命令行 LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT) luci-app-turboacc ---> Include Shortcut-FE #Shortcut-FE 流量分载 luci-app-turboacc ---> Include BBR CCA #BBR拥塞控制算法提升TCP网络性能 luci-app-turboacc ---> Include DNSForwarder #DNS防污染 Forwarder luci-app-turboacc ---> Include DNSProxy #DNS防污染 Proxy LuCI ---> Applications ---> luci-app-udpxy #udpxy做组播服务器 LuCI ---> Applications ---> luci-app-uhttpd #uHTTPd Web服务器 LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本 UnblockNeteaseMusic Golang Version #Golang版本 UnblockNeteaseMusic NodeJS Version #NodeJS版本 LuCI ---> Applications ---> luci-app-unblockneteasemusic-go #解除网易云音乐(合并) LuCI ---> Applications ---> luci-app-unblockneteasemusic-mini #解除网易云音乐(合并) LuCI ---> Applications ---> luci-app-unbound #Unbound DNS解析器 LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发) LuCI ---> Applications ---> luci-app-usb-printer #USB 打印服务器 LuCI ---> Applications ---> luci-app-uugamebooster #UU网游加速器 LuCI ---> Applications ---> luci-app-v2ray-server #V2Ray 服务器 LuCI ---> Applications ---> luci-app-v2ray-pro #V2Ray透明代理(丢弃,集成SSR) LuCI ---> Applications ---> luci-app-verysync #微力同步 LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置 LuCI ---> Applications ---> luci-app-vnstat #vnStat网络监控(图表)(与kodexplorer冲突 ! ) LuCI ---> Applications ---> luci-app-vpnbypass #VPN BypassWebUI 绕过VPN设置 LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器 LuCI ---> Applications ---> luci-app-vssr #VSSR科学上网(je大佬插件) luci-app-vssr ---> Include Xray #Xray代理(XTLS) luci-app-vssr ---> Include Trojan #Trojan代理(直接模仿协议HTTPS) luci-app-vssr ---> Include Kcptun #Kcptun双边加速工具 luci-app-vssr ---> Include Shadowsocks Xray Plugin #SS Xray代理 luci-app-vssr ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级) LuCI ---> Applications ---> luci-app-watchcat #断网检测功能与定时重启 LuCI ---> Applications ---> luci-app-webadmin #Web管理页面设置 LuCI ---> Applications ---> luci-app-webshell #网页命令行终端(丢弃) LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划 LuCI ---> Applications ---> luci-app-wireguard #VPN服务器 WireGuard状态 LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线 LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒 LuCI ---> Applications ---> luci-app-wrtbwmon #实时流量监测 LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟 LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透 ","link":"https://itwangaijava.github.io/post/openwrt-cha-jian/"},{"title":"redmi ac2100固件","content":"更改redmi ac2100固件版本 要想刷固件,需要将路由器的固件版本改为2.0.23。但为了防止意外,强烈建议先下载官方的路由修复器。 下载路由修复器 度盘中的MIWIFIRepairTool.x86.rar压缩包,压缩可用,软件本身有使用教程 下载2.0.23版本的固件 度盘中的miwifi_rm2100_all_fb720_2.0.23.bin文件 下载后,登录路由器管理界面,打开常用设置->系统状态->升级检测,点击手动升级,将上面下载的2.0.23版本固件刷入路由器 刷入breed ps:如果是新路由器,个人认为不太需要检查坏块,所以本文中没相关的方法,有需要的可自行搜索 打开ssh 这里,我们使用openwrt官方提供的方法打开ssh 登录路由器管理界面,按f12打开开发者工具devtool,点击console,输入下列代码,并回车 复制代码 `function getSTOK() { let match = location.href.match(/;stok=(.*?)//); if (!match) { return null; } return match[1]; } function execute(stok, command) { command = encodeURIComponent(command); let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A; console.log(path); return fetch(new Request(location.origin + path)); } function enableSSH() { stok = getSTOK(); if (!stok) { console.error('stok not found in URL'); return; } console.log(stok = "${stok}"); password = prompt('Input new SSH password'); if (!password) { console.error('You must input password'); return; } execute(stok, nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\\\"debug\\\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start ) .then((response) => response.text()) .then((text) => console.log(text)); console.log('New SSH password: ' + password); execute(stok, echo -e "${password}\\\\n${password}" | passwd root) .then((response) => response.text()) .then((text) => console.log(text)); } enableSSH();` 复制代码 运行成功会返回一个弹窗,要你设置ssh的密码,输入密码点确定。默认帐号为root 通过ssh连接路由器,这里推荐xshell:https://www.netsarang.com/zh/xshell/ xshell可以免费使用 打开xshell,新建会话,主机项填路由ip,点连接。然后输入相应的帐号密码。第一次连接会要求保存凭证,接受并保存即可。 这里,暂时先告一段落,接下来是下载breed。 利用winscp传入breed 下载度盘中的breed-mt7621-xiaomi-r3g.bin和WinSCP-5.17.10-Setup.exe 安装winscp,新建会话,连接协议选scp,建立和路由器的连接 然后将breed上传到路由器的/tmp目录(软件的两边选好路径之后,选中文件,右键点upload上传) 然后,回到xshell,输入命令cd /tmp 然后输入ls看看是否上传成功 之后输入下面的命令将breed刷入路由器 mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader 刷入之后,关闭路由器电源,按住reset,重新打开路由器电源,直到路由器的system灯变成蓝灯闪烁后,松开reset键 浏览器访问192.168.1.1,可以看到breed被刷入成功 点击环境变量编辑,新增两个变量 字段xiaomi.r3g.bootfw,值为2 刷入openwrt底包(可选) ps:如果不想刷openwrt,不建议刷入底包 下载度盘中的openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-initramfs-kernel.bin,点击breed中的固件更新 勾选固件->选择文件->上传文件 即可刷入openwrt低包,然后用这个临时的openwrt去刷想要的openwrt即可 临时底包刷固件/breed刷固件教程:https://www.right.com.cn/forum/thread-4025861-1-1.html 刷入openwrt/padavan 升级固件的方法可看上一小节 openwrt可下载度盘中的03.03-openwrt-ramips-mt7621-redmi-ac2100-squashfs-sysupgrade.bin padavan可下载度盘中的RM2100_3.4.3.9-099.trx ","link":"https://itwangaijava.github.io/post/redmi-ac2100-gu-jian/"},{"title":"csdn破解登陆复制","content":"打开开发者工具(F12) 输入: document.designMode='on' 即可 ","link":"https://itwangaijava.github.io/post/csdn-po-jie-deng-lu-fu-zhi/"},{"title":"win10企业版激活","content":" slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D slmgr -skms kms.03k.org slmgr -ato slmgr -dlv ","link":"https://itwangaijava.github.io/post/win10-qi-ye-ban-ji-huo/"},{"title":"解决升级Win10后自带App应用的闪退、崩溃问题","content":"输入“PowerShell”,回车。 解决升级Win10后自带App/应用的闪退、崩溃问题 Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\\AppXManifest.xml"} ","link":"https://itwangaijava.github.io/post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/"},{"title":"简单的EFHelper","content":"using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace DAL { //new():实例化对象,对泛型的约束 public class EFHelper<TDataBase> where TDataBase : DbContext,new() { static EFHelper<TDataBase> instance = null; //私有化构造函数 EF(Entity FrameWork):DatabaseFirst,ModelFirst,CodeFirst private EFHelper() { } /// <summary> /// 返回当前对象实例 /// </summary> /// <returns></returns> public static EFHelper<TDataBase> GetInstance() { if (instance == null) { instance = new EFHelper<TDataBase>(); } return instance; } TDataBase db = null; public TDataBase GetDataContext() { if (db == null) { db = new TDataBase(); } return db; } /// <summary> /// 返回所有数据 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public List<T> GetList<T>() where T : class { //单例,创建者,观察者(发布订阅),适配器,门面,职责链,模板,工厂,抽象工厂 var db = GetDataContext(); return db.Set<T>().ToList(); } /// <summary> /// 根据条件查询 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="predicate"></param> /// <returns>集合对象</returns> public List<T> GetList<T>(Expression<Func<T,bool>> predicate) where T:class { var db = GetDataContext(); return db.Set<T>().Where(predicate).ToList(); } /// <summary> /// 根据条件查询 /// 使用EF时必须每张表都有主键ID /// EF:修改删除时必须先获取要修改的数据对象 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="predicate"></param> /// <returns>一个对象</returns> public T GetSingle<T>(Expression<Func<T, bool>> predicate) where T : class { var db = GetDataContext(); return db.Set<T>().FirstOrDefault(predicate); } /// <summary> /// 插入一个实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Entity"></param> /// <returns></returns> public T InsertEntity<T>(T Entity) where T : class { var db = GetDataContext(); try { T result = db.Set<T>().Add(Entity); db.SaveChanges(); return result; } catch (Exception ex) { return null; } } /// <summary> /// 修改 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Entity"></param> /// <returns></returns> public bool Update<T>(T Entity) where T : class { var db = GetDataContext(); var entry = db.Entry(Entity); //System.Data.Entity entry.State = System.Data.EntityState.Modified; return db.SaveChanges() > 0 ? true : false; } /// <summary> /// 传入实体删除 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="Entity"></param> /// <returns></returns> public bool Delete<T>(T Entity) where T : class { var db = GetDataContext(); db.Set<T>().Remove(Entity); return db.SaveChanges() > 0 ? true : false; } /// <summary> /// 分布查询 /// </summary> /// <typeparam name="T">查询的对象</typeparam> /// <typeparam name="TKey">排序字段类型</typeparam> /// <param name="predicate">查询条件</param> /// <param name="keySelector">排序字段</param> /// <param name="pageIndex">当前页数</param> /// <param name="pageNum">每页条数</param> /// <param name="orderType">排序类型,1:升序,2:降序</param> /// <returns>数据列表</returns> public List<T> GetListByPager<T , TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> keySelector, int pageIndex, int pageNum , int orderType) where T : class { var db = GetDataContext(); if (orderType == 1) { return db.Set<T>().Where(predicate).OrderBy(keySelector).Skip((pageIndex - 1) * pageNum).Take(pageNum).ToList(); } else { return db.Set<T>().Where(predicate).OrderByDescending(keySelector).Skip((pageIndex - 1) * pageNum).Take(pageNum).ToList(); } } /// <summary> /// 使用SQL增删改 /// </summary> /// <param name="sqlstr"></param> /// <param name="pars"></param> public int GetPro(string sqlstr, SqlParameter[] pars) { var db = GetDataContext(); return db.Database.ExecuteSqlCommand(sqlstr, pars); } /// <summary> /// 使用SQL查询数据 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="sqlstr"></param> /// <param name="pars"></param> /// <returns></returns> public List<T> GetSqlStr<T>(string sqlstr, SqlParameter[] pars) { var db = GetDataContext(); return db.Database.SqlQuery<T>(sqlstr, pars).ToList(); } } } ","link":"https://itwangaijava.github.io/post/jian-dan-de-efhelper/"},{"title":"MYsql乱码.txt","content":"刚开始的时候普通连接出现乱码,我是这么解决的 <add name="blogdbEntities" connectionString="metadata=res://*/Models.BlogDB.csdl|res://*/Models.BlogDB.ssdl|res://*/Models.BlogDB.msl;provider=Devart.Data.MySql;provider connection string=&quot;user id=root;password=root1234;host=127.0.0.1;database=blogdb;persist security info=True;Character Set=utf8&quot;" providerName="System.Data.EntityClient" /> 把字符集给指定下。 ","link":"https://itwangaijava.github.io/post/mysql-luan-ma-txt/"},{"title":"webapi全局返回json.txt","content":"配置Global.asax文件 //webapi全局返回json GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); ","link":"https://itwangaijava.github.io/post/webapi-quan-ju-fan-hui-jsontxt/"},{"title":"XSS测试","content":"alert(/XSS/) 测试基本跨站代码 <Script>alert(/XSS/)</script> 大小写混合测试 <sCrIpT>alert(/XSS/)</sCrIpT> 多重嵌套测试 <scr<script>ipt>alert(/XSS/)<scr<script>ipt> ","link":"https://itwangaijava.github.io/post/ce-shi/"},{"title":"树莓派配置wifi","content":"创建wpa_supplicant.conf文件 到boot分区 文件输入以下内容 country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WiFi名称" psk="密码" key_mgmt=WPA-PSK priority=1 } network={ ssid="WiFi名称" psk="密码" key_mgmt=WPA-PSK priority=2 scan_ssid=1 } ","link":"https://itwangaijava.github.io/post/shu-mei-pai-pei-zhi-wifi/"},{"title":"Apple ID换区","content":"转换成美国区 Apple ID 可填写如下信息: 邮编:98133 地址:One Microsoft Way Redmond WA 98052-6399 电话:(882)882-8080 转换成台湾地区 Apple ID 可填写如下信息: 邮编:11010 地址:台北市 信义区 松仁路7号 8楼 电话:0800-008833 转换成香港地区 Apple ID 可填写如下信息: 邮编:999077 地址:数码港道100号 数码港二座十三楼 电话:2388-9600 转换成日本 Apple ID 可填写如下信息: 東京王子大飯店 地址: 郵遞區號:105-8560 東京都港區芝公園3-3-1, 日本 電話: +81-(0)3-3432-1111 或 信用卡处选择“None”,Code处不添 phonetic name处添“None” postal-code处添“584-7766” prefecture处选择“osaka”, city处添“kyoto” adress处添“None” phone处添“556 4343221” ","link":"https://itwangaijava.github.io/post/apple-id-huan-qu/"},{"title":"net core iis restful webapi put delete 405 Method Not Allowed","content":"1、在web.config文件中system.webServer节点添加如下配置 <modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule" /> </modules> 2、重启对应的网站 ","link":"https://itwangaijava.github.io/post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/"},{"title":"git入门","content":"$ git init $ git remote add origin https://gitee.com/用户个性地址/HelloGitee.git 这样就完成了版本的一次初始化。 接下去,进入你已经初始化好的或者克隆仓库的目录,然后执行: $ git pull origin master 修改/添加文件,否则与原文件相比就没有变动。 $ git add . $ git commit -m "第一次提交" $ git push origin master ","link":"https://itwangaijava.github.io/post/git-ru-men/"},{"title":"电信光猫默认超级账号","content":"超级账号 telecomadmin 密码 nE7jA%5m ","link":"https://itwangaijava.github.io/post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/"},{"title":"Visual Studio 2022(VS2022)","content":"Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterprise: VHF9H-NXBBB-638P6-6JHCY-88JWH ","link":"https://itwangaijava.github.io/post/visual-studio-2022vs2022/"},{"title":"windows 出现在此系统上禁止运行脚本","content":"执行:get-ExecutionPolicy,返回状态:Restricted,表示状态是禁止的, 然后要设置下 执行:set-ExecutionPolicy RemoteSigned 开启 选择Y ","link":"https://itwangaijava.github.io/post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/"},{"title":"linux部署dotnet环境","content":"首先我们得去官网上下载 .net core sdk 和 runtime 下载地址: https://dotnet.microsoft.com/download/dotnet-core/ $ mkdir -p dotnet $ tar -zxf dotnet-runtime-6.0.2-linux-arm64.tar.gz -C ./dotnet/ 移动与软链接 首先要把 dotnet 文件夹移动到 /usr/share/ 目录下 $ sudo mv dotnet /usr/share/dotnet/ 移动过去之后,再来创建个软连接 $ sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet ok,现在重启下终端或者ssh,你就可以开始使用dotnet了 注意可能需要安装libicu sudo apt-get install libicu-dev ","link":"https://itwangaijava.github.io/post/linux-bu-shu-dotnet-huan-jing/"},{"title":"mysql远程访问 root","content":"命令一: GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 命令二: FLUSH PRIVILEGES; ","link":"https://itwangaijava.github.io/post/mysql-yuan-cheng-fang-wen-root/"},{"title":"树莓派换清华源","content":"sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list 将原文件内容替换成如下: [arch=armhf] deb [arch=arm64] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak sudo nano /etc/apt/sources.list.d/raspi.list 将原文件内容替换成如下: deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main 更新源 sudo apt-get update gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E gpg --export --armor 9165938D90FDDD2E| sudo apt-key add - ","link":"https://itwangaijava.github.io/post/shu-mei-pai-huan-qing-hua-yuan/"},{"title":"增加swap","content":"首先dd出一个swap文件比如 sudo dd if=/dev/zero of=/swapfile bs=1024 count=4096000 这样我们就有了一个4g的swapfile在根目录下 ls -alh /swapfile -rw-r--r-- 1 root root 4.0G Jan 2 03:22 /swapfile 接着我们格式化它 sudo mkswap /swapfile 修改文件的权限和所有者 sudo chown root:root /swapfile sudo chmod 0600 /swapfile 接着启用它 sudo swapon /swapfile 查看下是不是启用成功 free -m 当然如果不设置开机挂载的话,重启之后要重新执行 sudo swapon /swapfile 所以我们要设置开机自动挂载,编辑下面这个文件 sudo vim /etc/fstab 添加上 /swapfile swap swap defaults 0 0 重启验证下就好 ","link":"https://itwangaijava.github.io/post/zeng-jia-swap/"},{"title":"roo分区扩容","content":"U盘是这个路径 sudo fdisk /dev/sda 1、进入分区管理 输入p,看到两个分区,第一个分区不要动,我们改动第二个分区。 注意,记住/dev/mmcblk0p2的start起始块数 sudo fdisk /dev/mmcblk0 2、删除分区 输入d , 再输入2,删除第二分区 接着输入p,确认只剩下一个分区 3、创建分区 输入n,创建一个分区 输入p,建立主分区 输入2,输入起始块数 接着回车,默认能够分配到最大 最后输入y,确认 4、保存并重启 输入w,保存更改 5、修护分区 输入 sudo resize2fs /dev/mmcblk0p2 最后再查看一下 输入df -h 输入sudo reboot,重启 ","link":"https://itwangaijava.github.io/post/roo-fen-qu-kuo-rong/"},{"title":"linux定时任务","content":"#查看任务 crontab -l 编辑crontab 任务: sudo crontab -e 再文件的最后一行添加以下这行内容: 如: 0 1 * * * python example.py 0 1 代表 每天的01:00 每过5分钟执行 */5 * * * * dotnet /home/pi/GetIP/net6.0/GetIP.dll 每小时的第五分钟执行 05 * * * * curl localhost/system/dns/dnns.php?ac=ToDNS 编辑完毕后,需要执行如下命令 sudo /etc/init.d/cron restart ","link":"https://itwangaijava.github.io/post/linux-ding-shi-ren-wu/"},{"title":"Termux使用ssh链接","content":"1.更改密码(或者说设定初始密码) 输入:passwd 2.安装openssh pkg upgrade pkg install openssh 开启ssh并连接 在安卓上开启ssh请执行这一句: sshd 如果要关闭执行这一句: pkill sshd ssh -p 8022 user@IP ","link":"https://itwangaijava.github.io/post/termux-shi-yong-ssh-lian-jie/"}]} \ No newline at end of file diff --git a/api-info/index.html b/api-info/index.html new file mode 100644 index 0000000..c329e34 --- /dev/null +++ b/api-info/index.html @@ -0,0 +1 @@ +{"posts":[{"fileName":"sql-server-mi-yao-ji-jin","abstract":"","description":"SQL Server 2019 Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-8468J Strandard:PMBDC-F...","title":"SQL Server 密钥集锦","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/sql-server-mi-yao-ji-jin/","stats":{"text":"1 min read","time":46000,"words":125,"minutes":1},"isTop":false,"toc":"","date":"2023-11-01 10:33:15","dateFormat":"2023-11-01"},{"fileName":"jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu","abstract":"","description":"<modules runAllManagedModulesForAllRequests="true"> <remove name="WebDAVModule"/> &l...","title":"解决ASP.Net Core项目IIS在默认情况下不支持PUT和DELETE请求","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/","stats":{"text":"1 min read","time":6000,"words":17,"minutes":1},"isTop":false,"toc":"","date":"2023-08-29 14:14:38","dateFormat":"2023-08-29"},{"fileName":"esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai","abstract":"","description":"1、开启维护模式: esxcli system maintenanceMode set --enable true 2、上传 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 到虚拟机存储,...","title":"Esxi 安装驱动 复制速度加快","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/","stats":{"text":"1 min read","time":49000,"words":166,"minutes":1},"isTop":false,"toc":"","date":"2023-08-29 09:06:07","dateFormat":"2023-08-29"},{"fileName":"js-zhi-xing-hua-kuai-yan-zheng","abstract":"","description":"function slide (id) { var slider = document.getElementById(id), container = slider.parentNode; var rect = slider.getB...","title":"js执行滑块验证(无过程)","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/js-zhi-xing-hua-kuai-yan-zheng/","stats":{"text":"1 min read","time":46000,"words":123,"minutes":1},"isTop":false,"toc":"","date":"2023-08-09 14:30:45","dateFormat":"2023-08-09"},{"fileName":"anaconda3-yu-huan-yuan","abstract":"","description":"在terminal中输入 conda config --set show_channel_urls yes, 这一步之后会在C盘->用户->(你的用户名)这一文件夹下创建一个.condarc文件(在这个文件下我们可以修改cond...","title":"anaconda3与换源","tags":[{"index":-1,"name":"软件安装","slug":"ruan-jian-an-zhuang","used":true,"link":"https://itwangaijava.github.io/tag/ruan-jian-an-zhuang/"}],"feature":"","link":"https://itwangaijava.github.io/post/anaconda3-yu-huan-yuan/","stats":{"text":"2 min read","time":96000,"words":343,"minutes":2},"isTop":false,"toc":"","date":"2023-07-07 16:59:15","dateFormat":"2023-07-07"},{"fileName":"diao-yu-zheng-que-kan-piao-ji-qiao","abstract":"","description":"1、浮漂轻点轻触。多为鲫鱼在试探,连点连触则提竿。 2、浮漂微微上升一点,徐徐下沉一目半目。说明鱼已吃稳,可提竿。 3、尾漂慢慢地从顶部,只送半粒到一粒,浮漂不动(有时被误认为是小鱼或碰线),是提竿时机。 4.浮漂有的时候会慢慢的往下沉。不...","title":"钓鱼正确看漂技巧 ","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/diao-yu-zheng-que-kan-piao-ji-qiao/","stats":{"text":"3 min read","time":126000,"words":613,"minutes":3},"isTop":false,"toc":"","date":"2022-10-08 16:28:57","dateFormat":"2022-10-08"},{"fileName":"diao-yu-ji-qiao-quan-gong-lue","abstract":"","description":"一、传统立漂沉底钓鲫鱼: 这是比较普遍的钓法,我国南北东西都有不少钓友采用此种方法。即用立漂或散漂,铅坠沉底,鱼钩距铅坠的脑线大约25毫米。垂钓时鱼漂调整到直立,露出部分,便于判断鱼讯即可(散漂则没入水中两三粒,浮在水面三四粒)。 此法的优...","title":"钓鱼技巧全攻略","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/diao-yu-ji-qiao-quan-gong-lue/","stats":{"text":"8 min read","time":439000,"words":2181,"minutes":8},"isTop":false,"toc":"","date":"2022-10-08 15:46:49","dateFormat":"2022-10-08"},{"fileName":"redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei","abstract":"","description":"function getSTOK() { let match = location.href.match(/;stok=(.*?)//); if (!match) { return null; } return match[1]; } fu...","title":"Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/","stats":{"text":"2 min read","time":94000,"words":298,"minutes":2},"isTop":false,"toc":"","date":"2022-03-28 20:25:21","dateFormat":"2022-03-28"},{"fileName":"openwrt-cha-jian","abstract":"","description":"OpenWrt 编译 LuCI ---> Applications 添加插件应用说明 make menuconfig 进入定制界面 进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包,...","title":"OpenWrt 插件","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/openwrt-cha-jian/","stats":{"text":"21 min read","time":1247000,"words":4177,"minutes":21},"isTop":false,"toc":"\n","date":"2022-03-28 14:08:47","dateFormat":"2022-03-28"},{"fileName":"redmi-ac2100-gu-jian","abstract":"","description":"更改redmi ac2100固件版本 要想刷固件,需要将路由器的固件版本改为2.0.23。但为了防止意外,强烈建议先下载官方的路由修复器。 下载路由修复器 度盘中的MIWIFIRepairTool.x86.rar压缩包,压缩可用,软件本身有...","title":"redmi ac2100固件","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/redmi-ac2100-gu-jian/","stats":{"text":"4 min read","time":227000,"words":892,"minutes":4},"isTop":false,"toc":"","date":"2022-03-27 15:14:23","dateFormat":"2022-03-27"},{"fileName":"csdn-po-jie-deng-lu-fu-zhi","abstract":"","description":"打开开发者工具(F12) 输入: document.designMode='on' 即可 ","title":"csdn破解登陆复制","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/csdn-po-jie-deng-lu-fu-zhi/","stats":{"text":"1 min read","time":3000,"words":15,"minutes":1},"isTop":false,"toc":"","date":"2022-03-25 15:22:21","dateFormat":"2022-03-25"},{"fileName":"win10-qi-ye-ban-ji-huo","abstract":"","description":" slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D slmgr -skms kms.03k.org slmgr -ato slmgr -dlv ...","title":"win10企业版激活","tags":[{"index":-1,"name":"windows","slug":"-abEMiMjQ","used":true,"link":"https://itwangaijava.github.io/tag/-abEMiMjQ/"}],"feature":"","link":"https://itwangaijava.github.io/post/win10-qi-ye-ban-ji-huo/","stats":{"text":"1 min read","time":6000,"words":16,"minutes":1},"isTop":false,"toc":"","date":"2022-03-25 15:18:45","dateFormat":"2022-03-25"},{"fileName":"jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti","abstract":"","description":"输入“PowerShell”,回车。 解决升级Win10后自带App/应用的闪退、崩溃问题 Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMo...","title":"解决升级Win10后自带App应用的闪退、崩溃问题","tags":[{"index":-1,"name":"windows","slug":"-abEMiMjQ","used":true,"link":"https://itwangaijava.github.io/tag/-abEMiMjQ/"}],"feature":"","link":"https://itwangaijava.github.io/post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/","stats":{"text":"1 min read","time":10000,"words":36,"minutes":1},"isTop":false,"toc":"","date":"2022-03-25 15:17:53","dateFormat":"2022-03-25"},{"fileName":"jian-dan-de-efhelper","abstract":"","description":"using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Linq.Expressio...","title":"简单的EFHelper","tags":[{"index":-1,"name":"C#","slug":"bftlFwBmA","used":true,"link":"https://itwangaijava.github.io/tag/bftlFwBmA/"}],"feature":"","link":"https://itwangaijava.github.io/post/jian-dan-de-efhelper/","stats":{"text":"6 min read","time":313000,"words":919,"minutes":6},"isTop":false,"toc":"","date":"2022-03-25 15:16:37","dateFormat":"2022-03-25"},{"fileName":"mysql-luan-ma-txt","abstract":"","description":"刚开始的时候普通连接出现乱码,我是这么解决的 <add name="blogdbEntities" connectionString="metadata=res://*/Models.BlogDB.csd...","title":"MYsql乱码.txt","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/mysql-luan-ma-txt/","stats":{"text":"1 min read","time":27000,"words":88,"minutes":1},"isTop":false,"toc":"","date":"2022-03-25 15:14:42","dateFormat":"2022-03-25"},{"fileName":"webapi-quan-ju-fan-hui-jsontxt","abstract":"","description":"配置Global.asax文件 //webapi全局返回json GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear(); ...","title":"webapi全局返回json.txt","tags":[{"index":-1,"name":"C#","slug":"bftlFwBmA","used":true,"link":"https://itwangaijava.github.io/tag/bftlFwBmA/"}],"feature":"","link":"https://itwangaijava.github.io/post/webapi-quan-ju-fan-hui-jsontxt/","stats":{"text":"1 min read","time":4000,"words":17,"minutes":1},"isTop":false,"toc":"","date":"2022-03-25 15:13:37","dateFormat":"2022-03-25"},{"fileName":"ce-shi","abstract":"","description":"alert(/XSS/) 测试基本跨站代码 <Script>alert(/XSS/)</script> 大小写混合测试 <sCrIpT>alert(/XSS/)</sCrIpT> 多重嵌套测试...","title":"XSS测试","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/ce-shi/","stats":{"text":"1 min read","time":16000,"words":55,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 16:05:49","dateFormat":"2022-03-23"},{"fileName":"shu-mei-pai-pei-zhi-wifi","abstract":"","description":"创建wpa_supplicant.conf文件 到boot分区 文件输入以下内容 country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_confi...","title":"树莓派配置wifi","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/shu-mei-pai-pei-zhi-wifi/","stats":{"text":"1 min read","time":20000,"words":65,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:14:23","dateFormat":"2022-03-23"},{"fileName":"apple-id-huan-qu","abstract":"","description":"转换成美国区 Apple ID 可填写如下信息: 邮编:98133 地址:One Microsoft Way Redmond WA 98052-6399 电话:(882)882-8080 转换成台湾地区 Apple ID 可填写如下信息: ...","title":"Apple ID换区","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/apple-id-huan-qu/","stats":{"text":"1 min read","time":49000,"words":199,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:13:01","dateFormat":"2022-03-23"},{"fileName":"net-core-iis-restful-webapi-put-delete-405-method-not-allowed","abstract":"","description":"1、在web.config文件中system.webServer节点添加如下配置 <modules runAllManagedModulesForAllRequests="false"> <remove...","title":"net core iis restful webapi put delete 405 Method Not Allowed","tags":[{"index":-1,"name":"C#","slug":"bftlFwBmA","used":true,"link":"https://itwangaijava.github.io/tag/bftlFwBmA/"}],"feature":"","link":"https://itwangaijava.github.io/post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/","stats":{"text":"1 min read","time":12000,"words":41,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:11:31","dateFormat":"2022-03-23"},{"fileName":"git-ru-men","abstract":"","description":"$ git init $ git remote add origin https://gitee.com/用户个性地址/HelloGitee.git 这样就完成了版本的一次初始化。 接下去,进入你已经初始化好的或者克隆仓库的目录,然后执行:...","title":"git入门","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/git-ru-men/","stats":{"text":"1 min read","time":23000,"words":96,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:10:13","dateFormat":"2022-03-23"},{"fileName":"dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao","abstract":"","description":"超级账号 telecomadmin 密码 nE7jA%5m ","title":"电信光猫默认超级账号","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/","stats":{"text":"1 min read","time":2000,"words":9,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:09:20","dateFormat":"2022-03-23"},{"fileName":"visual-studio-2022vs2022","abstract":"","description":"Pro: TD244-P4NB7-YQ6XK-Y8MMM-YWV2J Enterprise: VHF9H-NXBBB-638P6-6JHCY-88JWH ","title":"Visual Studio 2022(VS2022)","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/visual-studio-2022vs2022/","stats":{"text":"1 min read","time":4000,"words":12,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:08:48","dateFormat":"2022-03-23"},{"fileName":"windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben","abstract":"","description":"执行:get-ExecutionPolicy,返回状态:Restricted,表示状态是禁止的, 然后要设置下 执行:set-ExecutionPolicy RemoteSigned 开启 选择Y ","title":"windows 出现在此系统上禁止运行脚本","tags":[{"index":-1,"name":"windows","slug":"-abEMiMjQ","used":true,"link":"https://itwangaijava.github.io/tag/-abEMiMjQ/"}],"feature":"","link":"https://itwangaijava.github.io/post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/","stats":{"text":"1 min read","time":7000,"words":33,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 10:07:35","dateFormat":"2022-03-23"},{"fileName":"linux-bu-shu-dotnet-huan-jing","abstract":"","description":"首先我们得去官网上下载 .net core sdk 和 runtime 下载地址: https://dotnet.microsoft.com/download/dotnet-core/ $ mkdir -p dotnet $ tar -zx...","title":"linux部署dotnet环境","tags":[{"index":-1,"name":"linux","slug":"4ng9AvzFm","used":true,"link":"https://itwangaijava.github.io/tag/4ng9AvzFm/"}],"feature":"","link":"https://itwangaijava.github.io/post/linux-bu-shu-dotnet-huan-jing/","stats":{"text":"1 min read","time":36000,"words":131,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:21:55","dateFormat":"2022-03-23"},{"fileName":"mysql-yuan-cheng-fang-wen-root","abstract":"","description":"命令一: GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 命令二: FLUSH PRIVILEGES; ...","title":"mysql远程访问 root","tags":[{"index":-1,"name":"数据库","slug":"SPQCRxxpr","used":true,"link":"https://itwangaijava.github.io/tag/SPQCRxxpr/"}],"feature":"","link":"https://itwangaijava.github.io/post/mysql-yuan-cheng-fang-wen-root/","stats":{"text":"1 min read","time":6000,"words":20,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:21:05","dateFormat":"2022-03-23"},{"fileName":"shu-mei-pai-huan-qing-hua-yuan","abstract":"","description":"sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo nano /etc/apt/sources.list 将原文件内容替换成如下: [arch=armhf] deb [a...","title":"树莓派换清华源","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/shu-mei-pai-huan-qing-hua-yuan/","stats":{"text":"1 min read","time":45000,"words":133,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:20:12","dateFormat":"2022-03-23"},{"fileName":"zeng-jia-swap","abstract":"","description":"首先dd出一个swap文件比如 sudo dd if=/dev/zero of=/swapfile bs=1024 count=4096000 这样我们就有了一个4g的swapfile在根目录下 ls -alh /swapfile -rw-...","title":"增加swap","tags":[{"index":-1,"name":"linux","slug":"4ng9AvzFm","used":true,"link":"https://itwangaijava.github.io/tag/4ng9AvzFm/"}],"feature":"","link":"https://itwangaijava.github.io/post/zeng-jia-swap/","stats":{"text":"1 min read","time":44000,"words":170,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:19:29","dateFormat":"2022-03-23"},{"fileName":"roo-fen-qu-kuo-rong","abstract":"","description":"U盘是这个路径 sudo fdisk /dev/sda 1、进入分区管理 输入p,看到两个分区,第一个分区不要动,我们改动第二个分区。 注意,记住/dev/mmcblk0p2的start起始块数 sudo fdisk /dev/mmcblk...","title":"roo分区扩容","tags":[{"index":-1,"name":"linux","slug":"4ng9AvzFm","used":true,"link":"https://itwangaijava.github.io/tag/4ng9AvzFm/"}],"feature":"","link":"https://itwangaijava.github.io/post/roo-fen-qu-kuo-rong/","stats":{"text":"1 min read","time":42000,"words":183,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:18:44","dateFormat":"2022-03-23"},{"fileName":"linux-ding-shi-ren-wu","abstract":"","description":"#查看任务 crontab -l 编辑crontab 任务: sudo crontab -e 再文件的最后一行添加以下这行内容: 如: 0 1 * * * python example.py 0 1 代表 每天的01:00 每过5分钟执行 ...","title":"linux定时任务","tags":[{"index":-1,"name":"linux","slug":"4ng9AvzFm","used":true,"link":"https://itwangaijava.github.io/tag/4ng9AvzFm/"}],"feature":"","link":"https://itwangaijava.github.io/post/linux-ding-shi-ren-wu/","stats":{"text":"1 min read","time":26000,"words":99,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:17:22","dateFormat":"2022-03-23"},{"fileName":"termux-shi-yong-ssh-lian-jie","abstract":"","description":"1.更改密码(或者说设定初始密码) 输入:passwd 2.安装openssh pkg upgrade pkg install openssh 开启ssh并连接 在安卓上开启ssh请执行这一句: sshd 如果要关闭执行这一句: pkill...","title":"Termux使用ssh链接","tags":[],"feature":"","link":"https://itwangaijava.github.io/post/termux-shi-yong-ssh-lian-jie/","stats":{"text":"1 min read","time":15000,"words":63,"minutes":1},"isTop":false,"toc":"","date":"2022-03-23 09:14:49","dateFormat":"2022-03-23"}],"tags":[{"index":-1,"name":"软件安装","slug":"ruan-jian-an-zhuang","used":true,"link":"https://itwangaijava.github.io/tag/ruan-jian-an-zhuang/","count":1},{"index":-1,"name":"windows","slug":"-abEMiMjQ","used":true,"link":"https://itwangaijava.github.io/tag/-abEMiMjQ/","count":3},{"index":-1,"name":"C#","slug":"bftlFwBmA","used":true,"link":"https://itwangaijava.github.io/tag/bftlFwBmA/","count":3},{"index":-1,"name":"linux","slug":"4ng9AvzFm","used":true,"link":"https://itwangaijava.github.io/tag/4ng9AvzFm/","count":4},{"index":-1,"name":"数据库","slug":"SPQCRxxpr","used":true,"link":"https://itwangaijava.github.io/tag/SPQCRxxpr/","count":1}],"menus":[{"link":"/","name":"首页","openType":"Internal"},{"link":"/archives","name":"归档","openType":"Internal"},{"link":"/tags","name":"标签","openType":"Internal"},{"link":"/about","name":"关于","openType":"Internal"}],"themeConfig":{"themeName":"gridea-theme-pure","postPageSize":10,"archivesPageSize":50,"siteName":"itwangaijava","siteDescription":"温故而知新,记录美好生活","footerInfo":"
\n @2021-2022\n
","showFeatureImage":false,"domain":"https://itwangaijava.github.io","postUrlFormat":"SLUG","tagUrlFormat":"SLUG","dateFormat":"YYYY-MM-DD","feedFullText":true,"feedCount":10,"archivesPath":"archives","postPath":"post","tagPath":"tag"},"customConfig":{"APP_ID":"","APP_KEY":"","about":"

记录点点滴滴

\n","avatar":"","caf":"#84fab0","ccf":"#5f6169","ccs":"#999fa7","ctf":"#ffffff","cts":"#dddddd","customCss":"","descfriend":"","dribbble":"","facebook":"","friends":[],"ga":"","github":"","isEnabledCustomColor":false,"pageSize":"5","placeholder":"Just Go Go","recordIp":false,"skin":"gray","twitter":"","vMaxWidth":"1000","vPadding":"2.5%","vPercentWidth":"100","valine":false,"visitor":false,"weibo":"","zhihu":""},"utils":{"now":1698806005922}} diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..8e1cc21 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,562 @@ + + + + + + +归档 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+

归档

+ + +
+ +

2023

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

2022

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ +
+
+
+ + + + +
+
+ + diff --git a/atom.xml b/atom.xml new file mode 100644 index 0000000..f647ee3 --- /dev/null +++ b/atom.xml @@ -0,0 +1,637 @@ + + + https://itwangaijava.github.io + itwangaijava + 2023-11-01T02:33:31.438Z + https://github.com/jpmonette/feed + + + 温故而知新,记录美好生活 + https://itwangaijava.github.io/images/avatar.png + https://itwangaijava.github.io/favicon.ico + All rights reserved 2023, itwangaijava + + <![CDATA[SQL Server 密钥集锦]]> + https://itwangaijava.github.io/post/sql-server-mi-yao-ji-jin/ + + + 2023-11-01T02:33:15.000Z + SQL Server 2019
+Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G
+Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-8468J
+Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4
+Web:33QQK-WWQNB-G6T46-C86YB-TX2PH

+

SQL Server 2017
+Enterprise:TDKQD-PKV44-PJT4N-TCJG2-3YJ6B
+Enterprise Core:6GPYM-VHN83-PHDM2-Q9T2R-KBV83
+Strandard:PHDV4-3VJWD-N7JVP-FGPKY-XBV89
+Web:WV79P-7K6YG-T7QFN-M3WHF-37BXC

+

SQL Server 2016
+Enterprise:MDCJV-3YX8N-WG89M-KV443-G8249
+Enterprise Core:TBR8B-BXC4Y-298NV-PYTBY-G3BCP
+Standard:B9GQY-GBG4J-282NY-QRG4X-KQBCR
+Web:BXJTY-X3GNH-WHTHG-8V3XK-T8243

+

SQL Server 2014
+Business Intelligence:GJPF4-7PTW4-BB9JH-BVP6M-WFTMJ
+Developer:82YJF-9RP6B-YQV9M-VXQFR-YJBGX
+Enterprise:27HMJ-GH7P9-X2TTB-WPHQC-RG79R
+Enterprise Core:TJYBJ-8YGH6-QK2JJ-M9DFB-D7M9D
+Strandard:P7FRV-Y6X6Y-Y8C6Q-TB4QR-DMTTK
+Web:J9MBB-R8PMP-R8WTW-8JJRD-C6GGW

+]]>
+
+ + <![CDATA[解决ASP.Net Core项目IIS在默认情况下不支持PUT和DELETE请求]]> + https://itwangaijava.github.io/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/ + + + 2023-08-29T06:14:38.000Z + <modules runAllManagedModulesForAllRequests="true"> + + <remove name="WebDAVModule"/> + +</modules> + +]]> + + + <![CDATA[Esxi 安装驱动 复制速度加快]]> + https://itwangaijava.github.io/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/ + + + 2023-08-29T01:06:07.000Z + 1、开启维护模式:

+

esxcli system maintenanceMode set --enable true

+

2、上传 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 到虚拟机存储,我这里是上传到 /vmfs/volumes/datastore1 里

+

3、把 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 拷贝到 /var/log/vmware/

+

cp /vmfs/volumes/datastore1/scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib /var/log/vmware/

+

4、卸载原来的驱动

+

esxcli software vib remove -n scsi-hpvsa -f

+

5、安装新上传的驱动

+

esxcli software vib install -v file:scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib --force --no-sig-check --maintenance-mode

+

如果提示出错,那就把--force等这些开关去掉,试一下

+

6、完事重启,记得关闭维护模式

+]]>
+
+ + <![CDATA[js执行滑块验证(无过程)]]> + https://itwangaijava.github.io/post/js-zhi-xing-hua-kuai-yan-zheng/ + + + 2023-08-09T06:30:45.000Z + function slide (id) {
+var slider = document.getElementById(id),
+container = slider.parentNode;

+
var rect = slider.getBoundingClientRect(),
+    x0          = rect.x || rect.left,
+    y0          = rect.y || rect.top,
+    w           = container.getBoundingClientRect().width,
+    x1          = x0 + w,
+    y1          = y0;
+
+var mousedown = document.createEvent("MouseEvents");
+mousedown.initMouseEvent("mousedown", true, true, window, 0,
+    x0, y0, x0, y0, false, false, false, false, 0, null);
+slider.dispatchEvent(mousedown);
+
+var mousemove = document.createEvent("MouseEvents");
+mousemove.initMouseEvent("mousemove", true, true, window, 0,
+    x1, y1, x1, y1, false, false, false, false, 0, null);
+slider.dispatchEvent(mousemove);
+
+/*var mouseup = document.createEvent("MouseEvents");
+mouseup.initMouseEvent("mouseup", true, true, window, 0,
+    x1, y1, x1, y1, false, false, false, false, 0, null);
+slider.dispatchEvent(mouseup);*/
+
+

}
+slide('nc_1_n1z');

+]]>
+
+ + <![CDATA[anaconda3与换源]]> + https://itwangaijava.github.io/post/anaconda3-yu-huan-yuan/ + + + 2023-07-07T08:59:15.000Z + 在terminal中输入

+

conda config --set show_channel_urls yes,

+

这一步之后会在C盘->用户->(你的用户名)这一文件夹下创建一个.condarc文件(在这个文件下我们可以修改conda源。),此处niuni是我的账户名。找到.condarc文件,使用记事本打开

+

打开后粘贴下列内容到文件内,修改为清华源,修改后保存文件修改。

+

channels:

+
    +
  • defaults
    +show_channel_urls: true
    +default_channels:
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
    +custom_channels:
    +conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • +
+

此处的意外之坑:

+

按照这个方法一般没有问题,但是在我最近一次的换源后在terminal下使用pip发现速度极慢,在探索了之后发现还需要换掉pip源才可以。更换方法为:

+

打开Terminal,然后键入如下命令:

+

python -m pip install --upgrade pip
+pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
+如果更换的时候速度过慢,建议使用如下指令:

+

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
+pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
+、

+]]>
+
+ + <![CDATA[钓鱼正确看漂技巧 ]]> + https://itwangaijava.github.io/post/diao-yu-zheng-que-kan-piao-ji-qiao/ + + + 2022-10-08T08:28:57.000Z + 1、浮漂轻点轻触。多为鲫鱼在试探,连点连触则提竿。
+2、浮漂微微上升一点,徐徐下沉一目半目。说明鱼已吃稳,可提竿。
+3、尾漂慢慢地从顶部,只送半粒到一粒,浮漂不动(有时被误认为是小鱼或碰线),是提竿时机。
+4.浮漂有的时候会慢慢的往下沉。不可忽视它的动静,浮漂的动作愈慢,鲫鱼、鲤鱼、草鱼上钩的痕迹越明显。
+5.星漂微微颤动后,略沉半粒至一粒,漂动即停止。这时提竿时机是浮漂刚刚下沉,其过程很短,垂钓者若不是精力高度集中,稍有迟缓,即可痛失良机。
+6.浮漂一点一点,连续点动,动作很小。也是鲫鱼已吃稳的迹象,即可提竿。
+7.浮漂点动后,接着慢慢上送。动作愈慢鲫鱼愈大,动作速度快多半是小鲫鱼。
+8.浮漂轻轻斜向移位,或平移,或微沉,都要及时提竿。
+9.浮漂有力猛点时。只点一下动作大,不下沉也不上送,鱼饵已吃到嘴里,鱼儿较大应及时提竿。
+10.浮漂横向移动,还有点向下的动作,即提竿。
+11.浮漂横移。不送漂也不黑漂,只作平行横向移动,此时鱼已咬钩,可提竿。
+12.未见浮漂下沉,但送漂时往往是大鱼。说明鱼已吞饵,提必获鱼。
+13.浮漂微微颤动时,连续不停,鱼已咬钩。
+14.浮漂突然快速下沉,或快速上送,多半是小鲫鱼咬钩。
+15.浮漂横卧水面不沉不动。这往往是大鲫鱼半路咬钩,及时提竿起鱼。
+16.浮漂在水面微微连续点颤、轻送或轻沉,是鱼咬钩,应及时提竿。
+17.找窝试点时,空钩下送,浮漂不下沉或突然下沉。这往往是鱼咬空钩,不可忽视,及时提竿可得鱼。
+18.送漂后浮漂迅速恢复原状,漂相为一粒送平后又恢复原状。出现这种现象多为虾蟹脚爪拨动所致,起竿多为空钩。
+19.黑漂后迅速恢复原状,漂相为一粒粒斜向入水,然后恢复原状。多为小杂鱼咬钩捣乱。
+20.浮漂在水下忽闪一下。这鱼儿碰线所致,不用提竿。

+]]>
+
+ + <![CDATA[钓鱼技巧全攻略]]> + https://itwangaijava.github.io/post/diao-yu-ji-qiao-quan-gong-lue/ + + + 2022-10-08T07:46:49.000Z + 一、传统立漂沉底钓鲫鱼: 这是比较普遍的钓法,我国南北东西都有不少钓友采用此种方法。即用立漂或散漂,铅坠沉底,鱼钩距铅坠的脑线大约25毫米。垂钓时鱼漂调整到直立,露出部分,便于判断鱼讯即可(散漂则没入水中两三粒,浮在水面三四粒)。 此法的优点是调整方便,钩坠漂配比要求不严格,便于掌握。但不很灵敏,有经验的鱼常常触动一下鱼饵,发觉较重,即警觉逃走。同时,此法鱼饵沉底不动,如不勤动一下鱼竿,常不为鲫鱼发现。

+

二、台钓鲫鱼: 目前较为盛行。其最大优点是灵敏度强,上鱼率高。鱼钩下沉慢,易为鱼发现。坠悬于水中,钩轻轻触底,鱼在其旁游弋,鱼钩即轻轻摇动,对鱼吸引力极大。为摘钩方便,使用无倒刺钩,摘钩迅速。漂坠饵配比要求严格,鱼汛反映极为灵敏。 缺点是漂坠调整较费事;各种鱼类混养水域,使用钓鲫鱼的钩线,遇到大鱼容易跑鱼损失工具;初学时不易掌握,常有人半途而废。但只要树立信心,勤于实践,掌握也不是很难,而一旦掌握,即会发现其优点大大过于一般传统钓法。

+

三、戳拱钓鲫鱼: 是一种传统钓法。常用在天气炎热的夏季,有浮萍或水草丛生的水域中。一般采用长竿、硬调、短线、无坠。热季水中缺氧,鱼常在水面浮萍下吸空气、拱食、乘凉。从而咬草出声或拱得浮萍形成一个小包。因而应采用听、看办法,寻觅鱼踪。 听主要是听鱼觅食发出的嚓嚓声响;看是看水草晃动和浮萍的鼓包,判断鱼情。发觉有鱼直指该处将钩垂入。一般轻轻将钩放到拱处,看到水面线向水中拽入,或线牵动竿梢即知有鱼咬饵,适时抖竿提起鱼来。 戳拱一般选安静处,动作要轻,鱼出水时尽量避免惊扰其它鱼儿,若有惊扰,鱼不再拱,可用嘴模仿鱼咬草的嚓嚓声,起到催鱼起拱的作用。

+

四、戳孔钓鲫鱼: 一般用于有荷叶、水草多、苇茬多的水域。观察荷叶边、水草孔、苇茬间的鱼泡、荷叶、苇子晃动的情况,判断鱼情。工具一般采用硬调长竿、较竿短的鱼线,小坠,先观察鱼情。 发现后针对有鱼动静的地方,垂竿下钩,使钩沉底,同时不断微微提动鱼竿,引鱼鱼池饵,凭手感觉察鱼儿咬钩,适时提竿。戳孔一般采取走钓,主动找鱼下钩。

+

五、浮钓鲫鱼: 鲫鱼属底层鱼,一般钓底,但遇炎热、气压低的气候,鱼浮到水面游动吸氧觅食,则可采取浮钓法,即将铅坠减轻,使鱼钩悬浮于水面下约0.3--0.5米处,动作要轻,不惊散鱼群。有人针对鲫鱼甩子期的特点也常采用浮钓法。浮钓不需打窝。

+

六、半浮钓鲫鱼: 一般用于体情况而定。底层杂草或淤泥较厚,钩沉底不易为鱼发觉的环境。办法是将坠减轻,调整浮漂至钩触底后露出数格,然后将漂下调5-10厘米(视水底草或淤泥的厚度而定),保持漂仍露出的格数(如坠重适当减轻)。这样使钩略高于水底,便于鱼的发现。

+

七、甩大边钓鲫鱼: 在河道、沟渠中常岸边有芦苇等,鱼喜欢栖居觅食,如果河道不很宽,你的钓位比较嘈杂,可以用长竿、长线,或海竿串钩甩至对岸芦苇、水草边,可以甩出四、五支竿,插好等待,手竿可用漂,海竿则将风线拉直,看竿梢湾动,往往效果很好。

+

八、走钓鲫鱼: 到一水塘,先行观察,选鲫鱼喜栖居的位置撒窝,可保持至少2米一上距离,撒若干窝子。然后采用5-6米左右质轻的鱼竿,采用7--10 粒的散漂,(便于适应水的不同深度,不必老调漂),钓线宜细,鱼钩最好是朝天钩,饵料一般采用红蚯蚓,保持活性最好。 走钓的特点是走,应手持钓竿,沿打过窝的水边观察鱼星的情况,有鱼星即应下钩,无鱼星可继续观察其它钓窝。打窝应每次少打,过些时间再打一遍,即少打勤打。这种钓法变等为找,因此由被动变主动,且对锻炼身体更有好处。

+

九、流水钓鲫鱼: 一般适用于流动水域,竿宜长,线不必太长,坠须重,漂可用数粒散漂,粒漂则宜长,饵以蚯蚓、小虾为好。钩甩入水中,如水流动,可使钩漂顺水同流,到下游后提起再甩至上游,见漂停住,立即提竿。以免底部挂住,若有托漂或下沉,即应提竿上鱼。

+

十、盒饭钓鲫鱼: 类似爆炸钩,但将食放在一个预制的塑料盒中,可以节省饵料,且对饵料的粘、散要求较底。方法是用一个直径为25-50毫米的塑料瓶底或盖,制成高约15-20的小盒。用螺丝自盒里底部中心穿出,固定一个铅坨。盒的四周均匀打七个直径2毫米的小孔。 一个孔穿入钓线,拴上连接环。用三棵软脑线,每棵对折,然后拧在一起套入一个短气门心内。对折的线圈挂在连接环上。三棵对折脑线的六个头,分别从六个小孔中穿出,每端系上一个鱼钩。用时,将盒中放上糟食,将钩从盒外折回到盒内,埋入糟食内,甩出到钓点进行垂钓。

+

十一、活水钓鲫鱼: 鱼类对氧气的需求量不亚于人类,有氧则活,无氧则死,氧气充足的水中,鱼儿最多,最活跃。垂钓水域的进、出水口,含氧量高,被称为活水,在此垂钓必有收获。 下雨时,雨水能将氧气带人水中,所以雨过天晴同样是垂钓的好时机。大风大,水随风而动,不但企氧气溶入,还有岸边的草籽、花粉、树叶等天然鱼食刮人,风停后在下风口垂钓也很好。

+

十二、适温钓鲫鱼: 一年四季,水温变化很大。鱼儿既怕冷又怕热,气温在 15-25T之间摄食最旺盛,过冷就会像人一样猫冬,过热就会歇伏,鲫鱼虽是广温性鱼,但大体规律也是如此。 春秋季节,气温、水温适合全天垂钓;炎热的夏季最好钓早钓晚;寒冷的冬季要选择晴朗的中午垂钓。

+

十三、择地钓鲫鱼: 鲫鱼胆小,喜安静。钓鲫鱼,要选择有草丛、竹木桩、砖砾、岩石、桥墩的地方下钩,这些僻静水域必然鱼多。牛滚幽、淘洗码头、水草茂密处,鱼儿有食可吃,也是钓鲫的好地方。

+

十四、寻洁钓鲫鱼: 鲫鱼喜欢在清洁、多氧气的水中栖息;如果水又脏又浊,鱼会感到憋闷,不想吃东西,常浮在水面嚼水,甚至窒息死亡。垂钓的水域应以浅色为上;淡绿色、淡青色次之;酱色、深褐色的污染水,腐殖质含量高,氧气不足,不宜垂钓。

+

十五、牵引钓钓鲫鱼: 诱饵投放以后,窝里不久就有鱼星上冒,可鱼就是不咬钩,这种情况可能是窝里有鲤鱼、草鱼之类的大鱼,鲫鱼不敢进窝吃食。 此时就应采用牵引法(也称逗钓),即在钓点上下前后左右轻轻地、缓慢地拉动渔线,诱鱼上钩,特别是鲫鱼少吃少动的冬天和初春,用红虫和蚯蚓效果特别好。

+

十六、换饵钓鲫鱼: 鲫鱼属条食性鱼种,荤素皆吃一草食以蚯蚓、红虫、小虾、蛆为主;素食以面粉、蚕豆粉、大米饭、红完了玉米粑为主一面钓时应革素饵变换使用鱼同人一样,有吃新的习惯,如果总吃一种食物也会腻口。

+]]>
+
+ + <![CDATA[Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备]]> + https://itwangaijava.github.io/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/ + + + 2022-03-28T12:25:21.000Z + function getSTOK() {
+let match = location.href.match(/;stok=(.*?)//);
+if (!match) {
+return null;
+}
+return match[1];
+}

+

function execute(stok, command) {
+command = encodeURIComponent(command);
+let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A;
+console.log(path);
+return fetch(new Request(location.origin + path));
+}

+

function enableSSH() {
+stok = getSTOK();
+if (!stok) {
+console.error('stok not found in URL');
+return;
+}
+console.log(stok = "${stok}");

+
password = prompt('Input new SSH password');
+if (!password) {
+    console.error('You must input password');
+    return;
+}
+
+execute(stok, 
+
+

nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start
+)
+.then((response) => response.text())
+.then((text) => console.log(text));
+console.log('New SSH password: ' + password);
+execute(stok, echo -e "${password}\\n${password}" | passwd root)
+.then((response) => response.text())
+.then((text) => console.log(text));
+}

+

enableSSH();

+

使用Putty 或 Xshell 终端连接路由器,MIWIFI默认网关地址为 192.168.31.1,用户名为 root,密码为上一步设定的密码。

+

使用 Vim 修改防火墙配置文件:

+

vim /etc/config/firewall

+

将文件中defaults 闭包下 disable_ipv6 的值改为 0,zone 闭包下 forward 的值改为 ACCEPT

+

在原有的Rule 中添加一个闭包,允许IPv6外网访问路由器下游设备

+

config rule
+option name 'Allow-IPv6'
+option target 'ACCEPT'
+option family 'ipv6'
+list proto 'all'
+option src ''
+option dest '
'

+

终端执行命令,重启路由器防火墙:

+

/etc/init.d/firewall restart

+]]>
+
+ + <![CDATA[OpenWrt 插件]]> + https://itwangaijava.github.io/post/openwrt-cha-jian/ + + + 2022-03-28T06:08:47.000Z + OpenWrt 编译 LuCI ---> Applications 添加插件应用说明

+

make menuconfig 进入定制界面
+进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 )

+

非常感谢大佬”L有大雕“更正补充,20181121
+大佬源码仓库:https://github.com/coolsnowwolf/lede
+https://op.supes.top/packages/

+

选择LuCI 配置 添加插件应用:常用

+

LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制
+LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus +
+LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定
+LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启
+LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端)
+LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包)
+LuCI ---> Applications ---> luci-app-firewall #添加防火墙
+LuCI ---> Applications ---> luci-app-frpc #内网穿透 Frp
+LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec
+LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器
+LuCI ---> Applications ---> luci-app-ramfree #释放内存
+LuCI ---> Applications ---> luci-app-samba #网络共享(Samba)

+

LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+
+luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Include Shadowsocks Simple Obfs Plugin #SS Simple-Obfs混淆代理(Nginx)
+luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS)

+

LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT)
+LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本
+LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发)
+LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置
+LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器
+LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划
+LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线
+LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒
+LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟
+LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透

+

以下是全部: 注:应用后面标记 “ * ” 为最近新添加;标记“ ! ”与其他插件依赖或冲突。

+

LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制
+LuCI ---> Applications ---> luci-app-acme #ACME自动化证书管理环境(丢弃)
+LuCI ---> Applications ---> luci-app-adblock #ADB广告过滤
+LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus +
+LuCI ---> Applications ---> luci-app-adbyby #广告过滤大师(丢弃)
+LuCI ---> Applications ---> luci-app-adguardhome #AdGuard home广告过滤(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-adkill #广告过滤(丢弃)
+LuCI ---> Applications ---> luci-app-advanced-reboot #Linksys高级重启
+LuCI ---> Applications ---> luci-app-advancedsetting #系统高级设置(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-ahcp #Ad-Hoc配置协议(AHCP) ipv6 and 双栈 自动配置协议 !
+LuCI ---> Applications ---> luci-app-airplay2 #Apple AirPlay2 无损音频接收服务器
+LuCI ---> Applications ---> luci-app-aliddns #阿里DDNS客户端(丢弃,集成至ddns)
+LuCI ---> Applications ---> luci-app-aliyundrive-webdav #阿里云盘 WebDAV 服务
+LuCI ---> Applications ---> luci-app-amule #aMule下载工具 !
+LuCI ---> Applications ---> luci-app-argon-config #Argon主题配置插件(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-aria2 # Aria2下载工具
+LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定
+LuCI ---> Applications ---> luci-app-asterisk #支持Asterisk电话服务器
+LuCI ---> Applications ---> luci-app-attendedsysupgrade #固件更新升级相关
+LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启
+LuCI ---> Applications ---> luci-app-baidupcs-web #百度网盘管理
+LuCI ---> Applications ---> luci-app-bcp38 #BCP38网络入口过滤(不确定)
+LuCI ---> Applications ---> luci-app-bird1-ipv4 #对Bird1-ipv4的支持
+LuCI ---> Applications ---> luci-app-bird1-ipv6 #对Bird1-ipv6的支持
+LuCI ---> Applications ---> luci-app-bird4 #Bird 4(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-bird6 #Bird 6(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-bmx6 #BMX6路由协议
+LuCI ---> Applications ---> luci-app-bmx7 #BMX7路由协议(丢弃)
+LuCI ---> Applications ---> luci-app-caldav #联系人(丢弃)
+LuCI ---> Applications ---> luci-app-cifs-mount #CIFS/SMB挂载设置
+LuCI ---> Applications ---> luci-app-cifsd #CIFS/SMB网络共享
+LuCI ---> Applications ---> luci-app-cjdns #加密IPV6网络相关
+LuCI ---> Applications ---> luci-app-clamav #ClamAV杀毒软件
+LuCI ---> Applications ---> luci-app-clash #Clash客户端(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-commands #Shell命令模块
+LuCI ---> Applications ---> luci-app-cshark #CloudShark捕获工具
+LuCI ---> Applications ---> luci-app-dawn #分布式AP管理程序
+LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端)
+LuCI ---> Applications ---> luci-app-diag-core #core诊断工具
+LuCI ---> Applications ---> luci-app-diskman #磁盘管理工具
+luci-app-diskman ---> Include btrfs-progs #新型的写时复制 (COW)
+luci-app-diskman ---> Include lsblk #lsblk命令 用于列出所有可用块设备的信息
+luci-app-diskman ---> Include mdadm #mdadm命令 用于创建、管理、监控RAID设备的工具
+luci-app-diskman ---> Include kmod-md-raid456 #RAID 4,5,6 驱动程序模块(丢弃)
+luci-app-diskman ---> Include kmod-md-linear #RAID 驱动程序模块(丢弃)
+LuCI ---> Applications ---> luci-app-dnscrypt-proxy #DNSCrypt解决DNS污染
+LuCI ---> Applications ---> luci-app-dnsfilter #DNSFilter基于DNS的广告过滤
+LuCI ---> Applications ---> luci-app-dnsforwarder #DNSForwarder防DNS污染
+LuCI ---> Applications ---> luci-app-dnspod #DNSPod动态域名解析(丢弃)
+LuCI ---> Applications ---> luci-app-docker #Docker容器(dockerman更名为docker)
+LuCI ---> Applications ---> luci-app-dump1090 #民航无线频率(不确定)
+LuCI ---> Applications ---> luci-app-dynapoint #DynaPoint(未知)
+LuCI ---> Applications ---> luci-app-e2guardian #Web内容过滤器
+LuCI ---> Applications ---> luci-app-easymesh #简单MESH(可有线+无线回程)
+LuCI ---> Applications ---> luci-app-eqos #基于IP地址限速(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-familycloud #家庭云盘
+LuCI ---> Applications ---> luci-app-fileassistant #文件管理助手(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包)
+LuCI ---> Applications ---> luci-app-firewall #添加防火墙
+LuCI ---> Applications ---> luci-app-flowoffload #Turbo ACC网络加速(集成FLOW,BBR,NAT,DNS(丢弃,移至TurboACC)
+LuCI ---> Applications ---> luci-app-freifunk-diagnostics #freifunk组件 诊断(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-freifunk-policyrouting #freifunk组件 策略路由(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-freifunk-widgets #freifunk组件 索引(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-frpc #内网穿透Frp客户端
+LuCI ---> Applications ---> luci-app-frps #内网穿透Frp服务端
+LuCI ---> Applications ---> luci-app-fwknopd #Firewall Knock Operator服务器
+LuCI ---> Applications ---> luci-app-guest-wifi #WiFi访客网络
+LuCI ---> Applications ---> luci-app-gfwlist #GFW域名列表(丢弃)
+LuCI ---> Applications ---> luci-app-go-aliyundrive-webdav #阿里云盘webdav协议(文件管理/同步等) *
+LuCI ---> Applications ---> luci-app-gost #隐蔽的https代理(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-haproxy-tcp #HAProxy负载均衡-TCP
+LuCI ---> Applications ---> luci-app-hd-idle #硬盘休眠
+LuCI ---> Applications ---> luci-app-hnet #Homenet Status家庭网络控制协议
+LuCI ---> Applications ---> luci-app-https-dns-proxy #通过HTTPS代理为DNS提供Web UI
+LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec
+LuCI ---> Applications ---> luci-app-jd-dailybonus #京东签到服务
+LuCI ---> Applications ---> luci-app-kodexplorer #KOD可道云私人网盘(与vnStat冲突 ! )
+LuCI ---> Applications ---> luci-app-kooldns #VPN服务器 ddns替代方案(丢弃)
+LuCI ---> Applications ---> luci-app-koolproxy #KP去广告(丢弃)
+LuCI ---> Applications ---> luci-app-lxc #LXC容器管理
+LuCI ---> Applications ---> luci-app-meshwizard #网络设置向导(丢弃)
+LuCI ---> Applications ---> luci-app-minidlna #完全兼容DLNA / UPnP-AV客户端的服务器软件
+LuCI ---> Applications ---> luci-app-mjpg-streamer #兼容Linux-UVC的摄像头程序
+LuCI ---> Applications ---> luci-app-mtwifi #MTWiFi驱动的支持 (丢弃)
+LuCI ---> Applications ---> luci-app-mmc-over-gpio #添加SD卡操作界面(丢弃)
+LuCI ---> Applications ---> luci-app-multiwan #多拨虚拟网卡(丢弃,移至syncdial)
+LuCI ---> Applications ---> luci-app-mwan #MWAN负载均衡(丢弃)
+LuCI ---> Applications ---> luci-app-music-remote-center #PCHiFi 数字转盘遥控
+LuCI ---> Applications ---> luci-app-mwan3 #MWAN3负载均衡
+LuCI ---> Applications ---> luci-app-mwan3helper #MWAN3分流助手
+LuCI ---> Applications ---> luci-app-n2n_v2 #N2N内网穿透 N2N v2 VPN服务
+LuCI ---> Applications ---> luci-app-netdata #Netdata实时监控(图形化)
+LuCI ---> Applications ---> luci-app-nfs #NFS网络共享
+LuCI ---> Applications ---> luci-app-nft-qos #QOS流控 Nftables版
+LuCI ---> Applications ---> luci-app-ngrokc #Ngrok 内网穿透(丢弃)
+LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器
+LuCI ---> Applications ---> luci-app-noddos #NodDOS Clients 阻止DDoS攻击
+LuCI ---> Applications ---> luci-app-nps #内网穿透nps
+LuCI ---> Applications ---> luci-app-ntpc #NTP时间同步服务器
+LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务
+LuCI ---> Applications ---> luci-app-olsr #OLSR配置和状态模块
+LuCI ---> Applications ---> luci-app-olsr-services #OLSR服务器
+LuCI ---> Applications ---> luci-app-olsr-viz #OLSR可视化
+LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务(丢弃)
+LuCI ---> Applications ---> luci-app-openclash #运行在OpenWrt上的Clash代理客户端(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-openvpn #OpenVPN客户端
+LuCI ---> Applications ---> luci-app-openvpn-server #易于使用的OpenVPN服务器 Web-UI
+LuCI ---> Applications ---> luci-app-oscam #OSCAM服务器(丢弃)
+LuCI ---> Applications ---> luci-app-p910nd #打印服务器模块
+LuCI ---> Applications ---> luci-app-pagekitec #Pagekitec内网穿透客户端
+LuCI ---> Applications ---> luci-app-passwall #科学上网(Li大佬插件)
+Configuration ---> Include Brook #Brook代理(跨平台强加密且不可检测代理)
+Configuration ---> Include ChinaDNS-NG #防污染DNS服务
+Configuration ---> Include Haproxy #HAProxy #HAProxy负载均衡
+Configuration ---> Include Hysteria #Hysteria双边加速工具
+Configuration ---> Include Kcptun #Kcptun双边加速工具
+Configuration ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量)
+Configuration ---> Include PDNSD #DNS服务器
+Configuration ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+Configuration ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+Configuration ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟)
+Configuration ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+Configuration ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+Configuration ---> Include Simple-Obfs (Shadowsocks plugin) #simple-Obfs简单混淆工具(Nginx)
+Configuration ---> Include Trojan_GO #Trojan_GO代理(直接模仿协议HTTPS)
+Configuration ---> Include Trojan_Plus #Trojan_Plus代理(直接模仿协议HTTPS)
+Configuration ---> Include V2ray #V2Ray代理
+Configuration ---> Include v2ray-plugin (Shadowsocks plugin) #SS V2ray插件(WebSocket+TLS )
+Configuration ---> Include Xray #Xray代理(XTLS)
+Configuration ---> Include Xray-Plugin (Shadowsocks Plugin) #SS Xray插件(WebSocket+TLS ) *
+Configuration ---> Include Dns2socks #DNS服务器(丢弃)
+Configuration ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器)(丢弃)
+Configuration ---> Include Shadowsocks #SS代理(丢弃)
+Configuration ---> Include Shadowsocks Server #SS服务器(丢弃)
+Configuration ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD加密)(丢弃)
+Configuration ---> Include ShadowsocksR #SSR代理(丢弃)
+Configuration ---> Include ShadowsocksR Server #SSR服务器(丢弃)
+Configuration ---> Include Https DNS Proxy(DoH) #HttpsDNS服务(丢弃)
+LuCI ---> Applications ---> luci-app-polipo #Polipo代理(是一个小型且快速的网页缓存代理)
+LuCI ---> Applications ---> luci-app-pppoe-relay #PPPoE NAT穿透 点对点协议(PPP)
+LuCI ---> Applications ---> luci-app-pptp-server #VPN服务器 PPTP
+LuCI ---> Applications ---> luci-app-privoxy #Privoxy网络代理(带过滤无缓存)
+LuCI ---> Applications ---> luci-app-ps3netsrv #PS3 NET服务器(用于加载蓝光/游戏ISO/PKG)
+LuCI ---> Applications ---> luci-app-pushbot #全能推送(钉钉推送,企业微信推送,Bark,PushPlus推送)
+LuCI ---> Applications ---> luci-app-qbittorrent #BT下载工具(qBittorrent)
+Build Version Selection (Static Build) ---> Static Build #选择静态编译版本
+Build Version Selection (Static Build) ---> Dynamic Build #选择动态编译版本
+LuCI ---> Applications ---> luci-app-qos #流量服务质量(QoS)流控
+LuCI ---> Applications ---> luci-app-radicale #CalDAV/CardDAV同步工具
+LuCI ---> Applications ---> luci-app-ramfree #释放内存
+LuCI ---> Applications ---> luci-app-rclone #命令行云端同步工具
+Include rclone-webui #Rclone界面
+Include rclone-ng (another webui) #Rclone另一个界面
+Include fuse-utils (mount cloud storage) #fuse-utils(挂载云存储)(丢弃)
+LuCI ---> Applications ---> luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器
+LuCI ---> Applications ---> luci-app-samba #网络共享(Samba)
+LuCI ---> Applications ---> luci-app-samba4 #网络共享(Samba4)
+LuCI ---> Applications ---> luci-app-serverchan #微信/Telegram推送的插件
+LuCI ---> Applications ---> luci-app-sfe #Turbo ACC网络加速(丢弃,移至TurboACC)
+LuCI ---> Applications ---> luci-app-shadowsocks #SS科学上网(丢弃)
+LuCI ---> Applications ---> luci-app-shadowsocks-libes #SS-libev服务端
+LuCI ---> Applications ---> luci-app-shairplay #支持AirPlay功能
+LuCI ---> Applications ---> luci-app-siitwizard #SIIT配置向导 SIIT-Wizzard
+LuCI ---> Applications ---> luci-app-simple-adblock #简单的广告拦截
+LuCI ---> Applications ---> luci-app-smartdns #SmartDNS本地服务器(丢弃)
+LuCI ---> Applications ---> luci-app-softethervpn #SoftEther VPN服务器 NAT穿透
+LuCI ---> Applications ---> luci-app-splash #Client-Splash是无线MESH网络的一个热点认证系统
+LuCI ---> Applications ---> luci-app-sqm #流量智能队列管理(QOS)
+LuCI ---> Applications ---> luci-app-squid #Squid代理服务器
+LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+(Le大佬插件)
+Include libustream-ssl ---> Include libustream-wolfssl #选择wolfSSL库(传输层安全协议)
+Include libustream-ssl ---> Include libustream-openssl #选择OpenSSL库(传输层安全协议)
+luci-app-ssr-plus ---> Include Kcptun #Kcptun双边加速工具
+luci-app-ssr-plus ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量)
+luci-app-ssr-plus ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务端(负载均衡/探测延迟)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Simple-Obfs Plugin #SS Simple-Obfs混淆代理(Nginx)
+luci-app-ssr-plus ---> Include Trojan #Trojan代理(直接模仿协议HTTPS)
+luci-app-ssr-plus ---> Include Shadowsocks V2ray Plugin #SS V2ray代理(WebSocket+TLS )
+luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS)
+luci-app-ssr-plus ---> Include Shadowsocks New Version #新SS代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks #SS代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD密码) (丢弃)
+luci-app-ssr-plus ---> Include V2ray #V2Ray代理(丢弃)
+luci-app-ssr-plus ---> Include Xray (V2RAY/Trojan-GO implemented) #Xray代理(丢弃)
+luci-app-ssr-plus ---> Include Trojan-go #Trojan-go代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Server #SS服务器(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务器(丢弃)
+luci-app-ssr-plus ---> Include ShadowsocksR Server #SSR服务器(丢弃)
+luci-app-ssr-plus ---> Include DNS2SOCKS #DNS服务器(丢弃)
+luci-app-ssr-plus ---> Include ShadowsocksR Socks and Tunnel(丢弃)
+luci-app-ssr-plus ---> Include Socks Server #socks代理服务器(丢弃)
+LuCI ---> Applications ---> luci-app-ssr-pro #SSR-Pro(丢弃)
+LuCI ---> Applications ---> luci-app-ssrserver-python #ShadowsocksR Python服务器
+LuCI ---> Applications ---> luci-app-statistics #流量监控工具
+LuCI ---> Applications ---> luci-app-syncdial #多拨虚拟网卡(原macvlan)
+LuCI ---> Applications ---> luci-app-tinyproxy #Tinyproxy是 HTTP(S)代理服务器
+LuCI ---> Applications ---> luci-app-transmission #BT下载工具
+LuCI ---> Applications ---> luci-app-travelmate #旅行路由器
+LuCI ---> Applications ---> luci-app-ttyd #网页终端命令行
+LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT)
+luci-app-turboacc ---> Include Shortcut-FE #Shortcut-FE 流量分载
+luci-app-turboacc ---> Include BBR CCA #BBR拥塞控制算法提升TCP网络性能
+luci-app-turboacc ---> Include DNSForwarder #DNS防污染 Forwarder
+luci-app-turboacc ---> Include DNSProxy #DNS防污染 Proxy
+LuCI ---> Applications ---> luci-app-udpxy #udpxy做组播服务器
+LuCI ---> Applications ---> luci-app-uhttpd #uHTTPd Web服务器
+LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本
+UnblockNeteaseMusic Golang Version #Golang版本
+UnblockNeteaseMusic NodeJS Version #NodeJS版本
+LuCI ---> Applications ---> luci-app-unblockneteasemusic-go #解除网易云音乐(合并)
+LuCI ---> Applications ---> luci-app-unblockneteasemusic-mini #解除网易云音乐(合并)
+LuCI ---> Applications ---> luci-app-unbound #Unbound DNS解析器
+LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发)
+LuCI ---> Applications ---> luci-app-usb-printer #USB 打印服务器
+LuCI ---> Applications ---> luci-app-uugamebooster #UU网游加速器
+LuCI ---> Applications ---> luci-app-v2ray-server #V2Ray 服务器
+LuCI ---> Applications ---> luci-app-v2ray-pro #V2Ray透明代理(丢弃,集成SSR)
+LuCI ---> Applications ---> luci-app-verysync #微力同步
+LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置
+LuCI ---> Applications ---> luci-app-vnstat #vnStat网络监控(图表)(与kodexplorer冲突 ! )
+LuCI ---> Applications ---> luci-app-vpnbypass #VPN BypassWebUI 绕过VPN设置
+LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器
+LuCI ---> Applications ---> luci-app-vssr #VSSR科学上网(je大佬插件)
+luci-app-vssr ---> Include Xray #Xray代理(XTLS)
+luci-app-vssr ---> Include Trojan #Trojan代理(直接模仿协议HTTPS)
+luci-app-vssr ---> Include Kcptun #Kcptun双边加速工具
+luci-app-vssr ---> Include Shadowsocks Xray Plugin #SS Xray代理
+luci-app-vssr ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+LuCI ---> Applications ---> luci-app-watchcat #断网检测功能与定时重启
+LuCI ---> Applications ---> luci-app-webadmin #Web管理页面设置
+LuCI ---> Applications ---> luci-app-webshell #网页命令行终端(丢弃)
+LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划
+LuCI ---> Applications ---> luci-app-wireguard #VPN服务器 WireGuard状态
+LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线
+LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒
+LuCI ---> Applications ---> luci-app-wrtbwmon #实时流量监测
+LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟
+LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透

+]]>
+
+ + <![CDATA[redmi ac2100固件]]> + https://itwangaijava.github.io/post/redmi-ac2100-gu-jian/ + + + 2022-03-27T07:14:23.000Z + 更改redmi ac2100固件版本
+要想刷固件,需要将路由器的固件版本改为2.0.23。但为了防止意外,强烈建议先下载官方的路由修复器。

+

下载路由修复器
+度盘中的MIWIFIRepairTool.x86.rar压缩包,压缩可用,软件本身有使用教程

+

下载2.0.23版本的固件
+度盘中的miwifi_rm2100_all_fb720_2.0.23.bin文件

+

下载后,登录路由器管理界面,打开常用设置->系统状态->升级检测,点击手动升级,将上面下载的2.0.23版本固件刷入路由器

+

刷入breed
+ps:如果是新路由器,个人认为不太需要检查坏块,所以本文中没相关的方法,有需要的可自行搜索

+

打开ssh
+这里,我们使用openwrt官方提供的方法打开ssh

+

登录路由器管理界面,按f12打开开发者工具devtool,点击console,输入下列代码,并回车

+

复制代码
+`function getSTOK() {
+let match = location.href.match(/;stok=(.*?)//);
+if (!match) {
+return null;
+}
+return match[1];
+}

+

function execute(stok, command) {
+command = encodeURIComponent(command);
+let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A;
+console.log(path);
+return fetch(new Request(location.origin + path));
+}

+

function enableSSH() {
+stok = getSTOK();
+if (!stok) {
+console.error('stok not found in URL');
+return;
+}
+console.log(stok = "${stok}");

+
password = prompt('Input new SSH password');
+if (!password) {
+    console.error('You must input password');
+    return;
+}
+
+execute(stok, 
+
+

nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start
+)
+.then((response) => response.text())
+.then((text) => console.log(text));
+console.log('New SSH password: ' + password);
+execute(stok, echo -e "${password}\\n${password}" | passwd root)
+.then((response) => response.text())
+.then((text) => console.log(text));
+}

+

enableSSH();`
+复制代码
+运行成功会返回一个弹窗,要你设置ssh的密码,输入密码点确定。默认帐号为root

+

通过ssh连接路由器,这里推荐xshell:https://www.netsarang.com/zh/xshell/

+

xshell可以免费使用

+

打开xshell,新建会话,主机项填路由ip,点连接。然后输入相应的帐号密码。第一次连接会要求保存凭证,接受并保存即可。

+

这里,暂时先告一段落,接下来是下载breed。

+

利用winscp传入breed
+下载度盘中的breed-mt7621-xiaomi-r3g.bin和WinSCP-5.17.10-Setup.exe

+

安装winscp,新建会话,连接协议选scp,建立和路由器的连接

+

然后将breed上传到路由器的/tmp目录(软件的两边选好路径之后,选中文件,右键点upload上传)

+

然后,回到xshell,输入命令cd /tmp

+

然后输入ls看看是否上传成功

+

之后输入下面的命令将breed刷入路由器

+

mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader
+刷入之后,关闭路由器电源,按住reset,重新打开路由器电源,直到路由器的system灯变成蓝灯闪烁后,松开reset键

+

浏览器访问192.168.1.1,可以看到breed被刷入成功

+

点击环境变量编辑,新增两个变量

+

字段xiaomi.r3g.bootfw,值为2

+

刷入openwrt底包(可选)
+ps:如果不想刷openwrt,不建议刷入底包

+

下载度盘中的openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-initramfs-kernel.bin,点击breed中的固件更新

+

勾选固件->选择文件->上传文件

+

即可刷入openwrt低包,然后用这个临时的openwrt去刷想要的openwrt即可

+

临时底包刷固件/breed刷固件教程:https://www.right.com.cn/forum/thread-4025861-1-1.html

+

刷入openwrt/padavan
+升级固件的方法可看上一小节

+

openwrt可下载度盘中的03.03-openwrt-ramips-mt7621-redmi-ac2100-squashfs-sysupgrade.bin

+

padavan可下载度盘中的RM2100_3.4.3.9-099.trx

+]]>
+
+
\ No newline at end of file diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b5eb6ffac1c28dad7cece49ba5c8ed1f421fa52c GIT binary patch literal 27865 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 E0IQ>q0ssI2 literal 0 HcmV?d00001 diff --git a/friends/index.html b/friends/index.html new file mode 100644 index 0000000..a4085eb --- /dev/null +++ b/friends/index.html @@ -0,0 +1,159 @@ + + + + + + + +友情链接 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+ +
+
+ +
+ + + + +
+ +
+
+ +
+ + + + + + + +
+
+ + + diff --git a/images/avatar.png b/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..b5eb6ffac1c28dad7cece49ba5c8ed1f421fa52c GIT binary patch literal 27865 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 E0IQ>q0ssI2 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..303c3d5 --- /dev/null +++ b/index.html @@ -0,0 +1,364 @@ + + + + + + +itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ + + 下一页 + +
+ + + + + + +
+
+ + diff --git a/media/README.md b/media/README.md new file mode 100644 index 0000000..07f95b9 --- /dev/null +++ b/media/README.md @@ -0,0 +1 @@ +media: 静态资源存放文件夹,可在此文件夹放 images、fonts、scripts... 等资源 diff --git a/media/gridea-search/gridea-search.js b/media/gridea-search/gridea-search.js new file mode 100644 index 0000000..00d1c49 --- /dev/null +++ b/media/gridea-search/gridea-search.js @@ -0,0 +1,230 @@ +/** + * 由 宝硕(https://github.com/renbaoshuo) 修改自 https://github.com/tangkaichuan/gridea-search + */ + +(function () { + //获取url参数 + function getParam(url, param) { + if (url.indexOf('?') > -1) { + var urlSearch = url.split('?'); + var paramList = urlSearch[1].split('&'); + for (var i = paramList.length - 1; i >= 0; i--) { + var temp = paramList[i].split('='); + if (temp[0] === param) { + return temp[1]; + } + } + } else { + return ""; + } + } + + //获取解码后的搜索词 + function getQueryPhrase() { + if(window.location.href.indexOf('?') == -1) return ""; + var phrase = getParam(window.location.href, 'q'); + var queryPhrase = decodeURIComponent(phrase.replace(/\+/g, ' ')); + return queryPhrase; + } + + //填充搜索输入框 + function fillSearchInput() { + var searchForm = document.getElementById('gridea-search-form'); + var searchInput = searchForm.getElementsByTagName('input')[0]; + searchInput.value = getQueryPhrase(); + } + + //Ajax异步GET请求 + function ajax(obj) { + var xhr = new XMLHttpRequest(); + xhr.open('get', obj.url, true); + xhr.send(null); + xhr.onreadystatechange = function () { + //异步请求:响应状态为4,数据加载完毕 + if (xhr.readyState === 4) { + if (xhr.status === 200) { + obj.success(xhr.responseText); + } else { + obj.error(xhr.status); + } + } + } + } + + //模糊搜索 https://github.com/krisk/fuse + function fuzzySearch(data, phrase) { + var options = { + includeMatches: true, + ignoreLocation: true, + keys: [ + 'title', + 'content' + ] + }; + var fuse = new Fuse(data, options); + var fuzzyResult = fuse.search(phrase); + return fuzzyResult; + } + + //检查缓存是否最新 + function checkCache() { + var caches = {}; + caches.infos = JSON.parse(localStorage.getItem('InfosCache')); + caches.contents = JSON.parse(localStorage.getItem('ContentsCache')); + if (caches.infos && caches.contents) { + var cachedTime = caches.infos.utils.now.toString(); + var updateTime = document.getElementById('gridea-search-result').getAttribute('data-update'); + if (cachedTime === updateTime) { + return caches; + } + } + localStorage.removeItem('InfosCache'); + localStorage.removeItem('ContentsCache'); + return false; + } + + //获取博客全文api + function getContents(callback) { + var caches = checkCache(); + if (caches) { + callback(caches.contents); + } + else { + ajax({ + url: '../api-content/index.html' + "?_=" + Date.now(), + success: function (data) { + callback(JSON.parse(data)); + localStorage.setItem('ContentsCache', data); + } + }); + } + } + + //获取博客信息api + function getInfos(callback) { + var caches = checkCache(); + if (caches) { + callback(caches.infos); + } + else { + ajax({ + url: '../api-info/index.html' + "?_=" + Date.now(), + success: function (data) { + callback(JSON.parse(data)); + localStorage.setItem('InfosCache', data); + } + }); + } + } + + //根据一段文本调用模糊搜索 + function searchBy(phrase, callback) { + var result = ''; + var getFuzzyResult = function (data) { + result = fuzzySearch(data.posts, phrase); + callback(result); + } + //根据全文内容获取搜索结果 + getContents(getFuzzyResult); + } + + //显示无搜索结果 + function showNoResult() { + var resultDIV = document.getElementById('gridea-search-result'); + var noResult = resultDIV.getElementsByClassName('no-result')[0]; + noResult.style.display = 'block'; + resultDIV.innerHTML = noResult.outerHTML; + } + + //根据解码后的搜索词执行搜索 + function searchByPhrase(resultHandler) { + var queryPhrase = getQueryPhrase(); + if (queryPhrase === '' || typeof (queryPhrase) === 'undefined') { + showNoResult(); + } else { + searchBy(queryPhrase, resultHandler); + } + } + + //获取搜索结果列表模板的URL + function getTemplateURL() { + var scripts = document.getElementsByTagName('script'); + var templateURL = ''; + for (var i = 0; i < scripts.length; i++) { + if (scripts[i].type === 'text/ejs') { + templateURL = scripts[i].src; + return templateURL; + } + } + } + + //渲染搜索结果列表ejs https://github.com/mde/ejs + function renderResult(searchedInfos) { + if (searchedInfos.posts.length > 0) { + ajax({ + url: getTemplateURL(), + success: function (data) { + var resultDIV = document.getElementById('gridea-search-result'); + resultDIV.innerHTML = ejs.compile(data)(searchedInfos); + } + }); + } else { + showNoResult(); + } + } + + //搜索结果关键字高亮 + function keywordHighlight(searchedContent) { + var searchedPostContent = searchedContent.item.content;//搜索结果内容预览 + var preview = '... '; + for (var i = 0; i < searchedContent.matches.length; i++) { + if (searchedContent.matches[i].key === 'content') {//如果匹配到文章内容,截取关键字 + var indices = searchedContent.matches[i].indices[0]; + var beforeKeyword = searchedPostContent.substring(indices[0] - 20, indices[0]);//关键字前10字 + var keyword = searchedPostContent.substring(indices[0], indices[1] + 1);//关键字 + var afterKeyword = searchedPostContent.substring(indices[1] + 1, indices[1] + 120);//关键字后70字 + preview = beforeKeyword + '' + + keyword + '' + afterKeyword; + } else {//没有匹配到文章内容,则是标题,直接截取前80字 + preview = searchedPostContent.substring(0, 80); + } + } + return preview + ' ...'; + } + + //循环匹配搜索到的内容与展示信息 + function getResult(infos, searchedContents) { + var searchedInfos = JSON.parse(JSON.stringify(infos));//对象深拷贝 + searchedInfos.posts = []; + for (var i = 0; i < searchedContents.length; i++) { + for (var j = 0; j < infos.posts.length; j++) { + if (searchedContents[i].item.link === infos.posts[j].link) { + infos.posts[j].searchedPreview = keywordHighlight(searchedContents[i]);// 预览关键字高亮 + infos.posts[j].content = searchedContents[i].item.content;// content注入 + searchedInfos.posts.push(infos.posts[j]);// push到所需结果中 + } + } + } + return searchedInfos; + } + + //主方法 + function grideaSearch() { + //搜索结果回调 + var resultHandler = function (searchedContents) { + getInfos(function (infos) { + // console.log(infos); + // console.log(searchedContents); + var searchedInfos = getResult(infos, searchedContents); + renderResult(searchedInfos); + }); + } + searchByPhrase(resultHandler); + } + + //页面加载完执行 + window.onload = function () { + fillSearchInput(); + grideaSearch(); + } +})(); diff --git a/media/gridea-search/result-template.ejs b/media/gridea-search/result-template.ejs new file mode 100644 index 0000000..26d8df6 --- /dev/null +++ b/media/gridea-search/result-template.ejs @@ -0,0 +1,33 @@ +
+
+ <% posts.forEach(function(post) { %> +
+
+ +
+ + <%= post.title %> + +
+
+

<%- post.searchedPreview %>

+
+
+ +
+ <% if (themeConfig.showFeatureImage && post.feature) { %> + + <% } %> +
+ <% }); %> +
+
diff --git a/media/scripts/index.js b/media/scripts/index.js new file mode 100644 index 0000000..a32b591 --- /dev/null +++ b/media/scripts/index.js @@ -0,0 +1 @@ +console.log('Hello Gridea') \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 0000000..3bf9fea --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,382 @@ + + + + + + +itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ + 上一页 + + + 下一页 + +
+ + + + + + +
+
+ + diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 0000000..5b1a976 --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,386 @@ + + + + + + +itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ + 上一页 + + + 下一页 + +
+ + + + + + +
+
+ + diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 0000000..65a6c6e --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,171 @@ + + + + + + +itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ + 上一页 + + +
+ + + + + + +
+
+ + diff --git a/post-images/anaconda3-yu-huan-yuan.gif b/post-images/anaconda3-yu-huan-yuan.gif new file mode 100644 index 0000000000000000000000000000000000000000..049f93e2201c67df9e508d30980f57aa22787ba6 GIT binary patch literal 55145 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�N4HP?HA5(Psw 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 + + + + + +anaconda3与换源 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ anaconda3与换源 +

+ +
+

在terminal中输入

+

conda config --set show_channel_urls yes,

+

这一步之后会在C盘->用户->(你的用户名)这一文件夹下创建一个.condarc文件(在这个文件下我们可以修改conda源。),此处niuni是我的账户名。找到.condarc文件,使用记事本打开

+

打开后粘贴下列内容到文件内,修改为清华源,修改后保存文件修改。

+

channels:

+
    +
  • defaults
    +show_channel_urls: true
    +default_channels:
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  • +
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
    +custom_channels:
    +conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
    +simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  • +
+

此处的意外之坑:

+

按照这个方法一般没有问题,但是在我最近一次的换源后在terminal下使用pip发现速度极慢,在探索了之后发现还需要换掉pip源才可以。更换方法为:

+

打开Terminal,然后键入如下命令:

+

python -m pip install --upgrade pip
+pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
+如果更换的时候速度过慢,建议使用如下指令:

+

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
+pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
+、

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/apple-id-huan-qu/index.html b/post/apple-id-huan-qu/index.html new file mode 100644 index 0000000..86a4f6c --- /dev/null +++ b/post/apple-id-huan-qu/index.html @@ -0,0 +1,191 @@ + + + + + + +Apple ID换区 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ Apple ID换区 +

+ +
+

转换成美国区 Apple ID 可填写如下信息:
+邮编:98133
+地址:One Microsoft Way Redmond WA 98052-6399
+电话:(882)882-8080

+

转换成台湾地区 Apple ID 可填写如下信息:
+邮编:11010
+地址:台北市 信义区 松仁路7号 8楼
+电话:0800-008833

+

转换成香港地区 Apple ID 可填写如下信息:
+邮编:999077
+地址:数码港道100号 数码港二座十三楼
+电话:2388-9600

+

转换成日本 Apple ID 可填写如下信息:
+東京王子大飯店
+地址: 郵遞區號:105-8560 東京都港區芝公園3-3-1, 日本
+電話: +81-(0)3-3432-1111
+或
+信用卡处选择“None”,Code处不添
+phonetic name处添“None”
+postal-code处添“584-7766”
+prefecture处选择“osaka”, city处添“kyoto”
+adress处添“None”
+phone处添“556 4343221”

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/ce-shi/index.html b/post/ce-shi/index.html new file mode 100644 index 0000000..a9c4a90 --- /dev/null +++ b/post/ce-shi/index.html @@ -0,0 +1,175 @@ + + + + + + +XSS测试 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ XSS测试 +

+ +
+ +

测试基本跨站代码
+<Script>alert(/XSS/)</script>
+大小写混合测试
+<sCrIpT>alert(/XSS/)</sCrIpT>
+多重嵌套测试
+<scr<script>ipt>alert(/XSS/)<scr<script>ipt>

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/csdn-po-jie-deng-lu-fu-zhi/index.html b/post/csdn-po-jie-deng-lu-fu-zhi/index.html new file mode 100644 index 0000000..1e432e6 --- /dev/null +++ b/post/csdn-po-jie-deng-lu-fu-zhi/index.html @@ -0,0 +1,172 @@ + + + + + + +csdn破解登陆复制 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ csdn破解登陆复制 +

+ +
+

打开开发者工具(F12)
+输入:
+document.designMode='on'
+即可

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/index.html b/post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/index.html new file mode 100644 index 0000000..976a6bf --- /dev/null +++ b/post/dian-xin-guang-mao-mo-ren-chao-ji-zhang-hao/index.html @@ -0,0 +1,170 @@ + + + + + + +电信光猫默认超级账号 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 电信光猫默认超级账号 +

+ +
+

超级账号 telecomadmin
+密码 nE7jA%5m

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/diao-yu-ji-qiao-quan-gong-lue/index.html b/post/diao-yu-ji-qiao-quan-gong-lue/index.html new file mode 100644 index 0000000..f0efe81 --- /dev/null +++ b/post/diao-yu-ji-qiao-quan-gong-lue/index.html @@ -0,0 +1,184 @@ + + + + + + +钓鱼技巧全攻略 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 钓鱼技巧全攻略 +

+ +
+

一、传统立漂沉底钓鲫鱼: 这是比较普遍的钓法,我国南北东西都有不少钓友采用此种方法。即用立漂或散漂,铅坠沉底,鱼钩距铅坠的脑线大约25毫米。垂钓时鱼漂调整到直立,露出部分,便于判断鱼讯即可(散漂则没入水中两三粒,浮在水面三四粒)。 此法的优点是调整方便,钩坠漂配比要求不严格,便于掌握。但不很灵敏,有经验的鱼常常触动一下鱼饵,发觉较重,即警觉逃走。同时,此法鱼饵沉底不动,如不勤动一下鱼竿,常不为鲫鱼发现。

+

二、台钓鲫鱼: 目前较为盛行。其最大优点是灵敏度强,上鱼率高。鱼钩下沉慢,易为鱼发现。坠悬于水中,钩轻轻触底,鱼在其旁游弋,鱼钩即轻轻摇动,对鱼吸引力极大。为摘钩方便,使用无倒刺钩,摘钩迅速。漂坠饵配比要求严格,鱼汛反映极为灵敏。 缺点是漂坠调整较费事;各种鱼类混养水域,使用钓鲫鱼的钩线,遇到大鱼容易跑鱼损失工具;初学时不易掌握,常有人半途而废。但只要树立信心,勤于实践,掌握也不是很难,而一旦掌握,即会发现其优点大大过于一般传统钓法。

+

三、戳拱钓鲫鱼: 是一种传统钓法。常用在天气炎热的夏季,有浮萍或水草丛生的水域中。一般采用长竿、硬调、短线、无坠。热季水中缺氧,鱼常在水面浮萍下吸空气、拱食、乘凉。从而咬草出声或拱得浮萍形成一个小包。因而应采用听、看办法,寻觅鱼踪。 听主要是听鱼觅食发出的嚓嚓声响;看是看水草晃动和浮萍的鼓包,判断鱼情。发觉有鱼直指该处将钩垂入。一般轻轻将钩放到拱处,看到水面线向水中拽入,或线牵动竿梢即知有鱼咬饵,适时抖竿提起鱼来。 戳拱一般选安静处,动作要轻,鱼出水时尽量避免惊扰其它鱼儿,若有惊扰,鱼不再拱,可用嘴模仿鱼咬草的嚓嚓声,起到催鱼起拱的作用。

+

四、戳孔钓鲫鱼: 一般用于有荷叶、水草多、苇茬多的水域。观察荷叶边、水草孔、苇茬间的鱼泡、荷叶、苇子晃动的情况,判断鱼情。工具一般采用硬调长竿、较竿短的鱼线,小坠,先观察鱼情。 发现后针对有鱼动静的地方,垂竿下钩,使钩沉底,同时不断微微提动鱼竿,引鱼鱼池饵,凭手感觉察鱼儿咬钩,适时提竿。戳孔一般采取走钓,主动找鱼下钩。

+

五、浮钓鲫鱼: 鲫鱼属底层鱼,一般钓底,但遇炎热、气压低的气候,鱼浮到水面游动吸氧觅食,则可采取浮钓法,即将铅坠减轻,使鱼钩悬浮于水面下约0.3--0.5米处,动作要轻,不惊散鱼群。有人针对鲫鱼甩子期的特点也常采用浮钓法。浮钓不需打窝。

+

六、半浮钓鲫鱼: 一般用于体情况而定。底层杂草或淤泥较厚,钩沉底不易为鱼发觉的环境。办法是将坠减轻,调整浮漂至钩触底后露出数格,然后将漂下调5-10厘米(视水底草或淤泥的厚度而定),保持漂仍露出的格数(如坠重适当减轻)。这样使钩略高于水底,便于鱼的发现。

+

七、甩大边钓鲫鱼: 在河道、沟渠中常岸边有芦苇等,鱼喜欢栖居觅食,如果河道不很宽,你的钓位比较嘈杂,可以用长竿、长线,或海竿串钩甩至对岸芦苇、水草边,可以甩出四、五支竿,插好等待,手竿可用漂,海竿则将风线拉直,看竿梢湾动,往往效果很好。

+

八、走钓鲫鱼: 到一水塘,先行观察,选鲫鱼喜栖居的位置撒窝,可保持至少2米一上距离,撒若干窝子。然后采用5-6米左右质轻的鱼竿,采用7--10 粒的散漂,(便于适应水的不同深度,不必老调漂),钓线宜细,鱼钩最好是朝天钩,饵料一般采用红蚯蚓,保持活性最好。 走钓的特点是走,应手持钓竿,沿打过窝的水边观察鱼星的情况,有鱼星即应下钩,无鱼星可继续观察其它钓窝。打窝应每次少打,过些时间再打一遍,即少打勤打。这种钓法变等为找,因此由被动变主动,且对锻炼身体更有好处。

+

九、流水钓鲫鱼: 一般适用于流动水域,竿宜长,线不必太长,坠须重,漂可用数粒散漂,粒漂则宜长,饵以蚯蚓、小虾为好。钩甩入水中,如水流动,可使钩漂顺水同流,到下游后提起再甩至上游,见漂停住,立即提竿。以免底部挂住,若有托漂或下沉,即应提竿上鱼。

+

十、盒饭钓鲫鱼: 类似爆炸钩,但将食放在一个预制的塑料盒中,可以节省饵料,且对饵料的粘、散要求较底。方法是用一个直径为25-50毫米的塑料瓶底或盖,制成高约15-20的小盒。用螺丝自盒里底部中心穿出,固定一个铅坨。盒的四周均匀打七个直径2毫米的小孔。 一个孔穿入钓线,拴上连接环。用三棵软脑线,每棵对折,然后拧在一起套入一个短气门心内。对折的线圈挂在连接环上。三棵对折脑线的六个头,分别从六个小孔中穿出,每端系上一个鱼钩。用时,将盒中放上糟食,将钩从盒外折回到盒内,埋入糟食内,甩出到钓点进行垂钓。

+

十一、活水钓鲫鱼: 鱼类对氧气的需求量不亚于人类,有氧则活,无氧则死,氧气充足的水中,鱼儿最多,最活跃。垂钓水域的进、出水口,含氧量高,被称为活水,在此垂钓必有收获。 下雨时,雨水能将氧气带人水中,所以雨过天晴同样是垂钓的好时机。大风大,水随风而动,不但企氧气溶入,还有岸边的草籽、花粉、树叶等天然鱼食刮人,风停后在下风口垂钓也很好。

+

十二、适温钓鲫鱼: 一年四季,水温变化很大。鱼儿既怕冷又怕热,气温在 15-25T之间摄食最旺盛,过冷就会像人一样猫冬,过热就会歇伏,鲫鱼虽是广温性鱼,但大体规律也是如此。 春秋季节,气温、水温适合全天垂钓;炎热的夏季最好钓早钓晚;寒冷的冬季要选择晴朗的中午垂钓。

+

十三、择地钓鲫鱼: 鲫鱼胆小,喜安静。钓鲫鱼,要选择有草丛、竹木桩、砖砾、岩石、桥墩的地方下钩,这些僻静水域必然鱼多。牛滚幽、淘洗码头、水草茂密处,鱼儿有食可吃,也是钓鲫的好地方。

+

十四、寻洁钓鲫鱼: 鲫鱼喜欢在清洁、多氧气的水中栖息;如果水又脏又浊,鱼会感到憋闷,不想吃东西,常浮在水面嚼水,甚至窒息死亡。垂钓的水域应以浅色为上;淡绿色、淡青色次之;酱色、深褐色的污染水,腐殖质含量高,氧气不足,不宜垂钓。

+

十五、牵引钓钓鲫鱼: 诱饵投放以后,窝里不久就有鱼星上冒,可鱼就是不咬钩,这种情况可能是窝里有鲤鱼、草鱼之类的大鱼,鲫鱼不敢进窝吃食。 此时就应采用牵引法(也称逗钓),即在钓点上下前后左右轻轻地、缓慢地拉动渔线,诱鱼上钩,特别是鲫鱼少吃少动的冬天和初春,用红虫和蚯蚓效果特别好。

+

十六、换饵钓鲫鱼: 鲫鱼属条食性鱼种,荤素皆吃一草食以蚯蚓、红虫、小虾、蛆为主;素食以面粉、蚕豆粉、大米饭、红完了玉米粑为主一面钓时应革素饵变换使用鱼同人一样,有吃新的习惯,如果总吃一种食物也会腻口。

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/diao-yu-zheng-que-kan-piao-ji-qiao/index.html b/post/diao-yu-zheng-que-kan-piao-ji-qiao/index.html new file mode 100644 index 0000000..a3d212e --- /dev/null +++ b/post/diao-yu-zheng-que-kan-piao-ji-qiao/index.html @@ -0,0 +1,188 @@ + + + + + + +钓鱼正确看漂技巧 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 钓鱼正确看漂技巧 +

+ +
+

1、浮漂轻点轻触。多为鲫鱼在试探,连点连触则提竿。
+2、浮漂微微上升一点,徐徐下沉一目半目。说明鱼已吃稳,可提竿。
+3、尾漂慢慢地从顶部,只送半粒到一粒,浮漂不动(有时被误认为是小鱼或碰线),是提竿时机。
+4.浮漂有的时候会慢慢的往下沉。不可忽视它的动静,浮漂的动作愈慢,鲫鱼、鲤鱼、草鱼上钩的痕迹越明显。
+5.星漂微微颤动后,略沉半粒至一粒,漂动即停止。这时提竿时机是浮漂刚刚下沉,其过程很短,垂钓者若不是精力高度集中,稍有迟缓,即可痛失良机。
+6.浮漂一点一点,连续点动,动作很小。也是鲫鱼已吃稳的迹象,即可提竿。
+7.浮漂点动后,接着慢慢上送。动作愈慢鲫鱼愈大,动作速度快多半是小鲫鱼。
+8.浮漂轻轻斜向移位,或平移,或微沉,都要及时提竿。
+9.浮漂有力猛点时。只点一下动作大,不下沉也不上送,鱼饵已吃到嘴里,鱼儿较大应及时提竿。
+10.浮漂横向移动,还有点向下的动作,即提竿。
+11.浮漂横移。不送漂也不黑漂,只作平行横向移动,此时鱼已咬钩,可提竿。
+12.未见浮漂下沉,但送漂时往往是大鱼。说明鱼已吞饵,提必获鱼。
+13.浮漂微微颤动时,连续不停,鱼已咬钩。
+14.浮漂突然快速下沉,或快速上送,多半是小鲫鱼咬钩。
+15.浮漂横卧水面不沉不动。这往往是大鲫鱼半路咬钩,及时提竿起鱼。
+16.浮漂在水面微微连续点颤、轻送或轻沉,是鱼咬钩,应及时提竿。
+17.找窝试点时,空钩下送,浮漂不下沉或突然下沉。这往往是鱼咬空钩,不可忽视,及时提竿可得鱼。
+18.送漂后浮漂迅速恢复原状,漂相为一粒送平后又恢复原状。出现这种现象多为虾蟹脚爪拨动所致,起竿多为空钩。
+19.黑漂后迅速恢复原状,漂相为一粒粒斜向入水,然后恢复原状。多为小杂鱼咬钩捣乱。
+20.浮漂在水下忽闪一下。这鱼儿碰线所致,不用提竿。

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/index.html b/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/index.html new file mode 100644 index 0000000..94d1a1e --- /dev/null +++ b/post/esxi-an-zhuang-qu-dong-fu-zhi-su-du-jia-kuai/index.html @@ -0,0 +1,179 @@ + + + + + + +Esxi 安装驱动 复制速度加快 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ Esxi 安装驱动 复制速度加快 +

+ +
+

1、开启维护模式:

+

esxcli system maintenanceMode set --enable true

+

2、上传 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 到虚拟机存储,我这里是上传到 /vmfs/volumes/datastore1 里

+

3、把 scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib 拷贝到 /var/log/vmware/

+

cp /vmfs/volumes/datastore1/scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib /var/log/vmware/

+

4、卸载原来的驱动

+

esxcli software vib remove -n scsi-hpvsa -f

+

5、安装新上传的驱动

+

esxcli software vib install -v file:scsi-hpvsa-5.5.0-88OEM.550.0.0.1331820.x86_64.vib --force --no-sig-check --maintenance-mode

+

如果提示出错,那就把--force等这些开关去掉,试一下

+

6、完事重启,记得关闭维护模式

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/git-ru-men/index.html b/post/git-ru-men/index.html new file mode 100644 index 0000000..b85e8f2 --- /dev/null +++ b/post/git-ru-men/index.html @@ -0,0 +1,177 @@ + + + + + + +git入门 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ git入门 +

+ +
+

$ git init
+$ git remote add origin https://gitee.com/用户个性地址/HelloGitee.git
+这样就完成了版本的一次初始化。
+接下去,进入你已经初始化好的或者克隆仓库的目录,然后执行:
+$ git pull origin master
+修改/添加文件,否则与原文件相比就没有变动。
+$ git add .
+$ git commit -m "第一次提交"
+$ git push origin master

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/jian-dan-de-efhelper/index.html b/post/jian-dan-de-efhelper/index.html new file mode 100644 index 0000000..10ee32f --- /dev/null +++ b/post/jian-dan-de-efhelper/index.html @@ -0,0 +1,353 @@ + + + + + + +简单的EFHelper | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 简单的EFHelper +

+ +
+

using System;
+using System.Collections.Generic;
+using System.Data.Entity;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+using System.Data;
+using System.Data.SqlClient;

+

namespace DAL
+{

+
//new():实例化对象,对泛型的约束
+public class EFHelper<TDataBase> where TDataBase : DbContext,new()
+{
+    static EFHelper<TDataBase> instance = null;
+    //私有化构造函数 EF(Entity FrameWork):DatabaseFirst,ModelFirst,CodeFirst
+    private EFHelper()
+    {  
+    
+    }
+
+    /// <summary>
+    /// 返回当前对象实例
+    /// </summary>
+    /// <returns></returns>
+    public static EFHelper<TDataBase> GetInstance()
+    {
+        if (instance == null)
+        {
+            instance = new EFHelper<TDataBase>();
+        }
+        return instance;
+    }
+
+    TDataBase db = null;
+    public TDataBase GetDataContext()
+    {
+        if (db == null)
+        {
+            db = new TDataBase();
+        }
+        return db;
+    }
+
+    /// <summary>
+    /// 返回所有数据
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <returns></returns>
+    public List<T> GetList<T>() where T : class
+    {
+        //单例,创建者,观察者(发布订阅),适配器,门面,职责链,模板,工厂,抽象工厂
+        var db = GetDataContext();
+        return db.Set<T>().ToList();
+    }
+
+    /// <summary>
+    /// 根据条件查询
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="predicate"></param>
+    /// <returns>集合对象</returns>
+    public List<T> GetList<T>(Expression<Func<T,bool>> predicate) where T:class
+    {
+        var db = GetDataContext();
+        return db.Set<T>().Where(predicate).ToList();
+    }
+
+    /// <summary>
+    /// 根据条件查询
+    /// 使用EF时必须每张表都有主键ID
+    /// EF:修改删除时必须先获取要修改的数据对象
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="predicate"></param>
+    /// <returns>一个对象</returns>
+    public T GetSingle<T>(Expression<Func<T, bool>> predicate) where T : class
+    {
+        var db = GetDataContext();
+        return db.Set<T>().FirstOrDefault(predicate);
+    }
+
+    /// <summary>
+    /// 插入一个实体
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="Entity"></param>
+    /// <returns></returns>
+    public T InsertEntity<T>(T Entity) where T : class
+    {
+        var db = GetDataContext();
+        try
+        {
+            T result = db.Set<T>().Add(Entity);
+            db.SaveChanges();
+            return result;
+        }
+        catch (Exception ex)
+        {
+            return null;
+        }
+    }
+
+    /// <summary>
+    /// 修改
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="Entity"></param>
+    /// <returns></returns>
+    public bool Update<T>(T Entity) where T : class
+    {
+        var db = GetDataContext();
+        var entry = db.Entry(Entity);
+        //System.Data.Entity
+        entry.State = System.Data.EntityState.Modified;
+        return db.SaveChanges() > 0 ? true : false;
+    }
+
+    /// <summary>
+    /// 传入实体删除
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="Entity"></param>
+    /// <returns></returns>
+    public bool Delete<T>(T Entity) where T : class
+    {
+        var db = GetDataContext();
+        db.Set<T>().Remove(Entity);
+        return db.SaveChanges() > 0 ? true : false;
+    }
+
+    /// <summary>
+    /// 分布查询
+    /// </summary>
+    /// <typeparam name="T">查询的对象</typeparam>
+    /// <typeparam name="TKey">排序字段类型</typeparam>
+    /// <param name="predicate">查询条件</param>
+    /// <param name="keySelector">排序字段</param>
+    /// <param name="pageIndex">当前页数</param>
+    /// <param name="pageNum">每页条数</param>
+    /// <param name="orderType">排序类型,1:升序,2:降序</param>
+    /// <returns>数据列表</returns>
+    public List<T> GetListByPager<T , TKey>(Expression<Func<T, bool>> predicate, Expression<Func<T, TKey>> keySelector, int pageIndex, int pageNum , int orderType) where T : class
+    {
+        var db = GetDataContext();
+        if (orderType == 1)
+        {
+            return db.Set<T>().Where(predicate).OrderBy(keySelector).Skip((pageIndex - 1) * pageNum).Take(pageNum).ToList();
+        }
+        else
+        {
+            return db.Set<T>().Where(predicate).OrderByDescending(keySelector).Skip((pageIndex - 1) * pageNum).Take(pageNum).ToList();
+        }
+    }
+
+    /// <summary>
+    /// 使用SQL增删改
+    /// </summary>
+    /// <param name="sqlstr"></param>
+    /// <param name="pars"></param>
+    public int GetPro(string sqlstr, SqlParameter[] pars)
+    {
+        var db = GetDataContext();
+        return db.Database.ExecuteSqlCommand(sqlstr, pars);
+    }
+
+    /// <summary>
+    /// 使用SQL查询数据
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    /// <param name="sqlstr"></param>
+    /// <param name="pars"></param>
+    /// <returns></returns>
+    public List<T> GetSqlStr<T>(string sqlstr, SqlParameter[] pars)
+    {
+        var db = GetDataContext();
+        return db.Database.SqlQuery<T>(sqlstr, pars).ToList();
+    }
+}
+
+

}

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/index.html b/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/index.html new file mode 100644 index 0000000..6784861 --- /dev/null +++ b/post/jie-jue-aspnet-core-xiang-mu-iis-zai-mo-ren-qing-kuang-xia-bu-zhi-chi-put-he-delete-qing-qiu/index.html @@ -0,0 +1,174 @@ + + + + + + +解决ASP.Net Core项目IIS在默认情况下不支持PUT和DELETE请求 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 解决ASP.Net Core项目IIS在默认情况下不支持PUT和DELETE请求 +

+ +
+
<modules runAllManagedModulesForAllRequests="true">
+
+  <remove name="WebDAVModule"/>
+
+</modules>
+
+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/index.html b/post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/index.html new file mode 100644 index 0000000..b17ef4a --- /dev/null +++ b/post/jie-jue-sheng-ji-win10-hou-zi-dai-app-ying-yong-de-shan-tui-beng-kui-wen-ti/index.html @@ -0,0 +1,175 @@ + + + + + + +解决升级Win10后自带App应用的闪退、崩溃问题 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 解决升级Win10后自带App应用的闪退、崩溃问题 +

+ +
+

输入“PowerShell”,回车。
+解决升级Win10后自带App/应用的闪退、崩溃问题

+

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/js-zhi-xing-hua-kuai-yan-zheng/index.html b/post/js-zhi-xing-hua-kuai-yan-zheng/index.html new file mode 100644 index 0000000..4831f67 --- /dev/null +++ b/post/js-zhi-xing-hua-kuai-yan-zheng/index.html @@ -0,0 +1,195 @@ + + + + + + +js执行滑块验证(无过程) | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ js执行滑块验证(无过程) +

+ +
+

function slide (id) {
+var slider = document.getElementById(id),
+container = slider.parentNode;

+
var rect = slider.getBoundingClientRect(),
+    x0          = rect.x || rect.left,
+    y0          = rect.y || rect.top,
+    w           = container.getBoundingClientRect().width,
+    x1          = x0 + w,
+    y1          = y0;
+
+var mousedown = document.createEvent("MouseEvents");
+mousedown.initMouseEvent("mousedown", true, true, window, 0,
+    x0, y0, x0, y0, false, false, false, false, 0, null);
+slider.dispatchEvent(mousedown);
+
+var mousemove = document.createEvent("MouseEvents");
+mousemove.initMouseEvent("mousemove", true, true, window, 0,
+    x1, y1, x1, y1, false, false, false, false, 0, null);
+slider.dispatchEvent(mousemove);
+
+/*var mouseup = document.createEvent("MouseEvents");
+mouseup.initMouseEvent("mouseup", true, true, window, 0,
+    x1, y1, x1, y1, false, false, false, false, 0, null);
+slider.dispatchEvent(mouseup);*/
+
+

}
+slide('nc_1_n1z');

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/linux-bu-shu-dotnet-huan-jing/index.html b/post/linux-bu-shu-dotnet-huan-jing/index.html new file mode 100644 index 0000000..29bd7de --- /dev/null +++ b/post/linux-bu-shu-dotnet-huan-jing/index.html @@ -0,0 +1,184 @@ + + + + + + +linux部署dotnet环境 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ linux部署dotnet环境 +

+ +
+

首先我们得去官网上下载 .net core sdk 和 runtime
+下载地址: https://dotnet.microsoft.com/download/dotnet-core/
+$ mkdir -p dotnet
+$ tar -zxf dotnet-runtime-6.0.2-linux-arm64.tar.gz -C ./dotnet/
+移动与软链接
+首先要把 dotnet 文件夹移动到 /usr/share/ 目录下
+$ sudo mv dotnet /usr/share/dotnet/
+移动过去之后,再来创建个软连接
+$ sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet
+ok,现在重启下终端或者ssh,你就可以开始使用dotnet了

+

注意可能需要安装libicu
+sudo apt-get install libicu-dev

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/linux-ding-shi-ren-wu/index.html b/post/linux-ding-shi-ren-wu/index.html new file mode 100644 index 0000000..10d6727 --- /dev/null +++ b/post/linux-ding-shi-ren-wu/index.html @@ -0,0 +1,186 @@ + + + + + + +linux定时任务 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ linux定时任务 +

+ +
+

#查看任务
+crontab -l

+

编辑crontab 任务:
+sudo crontab -e

+

再文件的最后一行添加以下这行内容:

+

如:
+0 1 * * * python example.py
+0 1 代表 每天的01:00
+每过5分钟执行
+*/5 * * * * dotnet /home/pi/GetIP/net6.0/GetIP.dll
+每小时的第五分钟执行
+05 * * * * curl localhost/system/dns/dnns.php?ac=ToDNS

+

编辑完毕后,需要执行如下命令

+

sudo /etc/init.d/cron restart

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/mysql-luan-ma-txt/index.html b/post/mysql-luan-ma-txt/index.html new file mode 100644 index 0000000..2e594f9 --- /dev/null +++ b/post/mysql-luan-ma-txt/index.html @@ -0,0 +1,171 @@ + + + + + + +MYsql乱码.txt | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ MYsql乱码.txt +

+ +
+

刚开始的时候普通连接出现乱码,我是这么解决的

+

<add name="blogdbEntities" connectionString="metadata=res://*/Models.BlogDB.csdl|res://*/Models.BlogDB.ssdl|res://*/Models.BlogDB.msl;provider=Devart.Data.MySql;provider connection string=&quot;user id=root;password=root1234;host=127.0.0.1;database=blogdb;persist security info=True;Character Set=utf8&quot;" providerName="System.Data.EntityClient" />

+

把字符集给指定下。

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/mysql-yuan-cheng-fang-wen-root/index.html b/post/mysql-yuan-cheng-fang-wen-root/index.html new file mode 100644 index 0000000..698c446 --- /dev/null +++ b/post/mysql-yuan-cheng-fang-wen-root/index.html @@ -0,0 +1,176 @@ + + + + + + +mysql远程访问 root | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ mysql远程访问 root +

+ +
+

命令一:
+GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

+

命令二:
+FLUSH PRIVILEGES;

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/index.html b/post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/index.html new file mode 100644 index 0000000..0cbfc2f --- /dev/null +++ b/post/net-core-iis-restful-webapi-put-delete-405-method-not-allowed/index.html @@ -0,0 +1,175 @@ + + + + + + +net core iis restful webapi put delete 405 Method Not Allowed | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ net core iis restful webapi put delete 405 Method Not Allowed +

+ +
+

1、在web.config文件中system.webServer节点添加如下配置

+

<modules runAllManagedModulesForAllRequests="false"> <remove name="WebDAVModule" /> </modules>

+

2、重启对应的网站

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/openwrt-cha-jian/index.html b/post/openwrt-cha-jian/index.html new file mode 100644 index 0000000..9edbed6 --- /dev/null +++ b/post/openwrt-cha-jian/index.html @@ -0,0 +1,449 @@ + + + + + + +OpenWrt 插件 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ OpenWrt 插件 +

+ +
+

OpenWrt 编译 LuCI ---> Applications 添加插件应用说明

+

make menuconfig 进入定制界面
+进入编译选项配置界面,.按照需要配置.( ‘*’ 代表编入固件,‘M’ 表示编译成模块或者IPK包, ‘空’不编译 )

+

非常感谢大佬”L有大雕“更正补充,20181121
+大佬源码仓库:https://github.com/coolsnowwolf/lede
+https://op.supes.top/packages/

+

选择LuCI 配置 添加插件应用:常用

+

LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制
+LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus +
+LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定
+LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启
+LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端)
+LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包)
+LuCI ---> Applications ---> luci-app-firewall #添加防火墙
+LuCI ---> Applications ---> luci-app-frpc #内网穿透 Frp
+LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec
+LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器
+LuCI ---> Applications ---> luci-app-ramfree #释放内存
+LuCI ---> Applications ---> luci-app-samba #网络共享(Samba)

+

LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+
+luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Include Shadowsocks Simple Obfs Plugin #SS Simple-Obfs混淆代理(Nginx)
+luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS)

+

LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT)
+LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本
+LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发)
+LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置
+LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器
+LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划
+LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线
+LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒
+LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟
+LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透

+

以下是全部: 注:应用后面标记 “ * ” 为最近新添加;标记“ ! ”与其他插件依赖或冲突。

+

LuCI ---> Applications ---> luci-app-accesscontrol #访问时间控制
+LuCI ---> Applications ---> luci-app-acme #ACME自动化证书管理环境(丢弃)
+LuCI ---> Applications ---> luci-app-adblock #ADB广告过滤
+LuCI ---> Applications ---> luci-app-adbyby-plus #广告屏蔽大师Plus +
+LuCI ---> Applications ---> luci-app-adbyby #广告过滤大师(丢弃)
+LuCI ---> Applications ---> luci-app-adguardhome #AdGuard home广告过滤(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-adkill #广告过滤(丢弃)
+LuCI ---> Applications ---> luci-app-advanced-reboot #Linksys高级重启
+LuCI ---> Applications ---> luci-app-advancedsetting #系统高级设置(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-ahcp #Ad-Hoc配置协议(AHCP) ipv6 and 双栈 自动配置协议 !
+LuCI ---> Applications ---> luci-app-airplay2 #Apple AirPlay2 无损音频接收服务器
+LuCI ---> Applications ---> luci-app-aliddns #阿里DDNS客户端(丢弃,集成至ddns)
+LuCI ---> Applications ---> luci-app-aliyundrive-webdav #阿里云盘 WebDAV 服务
+LuCI ---> Applications ---> luci-app-amule #aMule下载工具 !
+LuCI ---> Applications ---> luci-app-argon-config #Argon主题配置插件(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-aria2 # Aria2下载工具
+LuCI ---> Applications ---> luci-app-arpbind #IP/MAC绑定
+LuCI ---> Applications ---> luci-app-asterisk #支持Asterisk电话服务器
+LuCI ---> Applications ---> luci-app-attendedsysupgrade #固件更新升级相关
+LuCI ---> Applications ---> luci-app-autoreboot #支持计划重启
+LuCI ---> Applications ---> luci-app-baidupcs-web #百度网盘管理
+LuCI ---> Applications ---> luci-app-bcp38 #BCP38网络入口过滤(不确定)
+LuCI ---> Applications ---> luci-app-bird1-ipv4 #对Bird1-ipv4的支持
+LuCI ---> Applications ---> luci-app-bird1-ipv6 #对Bird1-ipv6的支持
+LuCI ---> Applications ---> luci-app-bird4 #Bird 4(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-bird6 #Bird 6(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-bmx6 #BMX6路由协议
+LuCI ---> Applications ---> luci-app-bmx7 #BMX7路由协议(丢弃)
+LuCI ---> Applications ---> luci-app-caldav #联系人(丢弃)
+LuCI ---> Applications ---> luci-app-cifs-mount #CIFS/SMB挂载设置
+LuCI ---> Applications ---> luci-app-cifsd #CIFS/SMB网络共享
+LuCI ---> Applications ---> luci-app-cjdns #加密IPV6网络相关
+LuCI ---> Applications ---> luci-app-clamav #ClamAV杀毒软件
+LuCI ---> Applications ---> luci-app-clash #Clash客户端(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-commands #Shell命令模块
+LuCI ---> Applications ---> luci-app-cshark #CloudShark捕获工具
+LuCI ---> Applications ---> luci-app-dawn #分布式AP管理程序
+LuCI ---> Applications ---> luci-app-ddns #动态域名 DNS(集成阿里DDNS客户端)
+LuCI ---> Applications ---> luci-app-diag-core #core诊断工具
+LuCI ---> Applications ---> luci-app-diskman #磁盘管理工具
+luci-app-diskman ---> Include btrfs-progs #新型的写时复制 (COW)
+luci-app-diskman ---> Include lsblk #lsblk命令 用于列出所有可用块设备的信息
+luci-app-diskman ---> Include mdadm #mdadm命令 用于创建、管理、监控RAID设备的工具
+luci-app-diskman ---> Include kmod-md-raid456 #RAID 4,5,6 驱动程序模块(丢弃)
+luci-app-diskman ---> Include kmod-md-linear #RAID 驱动程序模块(丢弃)
+LuCI ---> Applications ---> luci-app-dnscrypt-proxy #DNSCrypt解决DNS污染
+LuCI ---> Applications ---> luci-app-dnsfilter #DNSFilter基于DNS的广告过滤
+LuCI ---> Applications ---> luci-app-dnsforwarder #DNSForwarder防DNS污染
+LuCI ---> Applications ---> luci-app-dnspod #DNSPod动态域名解析(丢弃)
+LuCI ---> Applications ---> luci-app-docker #Docker容器(dockerman更名为docker)
+LuCI ---> Applications ---> luci-app-dump1090 #民航无线频率(不确定)
+LuCI ---> Applications ---> luci-app-dynapoint #DynaPoint(未知)
+LuCI ---> Applications ---> luci-app-e2guardian #Web内容过滤器
+LuCI ---> Applications ---> luci-app-easymesh #简单MESH(可有线+无线回程)
+LuCI ---> Applications ---> luci-app-eqos #基于IP地址限速(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-familycloud #家庭云盘
+LuCI ---> Applications ---> luci-app-fileassistant #文件管理助手(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-filetransfer #文件传输(可web安装ipk包)
+LuCI ---> Applications ---> luci-app-firewall #添加防火墙
+LuCI ---> Applications ---> luci-app-flowoffload #Turbo ACC网络加速(集成FLOW,BBR,NAT,DNS(丢弃,移至TurboACC)
+LuCI ---> Applications ---> luci-app-freifunk-diagnostics #freifunk组件 诊断(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-freifunk-policyrouting #freifunk组件 策略路由(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-freifunk-widgets #freifunk组件 索引(未知)(丢弃)
+LuCI ---> Applications ---> luci-app-frpc #内网穿透Frp客户端
+LuCI ---> Applications ---> luci-app-frps #内网穿透Frp服务端
+LuCI ---> Applications ---> luci-app-fwknopd #Firewall Knock Operator服务器
+LuCI ---> Applications ---> luci-app-guest-wifi #WiFi访客网络
+LuCI ---> Applications ---> luci-app-gfwlist #GFW域名列表(丢弃)
+LuCI ---> Applications ---> luci-app-go-aliyundrive-webdav #阿里云盘webdav协议(文件管理/同步等) *
+LuCI ---> Applications ---> luci-app-gost #隐蔽的https代理(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-haproxy-tcp #HAProxy负载均衡-TCP
+LuCI ---> Applications ---> luci-app-hd-idle #硬盘休眠
+LuCI ---> Applications ---> luci-app-hnet #Homenet Status家庭网络控制协议
+LuCI ---> Applications ---> luci-app-https-dns-proxy #通过HTTPS代理为DNS提供Web UI
+LuCI ---> Applications ---> luci-app-ipsec-vpnd #VPN服务器 IPSec
+LuCI ---> Applications ---> luci-app-jd-dailybonus #京东签到服务
+LuCI ---> Applications ---> luci-app-kodexplorer #KOD可道云私人网盘(与vnStat冲突 ! )
+LuCI ---> Applications ---> luci-app-kooldns #VPN服务器 ddns替代方案(丢弃)
+LuCI ---> Applications ---> luci-app-koolproxy #KP去广告(丢弃)
+LuCI ---> Applications ---> luci-app-lxc #LXC容器管理
+LuCI ---> Applications ---> luci-app-meshwizard #网络设置向导(丢弃)
+LuCI ---> Applications ---> luci-app-minidlna #完全兼容DLNA / UPnP-AV客户端的服务器软件
+LuCI ---> Applications ---> luci-app-mjpg-streamer #兼容Linux-UVC的摄像头程序
+LuCI ---> Applications ---> luci-app-mtwifi #MTWiFi驱动的支持 (丢弃)
+LuCI ---> Applications ---> luci-app-mmc-over-gpio #添加SD卡操作界面(丢弃)
+LuCI ---> Applications ---> luci-app-multiwan #多拨虚拟网卡(丢弃,移至syncdial)
+LuCI ---> Applications ---> luci-app-mwan #MWAN负载均衡(丢弃)
+LuCI ---> Applications ---> luci-app-music-remote-center #PCHiFi 数字转盘遥控
+LuCI ---> Applications ---> luci-app-mwan3 #MWAN3负载均衡
+LuCI ---> Applications ---> luci-app-mwan3helper #MWAN3分流助手
+LuCI ---> Applications ---> luci-app-n2n_v2 #N2N内网穿透 N2N v2 VPN服务
+LuCI ---> Applications ---> luci-app-netdata #Netdata实时监控(图形化)
+LuCI ---> Applications ---> luci-app-nfs #NFS网络共享
+LuCI ---> Applications ---> luci-app-nft-qos #QOS流控 Nftables版
+LuCI ---> Applications ---> luci-app-ngrokc #Ngrok 内网穿透(丢弃)
+LuCI ---> Applications ---> luci-app-nlbwmon #网络带宽监视器
+LuCI ---> Applications ---> luci-app-noddos #NodDOS Clients 阻止DDoS攻击
+LuCI ---> Applications ---> luci-app-nps #内网穿透nps
+LuCI ---> Applications ---> luci-app-ntpc #NTP时间同步服务器
+LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务
+LuCI ---> Applications ---> luci-app-olsr #OLSR配置和状态模块
+LuCI ---> Applications ---> luci-app-olsr-services #OLSR服务器
+LuCI ---> Applications ---> luci-app-olsr-viz #OLSR可视化
+LuCI ---> Applications ---> luci-app-ocserv #OpenConnect VPN服务(丢弃)
+LuCI ---> Applications ---> luci-app-openclash #运行在OpenWrt上的Clash代理客户端(Le库以外的插件)
+LuCI ---> Applications ---> luci-app-openvpn #OpenVPN客户端
+LuCI ---> Applications ---> luci-app-openvpn-server #易于使用的OpenVPN服务器 Web-UI
+LuCI ---> Applications ---> luci-app-oscam #OSCAM服务器(丢弃)
+LuCI ---> Applications ---> luci-app-p910nd #打印服务器模块
+LuCI ---> Applications ---> luci-app-pagekitec #Pagekitec内网穿透客户端
+LuCI ---> Applications ---> luci-app-passwall #科学上网(Li大佬插件)
+Configuration ---> Include Brook #Brook代理(跨平台强加密且不可检测代理)
+Configuration ---> Include ChinaDNS-NG #防污染DNS服务
+Configuration ---> Include Haproxy #HAProxy #HAProxy负载均衡
+Configuration ---> Include Hysteria #Hysteria双边加速工具
+Configuration ---> Include Kcptun #Kcptun双边加速工具
+Configuration ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量)
+Configuration ---> Include PDNSD #DNS服务器
+Configuration ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+Configuration ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+Configuration ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟)
+Configuration ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+Configuration ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+Configuration ---> Include Simple-Obfs (Shadowsocks plugin) #simple-Obfs简单混淆工具(Nginx)
+Configuration ---> Include Trojan_GO #Trojan_GO代理(直接模仿协议HTTPS)
+Configuration ---> Include Trojan_Plus #Trojan_Plus代理(直接模仿协议HTTPS)
+Configuration ---> Include V2ray #V2Ray代理
+Configuration ---> Include v2ray-plugin (Shadowsocks plugin) #SS V2ray插件(WebSocket+TLS )
+Configuration ---> Include Xray #Xray代理(XTLS)
+Configuration ---> Include Xray-Plugin (Shadowsocks Plugin) #SS Xray插件(WebSocket+TLS ) *
+Configuration ---> Include Dns2socks #DNS服务器(丢弃)
+Configuration ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器)(丢弃)
+Configuration ---> Include Shadowsocks #SS代理(丢弃)
+Configuration ---> Include Shadowsocks Server #SS服务器(丢弃)
+Configuration ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD加密)(丢弃)
+Configuration ---> Include ShadowsocksR #SSR代理(丢弃)
+Configuration ---> Include ShadowsocksR Server #SSR服务器(丢弃)
+Configuration ---> Include Https DNS Proxy(DoH) #HttpsDNS服务(丢弃)
+LuCI ---> Applications ---> luci-app-polipo #Polipo代理(是一个小型且快速的网页缓存代理)
+LuCI ---> Applications ---> luci-app-pppoe-relay #PPPoE NAT穿透 点对点协议(PPP)
+LuCI ---> Applications ---> luci-app-pptp-server #VPN服务器 PPTP
+LuCI ---> Applications ---> luci-app-privoxy #Privoxy网络代理(带过滤无缓存)
+LuCI ---> Applications ---> luci-app-ps3netsrv #PS3 NET服务器(用于加载蓝光/游戏ISO/PKG)
+LuCI ---> Applications ---> luci-app-pushbot #全能推送(钉钉推送,企业微信推送,Bark,PushPlus推送)
+LuCI ---> Applications ---> luci-app-qbittorrent #BT下载工具(qBittorrent)
+Build Version Selection (Static Build) ---> Static Build #选择静态编译版本
+Build Version Selection (Static Build) ---> Dynamic Build #选择动态编译版本
+LuCI ---> Applications ---> luci-app-qos #流量服务质量(QoS)流控
+LuCI ---> Applications ---> luci-app-radicale #CalDAV/CardDAV同步工具
+LuCI ---> Applications ---> luci-app-ramfree #释放内存
+LuCI ---> Applications ---> luci-app-rclone #命令行云端同步工具
+Include rclone-webui #Rclone界面
+Include rclone-ng (another webui) #Rclone另一个界面
+Include fuse-utils (mount cloud storage) #fuse-utils(挂载云存储)(丢弃)
+LuCI ---> Applications ---> luci-app-rp-pppoe-server #Roaring Penguin PPPoE Server 服务器
+LuCI ---> Applications ---> luci-app-samba #网络共享(Samba)
+LuCI ---> Applications ---> luci-app-samba4 #网络共享(Samba4)
+LuCI ---> Applications ---> luci-app-serverchan #微信/Telegram推送的插件
+LuCI ---> Applications ---> luci-app-sfe #Turbo ACC网络加速(丢弃,移至TurboACC)
+LuCI ---> Applications ---> luci-app-shadowsocks #SS科学上网(丢弃)
+LuCI ---> Applications ---> luci-app-shadowsocks-libes #SS-libev服务端
+LuCI ---> Applications ---> luci-app-shairplay #支持AirPlay功能
+LuCI ---> Applications ---> luci-app-siitwizard #SIIT配置向导 SIIT-Wizzard
+LuCI ---> Applications ---> luci-app-simple-adblock #简单的广告拦截
+LuCI ---> Applications ---> luci-app-smartdns #SmartDNS本地服务器(丢弃)
+LuCI ---> Applications ---> luci-app-softethervpn #SoftEther VPN服务器 NAT穿透
+LuCI ---> Applications ---> luci-app-splash #Client-Splash是无线MESH网络的一个热点认证系统
+LuCI ---> Applications ---> luci-app-sqm #流量智能队列管理(QOS)
+LuCI ---> Applications ---> luci-app-squid #Squid代理服务器
+LuCI ---> Applications ---> luci-app-ssr-plus #SSR科学上网Plus+(Le大佬插件)
+Include libustream-ssl ---> Include libustream-wolfssl #选择wolfSSL库(传输层安全协议)
+Include libustream-ssl ---> Include libustream-openssl #选择OpenSSL库(传输层安全协议)
+luci-app-ssr-plus ---> Include Kcptun #Kcptun双边加速工具
+luci-app-ssr-plus ---> Include NaiveProxy #NaiveProxy代理(Chrome网络堆栈伪装流量)
+luci-app-ssr-plus ---> Include Redsocks2 #Redsocks2代理(透明TCP定向Socks/HTTPS代理服务器)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Client #SS Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Libev Server #SS Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Client #SS Rust客户端(负载均衡/探测延迟)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务端(负载均衡/探测延迟)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Client #SSR Libev客户端(轻量级)
+luci-app-ssr-plus ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+luci-app-ssr-plus ---> Include Simple-Obfs Plugin #SS Simple-Obfs混淆代理(Nginx)
+luci-app-ssr-plus ---> Include Trojan #Trojan代理(直接模仿协议HTTPS)
+luci-app-ssr-plus ---> Include Shadowsocks V2ray Plugin #SS V2ray代理(WebSocket+TLS )
+luci-app-ssr-plus ---> Include Xray #Xray代理(XTLS)
+luci-app-ssr-plus ---> Include Shadowsocks New Version #新SS代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks #SS代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Rust (AEAD ciphers only) #SS-RUST代理(AEAD密码) (丢弃)
+luci-app-ssr-plus ---> Include V2ray #V2Ray代理(丢弃)
+luci-app-ssr-plus ---> Include Xray (V2RAY/Trojan-GO implemented) #Xray代理(丢弃)
+luci-app-ssr-plus ---> Include Trojan-go #Trojan-go代理(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Server #SS服务器(丢弃)
+luci-app-ssr-plus ---> Include Shadowsocks Rust Server #SS Rust服务器(丢弃)
+luci-app-ssr-plus ---> Include ShadowsocksR Server #SSR服务器(丢弃)
+luci-app-ssr-plus ---> Include DNS2SOCKS #DNS服务器(丢弃)
+luci-app-ssr-plus ---> Include ShadowsocksR Socks and Tunnel(丢弃)
+luci-app-ssr-plus ---> Include Socks Server #socks代理服务器(丢弃)
+LuCI ---> Applications ---> luci-app-ssr-pro #SSR-Pro(丢弃)
+LuCI ---> Applications ---> luci-app-ssrserver-python #ShadowsocksR Python服务器
+LuCI ---> Applications ---> luci-app-statistics #流量监控工具
+LuCI ---> Applications ---> luci-app-syncdial #多拨虚拟网卡(原macvlan)
+LuCI ---> Applications ---> luci-app-tinyproxy #Tinyproxy是 HTTP(S)代理服务器
+LuCI ---> Applications ---> luci-app-transmission #BT下载工具
+LuCI ---> Applications ---> luci-app-travelmate #旅行路由器
+LuCI ---> Applications ---> luci-app-ttyd #网页终端命令行
+LuCI ---> Applications ---> luci-app-turboacc #Turbo ACC 网络加速(支持 Fast Path 或者 硬件 NAT)
+luci-app-turboacc ---> Include Shortcut-FE #Shortcut-FE 流量分载
+luci-app-turboacc ---> Include BBR CCA #BBR拥塞控制算法提升TCP网络性能
+luci-app-turboacc ---> Include DNSForwarder #DNS防污染 Forwarder
+luci-app-turboacc ---> Include DNSProxy #DNS防污染 Proxy
+LuCI ---> Applications ---> luci-app-udpxy #udpxy做组播服务器
+LuCI ---> Applications ---> luci-app-uhttpd #uHTTPd Web服务器
+LuCI ---> Applications ---> luci-app-unblockmusic #解锁网易云灰色歌曲3合1新版本
+UnblockNeteaseMusic Golang Version #Golang版本
+UnblockNeteaseMusic NodeJS Version #NodeJS版本
+LuCI ---> Applications ---> luci-app-unblockneteasemusic-go #解除网易云音乐(合并)
+LuCI ---> Applications ---> luci-app-unblockneteasemusic-mini #解除网易云音乐(合并)
+LuCI ---> Applications ---> luci-app-unbound #Unbound DNS解析器
+LuCI ---> Applications ---> luci-app-upnp #通用即插即用UPnP(端口自动转发)
+LuCI ---> Applications ---> luci-app-usb-printer #USB 打印服务器
+LuCI ---> Applications ---> luci-app-uugamebooster #UU网游加速器
+LuCI ---> Applications ---> luci-app-v2ray-server #V2Ray 服务器
+LuCI ---> Applications ---> luci-app-v2ray-pro #V2Ray透明代理(丢弃,集成SSR)
+LuCI ---> Applications ---> luci-app-verysync #微力同步
+LuCI ---> Applications ---> luci-app-vlmcsd #KMS服务器设置
+LuCI ---> Applications ---> luci-app-vnstat #vnStat网络监控(图表)(与kodexplorer冲突 ! )
+LuCI ---> Applications ---> luci-app-vpnbypass #VPN BypassWebUI 绕过VPN设置
+LuCI ---> Applications ---> luci-app-vsftpd #FTP服务器
+LuCI ---> Applications ---> luci-app-vssr #VSSR科学上网(je大佬插件)
+luci-app-vssr ---> Include Xray #Xray代理(XTLS)
+luci-app-vssr ---> Include Trojan #Trojan代理(直接模仿协议HTTPS)
+luci-app-vssr ---> Include Kcptun #Kcptun双边加速工具
+luci-app-vssr ---> Include Shadowsocks Xray Plugin #SS Xray代理
+luci-app-vssr ---> Include ShadowsocksR Libev Server #SSR Libev服务端(轻量级)
+LuCI ---> Applications ---> luci-app-watchcat #断网检测功能与定时重启
+LuCI ---> Applications ---> luci-app-webadmin #Web管理页面设置
+LuCI ---> Applications ---> luci-app-webshell #网页命令行终端(丢弃)
+LuCI ---> Applications ---> luci-app-wifischedule #WiFi 计划
+LuCI ---> Applications ---> luci-app-wireguard #VPN服务器 WireGuard状态
+LuCI ---> Applications ---> luci-app-wireless-regdb #WiFi无线
+LuCI ---> Applications ---> luci-app-wol #WOL网络唤醒
+LuCI ---> Applications ---> luci-app-wrtbwmon #实时流量监测
+LuCI ---> Applications ---> luci-app-xlnetacc #迅雷快鸟
+LuCI ---> Applications ---> luci-app-zerotier #ZeroTier内网穿透

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/redmi-ac2100-gu-jian/index.html b/post/redmi-ac2100-gu-jian/index.html new file mode 100644 index 0000000..c934635 --- /dev/null +++ b/post/redmi-ac2100-gu-jian/index.html @@ -0,0 +1,247 @@ + + + + + + +redmi ac2100固件 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ redmi ac2100固件 +

+ +
+

更改redmi ac2100固件版本
+要想刷固件,需要将路由器的固件版本改为2.0.23。但为了防止意外,强烈建议先下载官方的路由修复器。

+

下载路由修复器
+度盘中的MIWIFIRepairTool.x86.rar压缩包,压缩可用,软件本身有使用教程

+

下载2.0.23版本的固件
+度盘中的miwifi_rm2100_all_fb720_2.0.23.bin文件

+

下载后,登录路由器管理界面,打开常用设置->系统状态->升级检测,点击手动升级,将上面下载的2.0.23版本固件刷入路由器

+

刷入breed
+ps:如果是新路由器,个人认为不太需要检查坏块,所以本文中没相关的方法,有需要的可自行搜索

+

打开ssh
+这里,我们使用openwrt官方提供的方法打开ssh

+

登录路由器管理界面,按f12打开开发者工具devtool,点击console,输入下列代码,并回车

+

复制代码
+`function getSTOK() {
+let match = location.href.match(/;stok=(.*?)//);
+if (!match) {
+return null;
+}
+return match[1];
+}

+

function execute(stok, command) {
+command = encodeURIComponent(command);
+let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A;
+console.log(path);
+return fetch(new Request(location.origin + path));
+}

+

function enableSSH() {
+stok = getSTOK();
+if (!stok) {
+console.error('stok not found in URL');
+return;
+}
+console.log(stok = "${stok}");

+
password = prompt('Input new SSH password');
+if (!password) {
+    console.error('You must input password');
+    return;
+}
+
+execute(stok, 
+
+

nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start
+)
+.then((response) => response.text())
+.then((text) => console.log(text));
+console.log('New SSH password: ' + password);
+execute(stok, echo -e "${password}\\n${password}" | passwd root)
+.then((response) => response.text())
+.then((text) => console.log(text));
+}

+

enableSSH();`
+复制代码
+运行成功会返回一个弹窗,要你设置ssh的密码,输入密码点确定。默认帐号为root

+

通过ssh连接路由器,这里推荐xshell:https://www.netsarang.com/zh/xshell/

+

xshell可以免费使用

+

打开xshell,新建会话,主机项填路由ip,点连接。然后输入相应的帐号密码。第一次连接会要求保存凭证,接受并保存即可。

+

这里,暂时先告一段落,接下来是下载breed。

+

利用winscp传入breed
+下载度盘中的breed-mt7621-xiaomi-r3g.bin和WinSCP-5.17.10-Setup.exe

+

安装winscp,新建会话,连接协议选scp,建立和路由器的连接

+

然后将breed上传到路由器的/tmp目录(软件的两边选好路径之后,选中文件,右键点upload上传)

+

然后,回到xshell,输入命令cd /tmp

+

然后输入ls看看是否上传成功

+

之后输入下面的命令将breed刷入路由器

+

mtd -r write breed-mt7621-xiaomi-r3g.bin Bootloader
+刷入之后,关闭路由器电源,按住reset,重新打开路由器电源,直到路由器的system灯变成蓝灯闪烁后,松开reset键

+

浏览器访问192.168.1.1,可以看到breed被刷入成功

+

点击环境变量编辑,新增两个变量

+

字段xiaomi.r3g.bootfw,值为2

+

刷入openwrt底包(可选)
+ps:如果不想刷openwrt,不建议刷入底包

+

下载度盘中的openwrt-ramips-mt7621-xiaomi_redmi-router-ac2100-initramfs-kernel.bin,点击breed中的固件更新

+

勾选固件->选择文件->上传文件

+

即可刷入openwrt低包,然后用这个临时的openwrt去刷想要的openwrt即可

+

临时底包刷固件/breed刷固件教程:https://www.right.com.cn/forum/thread-4025861-1-1.html

+

刷入openwrt/padavan
+升级固件的方法可看上一小节

+

openwrt可下载度盘中的03.03-openwrt-ramips-mt7621-redmi-ac2100-squashfs-sysupgrade.bin

+

padavan可下载度盘中的RM2100_3.4.3.9-099.trx

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/index.html b/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/index.html new file mode 100644 index 0000000..d9ca7a2 --- /dev/null +++ b/post/redmi-ac2100-lu-you-qi-guan-fang-gu-jian-yun-xu-ipv6-wai-wang-fang-wen-xia-you-she-bei/index.html @@ -0,0 +1,220 @@ + + + + + + +Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ Redmi AC2100 路由器 官方固件允许IPv6外网访问下游设备 +

+ +
+

function getSTOK() {
+let match = location.href.match(/;stok=(.*?)//);
+if (!match) {
+return null;
+}
+return match[1];
+}

+

function execute(stok, command) {
+command = encodeURIComponent(command);
+let path = /cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A;
+console.log(path);
+return fetch(new Request(location.origin + path));
+}

+

function enableSSH() {
+stok = getSTOK();
+if (!stok) {
+console.error('stok not found in URL');
+return;
+}
+console.log(stok = "${stok}");

+
password = prompt('Input new SSH password');
+if (!password) {
+    console.error('You must input password');
+    return;
+}
+
+execute(stok, 
+
+

nvram set ssh_en=1 nvram commit sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear /etc/init.d/dropbear start
+)
+.then((response) => response.text())
+.then((text) => console.log(text));
+console.log('New SSH password: ' + password);
+execute(stok, echo -e "${password}\\n${password}" | passwd root)
+.then((response) => response.text())
+.then((text) => console.log(text));
+}

+

enableSSH();

+

使用Putty 或 Xshell 终端连接路由器,MIWIFI默认网关地址为 192.168.31.1,用户名为 root,密码为上一步设定的密码。

+

使用 Vim 修改防火墙配置文件:

+

vim /etc/config/firewall

+

将文件中defaults 闭包下 disable_ipv6 的值改为 0,zone 闭包下 forward 的值改为 ACCEPT

+

在原有的Rule 中添加一个闭包,允许IPv6外网访问路由器下游设备

+

config rule
+option name 'Allow-IPv6'
+option target 'ACCEPT'
+option family 'ipv6'
+list proto 'all'
+option src ''
+option dest '
'

+

终端执行命令,重启路由器防火墙:

+

/etc/init.d/firewall restart

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/roo-fen-qu-kuo-rong/index.html b/post/roo-fen-qu-kuo-rong/index.html new file mode 100644 index 0000000..55f50b9 --- /dev/null +++ b/post/roo-fen-qu-kuo-rong/index.html @@ -0,0 +1,195 @@ + + + + + + +roo分区扩容 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ roo分区扩容 +

+ +
+

U盘是这个路径
+sudo fdisk /dev/sda

+

1、进入分区管理
+输入p,看到两个分区,第一个分区不要动,我们改动第二个分区。
+注意,记住/dev/mmcblk0p2的start起始块数
+sudo fdisk /dev/mmcblk0
+2、删除分区

+

输入d , 再输入2,删除第二分区

+

接着输入p,确认只剩下一个分区
+3、创建分区

+

输入n,创建一个分区
+输入p,建立主分区

+

输入2,输入起始块数

+

接着回车,默认能够分配到最大

+

最后输入y,确认

+

4、保存并重启

+

输入w,保存更改

+

5、修护分区

+

输入
+sudo resize2fs /dev/mmcblk0p2

+

最后再查看一下

+

输入df -h

+

输入sudo reboot,重启

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/shu-mei-pai-huan-qing-hua-yuan/index.html b/post/shu-mei-pai-huan-qing-hua-yuan/index.html new file mode 100644 index 0000000..b1509bc --- /dev/null +++ b/post/shu-mei-pai-huan-qing-hua-yuan/index.html @@ -0,0 +1,182 @@ + + + + + + +树莓派换清华源 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 树莓派换清华源 +

+ +
+

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
+sudo nano /etc/apt/sources.list
+将原文件内容替换成如下:
+[arch=armhf]
+deb [arch=arm64] http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
+deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi

+

sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak
+sudo nano /etc/apt/sources.list.d/raspi.list
+将原文件内容替换成如下:

+

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
+更新源

+

sudo apt-get update

+

gpg --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
+gpg --export --armor 9165938D90FDDD2E| sudo apt-key add -

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/shu-mei-pai-pei-zhi-wifi/index.html b/post/shu-mei-pai-pei-zhi-wifi/index.html new file mode 100644 index 0000000..69b8943 --- /dev/null +++ b/post/shu-mei-pai-pei-zhi-wifi/index.html @@ -0,0 +1,185 @@ + + + + + + +树莓派配置wifi | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 树莓派配置wifi +

+ +
+

创建wpa_supplicant.conf文件 到boot分区 文件输入以下内容

+

country=CN
+ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
+update_config=1

+

network={
+ssid="WiFi名称"
+psk="密码"
+key_mgmt=WPA-PSK
+priority=1
+}

+

network={
+ssid="WiFi名称"
+psk="密码"
+key_mgmt=WPA-PSK
+priority=2
+scan_ssid=1
+}

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/sql-server-mi-yao-ji-jin/index.html b/post/sql-server-mi-yao-ji-jin/index.html new file mode 100644 index 0000000..bbfadb6 --- /dev/null +++ b/post/sql-server-mi-yao-ji-jin/index.html @@ -0,0 +1,190 @@ + + + + + + +SQL Server 密钥集锦 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ SQL Server 密钥集锦 +

+ +
+

SQL Server 2019
+Enterprise:HMWJ3-KY3J2-NMVD7-KG4JR-X2G8G
+Enterprise Core:2C9JR-K3RNG-QD4M4-JQ2HR-8468J
+Strandard:PMBDC-FXVM3-T777P-N4FY8-PKFF4
+Web:33QQK-WWQNB-G6T46-C86YB-TX2PH

+

SQL Server 2017
+Enterprise:TDKQD-PKV44-PJT4N-TCJG2-3YJ6B
+Enterprise Core:6GPYM-VHN83-PHDM2-Q9T2R-KBV83
+Strandard:PHDV4-3VJWD-N7JVP-FGPKY-XBV89
+Web:WV79P-7K6YG-T7QFN-M3WHF-37BXC

+

SQL Server 2016
+Enterprise:MDCJV-3YX8N-WG89M-KV443-G8249
+Enterprise Core:TBR8B-BXC4Y-298NV-PYTBY-G3BCP
+Standard:B9GQY-GBG4J-282NY-QRG4X-KQBCR
+Web:BXJTY-X3GNH-WHTHG-8V3XK-T8243

+

SQL Server 2014
+Business Intelligence:GJPF4-7PTW4-BB9JH-BVP6M-WFTMJ
+Developer:82YJF-9RP6B-YQV9M-VXQFR-YJBGX
+Enterprise:27HMJ-GH7P9-X2TTB-WPHQC-RG79R
+Enterprise Core:TJYBJ-8YGH6-QK2JJ-M9DFB-D7M9D
+Strandard:P7FRV-Y6X6Y-Y8C6Q-TB4QR-DMTTK
+Web:J9MBB-R8PMP-R8WTW-8JJRD-C6GGW

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/termux-shi-yong-ssh-lian-jie/index.html b/post/termux-shi-yong-ssh-lian-jie/index.html new file mode 100644 index 0000000..7fb8105 --- /dev/null +++ b/post/termux-shi-yong-ssh-lian-jie/index.html @@ -0,0 +1,172 @@ + + + + + + +Termux使用ssh链接 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ Termux使用ssh链接 +

+ +
+

1.更改密码(或者说设定初始密码)
+输入:passwd

+

2.安装openssh
+pkg upgrade
+pkg install openssh

+

开启ssh并连接
+在安卓上开启ssh请执行这一句:
+sshd

+

如果要关闭执行这一句:
+pkill sshd
+ssh -p 8022 user@IP

+ +
+
+
+ + + + + + + + + + + + + +
+
+ + diff --git a/post/visual-studio-2022vs2022/index.html b/post/visual-studio-2022vs2022/index.html new file mode 100644 index 0000000..893c396 --- /dev/null +++ b/post/visual-studio-2022vs2022/index.html @@ -0,0 +1,172 @@ + + + + + + +Visual Studio 2022(VS2022) | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ Visual Studio 2022(VS2022) +

+ +
+

Pro:
+  TD244-P4NB7-YQ6XK-Y8MMM-YWV2J
+Enterprise:
+  VHF9H-NXBBB-638P6-6JHCY-88JWH

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/webapi-quan-ju-fan-hui-jsontxt/index.html b/post/webapi-quan-ju-fan-hui-jsontxt/index.html new file mode 100644 index 0000000..76ab371 --- /dev/null +++ b/post/webapi-quan-ju-fan-hui-jsontxt/index.html @@ -0,0 +1,175 @@ + + + + + + +webapi全局返回json.txt | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ webapi全局返回json.txt +

+ +
+

配置Global.asax文件
+//webapi全局返回json
+GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/win10-qi-ye-ban-ji-huo/index.html b/post/win10-qi-ye-ban-ji-huo/index.html new file mode 100644 index 0000000..3193b8e --- /dev/null +++ b/post/win10-qi-ye-ban-ji-huo/index.html @@ -0,0 +1,178 @@ + + + + + + +win10企业版激活 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ win10企业版激活 +

+ +
+
    +
  • slmgr -ipk M7XTQ-FN8P6-TTKYV-9D4CC-J462D
  • +
  • slmgr -skms kms.03k.org
  • +
  • slmgr -ato
  • +
  • slmgr -dlv
  • +
+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/index.html b/post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/index.html new file mode 100644 index 0000000..b8dd2be --- /dev/null +++ b/post/windows-chu-xian-zai-ci-xi-tong-shang-jin-zhi-yun-xing-jiao-ben/index.html @@ -0,0 +1,176 @@ + + + + + + +windows 出现在此系统上禁止运行脚本 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ windows 出现在此系统上禁止运行脚本 +

+ +
+

执行:get-ExecutionPolicy,返回状态:Restricted,表示状态是禁止的,
+然后要设置下
+执行:set-ExecutionPolicy RemoteSigned 开启
+选择Y

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/post/zeng-jia-swap/index.html b/post/zeng-jia-swap/index.html new file mode 100644 index 0000000..f0547fa --- /dev/null +++ b/post/zeng-jia-swap/index.html @@ -0,0 +1,193 @@ + + + + + + +增加swap | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+

+ 增加swap +

+ +
+

首先dd出一个swap文件比如
+sudo dd if=/dev/zero of=/swapfile bs=1024 count=4096000
+这样我们就有了一个4g的swapfile在根目录下

+

ls -alh /swapfile
+-rw-r--r-- 1 root root 4.0G Jan 2 03:22 /swapfile
+接着我们格式化它
+sudo mkswap /swapfile
+修改文件的权限和所有者
+sudo chown root:root /swapfile
+sudo chmod 0600 /swapfile
+接着启用它
+sudo swapon /swapfile
+查看下是不是启用成功

+

free -m

+

当然如果不设置开机挂载的话,重启之后要重新执行
+sudo swapon /swapfile
+所以我们要设置开机自动挂载,编辑下面这个文件
+sudo vim /etc/fstab
+添加上
+/swapfile swap swap defaults 0 0
+重启验证下就好

+ +
+
+
+ + + + + + + + + + + + + + + +
+
+ + diff --git a/search/index.html b/search/index.html new file mode 100644 index 0000000..17592e9 --- /dev/null +++ b/search/index.html @@ -0,0 +1,157 @@ + + + + + + + + +搜索 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+   搜索中...... +

+ 第一次搜索可能需要耗费较长时间构建索引,请耐心等待... +
+ +
+ + + + +
+ + + diff --git a/styles/main.css b/styles/main.css new file mode 100644 index 0000000..ae0ec56 --- /dev/null +++ b/styles/main.css @@ -0,0 +1,1991 @@ +/*! modern-normalize | MIT License | https://github.com/sindresorhus/modern-normalize */ +/* Document + ========================================================================== */ +/** + * Use a better box model (opinionated). + */ +html { + box-sizing: border-box; +} +*, +*::before, +*::after { + box-sizing: inherit; +} +/** + * Use a more readable tab size (opinionated). + */ +:root { + -moz-tab-size: 4; + tab-size: 4; +} +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ +html { + line-height: 1.15; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ +} +/* Sections + ========================================================================== */ +/** + * Remove the margin in all browsers. + */ +body { + margin: 0; +} +/** + * Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) + */ +body { + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; +} +/* Grouping content + ========================================================================== */ +/** + * Add the correct height in Firefox. + */ +hr { + height: 0; +} +/* Text-level semantics + ========================================================================== */ +/** + * Add the correct text decoration in Chrome, Edge, and Safari. + */ +abbr[title] { + text-decoration: underline dotted; +} +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ +b, +strong { + font-weight: bolder; +} +/** + * 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) + * 2. Correct the odd `em` font sizing in all browsers. + */ +code, +kbd, +samp, +pre { + font-family: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, Courier, monospace; + /* 1 */ + font-size: 1em; + /* 2 */ +} +/** + * Add the correct font size in all browsers. + */ +small { + font-size: 80%; +} +/** + * Prevent `sub` and `sup` elements from affecting the line height in all browsers. + */ +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +/* Forms + ========================================================================== */ +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + line-height: 1.15; + /* 1 */ + margin: 0; + /* 2 */ +} +/** + * Remove the inheritance of text transform in Edge and Firefox. + * 1. Remove the inheritance of text transform in Firefox. + */ +button, +select { + /* 1 */ + text-transform: none; +} +/** + * Correct the inability to style clickable types in iOS and Safari. + */ +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} +/** + * Remove the inner border and padding in Firefox. + */ +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} +/** + * Restore the focus styles unset by the previous rule. + */ +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} +/** + * Correct the padding in Firefox. + */ +fieldset { + padding: 0.35em 0.75em 0.625em; +} +/** + * Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. + */ +legend { + padding: 0; +} +/** + * Add the correct vertical alignment in Chrome and Firefox. + */ +progress { + vertical-align: baseline; +} +/** + * Correct the cursor style of increment and decrement buttons in Safari. + */ +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} +/* Interactive + ========================================================================== */ +/* + * Add the correct display in Chrome and Safari. + */ +summary { + display: list-item; +} +*, +*:before, +*:after { + margin: 0; + padding: 0; +} +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + border: 0; + vertical-align: baseline; +} +html { + font-size: 58%; +} +body { + font-family: "PingFang SC", -apple-system, BlinkMacSystemFont, opensans, Optima, 'Microsoft Yahei', sans-serif; + font-size: 16px; + letter-spacing: 1.0382px; +} +button { + outline: none !important; +} +a { + text-decoration: none !important; + transition: all 0.3s; +} +body, +div, +a, +p, +ul, +li, +ol, +h1, +h2, +h3, +h4, +h5, +h6, +table, +tr, +td { + box-sizing: border-box; + margin: 0; + padding: 0; +} +ol li { + list-style: decimal; + font-size: 16px; +} +ul li { + list-style: disc; + font-size: 16px; +} +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} +.main { + max-width: 100%; + min-height: 100vh; + margin: 0 auto; +} +.main .main-content { + flex: 1; + display: flex; + min-height: 100vh; + flex-direction: column; + justify-content: space-between; +} +.gt-post-content { + word-break: normal; + word-wrap: break-word; +} +.gt-post-content a { + transition: all 0.3s; +} +.gt-post-content img { + display: block; + max-width: 100%; + border-radius: 2px; + margin: 18px auto; +} +.gt-post-content p { + line-height: 1.725; + margin-bottom: 18px; + font-size: 16px; + letter-spacing: 1.0382px; +} +.gt-post-content pre { + margin-bottom: 18px; +} +.gt-post-content blockquote { + padding: 16px; + border-left: 4px; + border-style: solid; + margin-bottom: 16px; +} +.gt-post-content blockquote p { + margin-bottom: 0; +} +.gt-post-content table { + border-collapse: collapse; + margin: 1rem 0; + display: block; + overflow-x: auto; +} +.gt-post-content tr { + border-top: 1px solid #dfe2e5; +} +.gt-post-content td, +.gt-post-content th { + border: 1px solid #dfe2e5; + padding: 0.6em 1em; +} +.gt-post-content ul, +.gt-post-content ol { + padding-left: 20px; + line-height: 1.725; + margin-bottom: 16px; +} +.gt-post-content h1, +.gt-post-content h2, +.gt-post-content h3, +.gt-post-content h4, +.gt-post-content h5, +.gt-post-content h6 { + margin-bottom: 18px; + padding-top: 14px; + font-weight: bold; +} +.gt-post-content h1 { + font-size: 28px; +} +.gt-post-content h2 { + font-size: 24px; +} +.gt-post-content h3 { + font-size: 20px; +} +.gt-post-content h4 { + font-size: 18px; +} +.gt-post-content h5 { + font-size: 16px; +} +.gt-post-content h6 { + font-size: 14px; +} +.gt-post-content p code, +.gt-post-content li code { + padding: 0 6px; + margin: 0 3px; + font-size: 13px; + border-radius: 4px; + display: inline-block; +} +.gt-post-content pre { + margin-bottom: 18px; +} +.gt-post-content pre code { + font-size: 13px; + font-family: Menlo, Monaco, 'Source Code Pro', Consolas, 'Courier New', monospace; + padding: 1em; + border-radius: 5px; + line-height: 1.375; + width: 100%; + overflow: scroll; + display: block; +} +.gt-fr { + display: flex; + flex-direction: row; + align-items: center; +} +.gt-fc { + display: flex; + flex-direction: column; +} +.katex .mathdefault { + font-family: KaTeX_Math; + font-style: italic; +} +.navbar { + padding: 38px 96px; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} +.navbar .navbar-brand { + display: flex !important; + flex-direction: row; + align-items: center; + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} +.navbar .navbar-brand:hover, +.navbar .navbar-brand:focus { + text-decoration: none; +} +.navbar .navbar-brand .user-avatar { + width: 40px; + height: 40px; + border-radius: 50%; +} +.navbar .navbar-brand .site-name { + font-size: 28px !important; + font-weight: bold; + margin-left: 16px; +} +.navbar .navbar-nav { + width: 100%; + display: flex; + justify-content: flex-end; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.navbar .navbar-nav .nav-item { + padding: 16px 32px; +} +.navbar .navbar-nav .nav-item a { + font-size: 15px; + flex-shrink: 0; +} +.navbar .img-more { + width: 22px; + height: 22px; +} +.navbar .navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.navbar .navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} +.navbar .navbar-toggler:hover, +.navbar .navbar-toggler:focus { + text-decoration: none; +} +@media (max-width: 992px) { + .navbar { + padding: 30px 30px 0 30px !important; + } + .navbar .navbar-brand .user-avatar { + width: 31px; + height: 31px; + border-radius: 50%; + } + .navbar .navbar-brand .site-name { + font-size: 21px !important; + font-weight: bold; + } + .navbar .nav-item { + padding: 16px 32px; + } + .navbar .nav-item:first-child { + margin-top: 35px; + } +} +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} +@media (max-width: 991px) { + #navbarSupportedContent { + display: none; + } +} +.post-list-container { + display: flex; + flex-direction: column; + align-items: center; +} +.post-list-container .post-inner { + min-width: 1000px; + max-width: 1000px; +} +.post-list-container .post-inner .post { + margin: 30px; + border-radius: 4px; + padding: 28px; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + transition: all 0.3s; +} +.post-list-container .post-inner .post .post-left { + width: 100%; + display: flex; + flex-direction: column; +} +.post-list-container .post-inner .post .post-left .sticky-top-flag { + color: white; + padding: 3px 10px; + font-size: 12px; + border-radius: 3px; + margin-right: 10px; + vertical-align: middle; +} +.post-list-container .post-inner .post .post-left .post-title { + font-size: 22px; + font-weight: normal; + vertical-align: middle; +} +.post-list-container .post-inner .post .post-left .post-abstract { + width: 100%; + margin-top: 20px; + line-height: 1.5; +} +.post-list-container .post-inner .post .post-left .post-abstract * { + font-size: 13px; + margin-bottom: 0; +} +.post-list-container .post-inner .post .post-left .post-info { + margin-top: 20px; +} +.post-list-container .post-inner .post .post-left .post-info .post-time { + font-size: 12px; +} +.post-list-container .post-inner .post .post-left .post-info .post-tag { + font-size: 12px; + margin-left: 10px; +} +.post-list-container .post-inner .post:hover { + transform: scale(1.012); +} +.post-list-container .post-inner .post .post-feature-image { + width: 200px; + height: 100px; + flex-basis: 200px; + flex-shrink: 0; + margin-left: 20px; + border-radius: 2px; + overflow: hidden; + background-size: cover; + background-position: center; +} +.pagination-container { + padding: 24px 32px 32px; + align-self: center; +} +.pagination-container .prev-page { + margin: 0 16px; + font-size: 14px; +} +.pagination-container .next-page { + margin: 0 16px; + font-size: 14px; +} +@media (max-width: 992px) { + .post-list-container .post-inner { + min-width: 0; + width: 100%; + margin-top: 16px; + } + .post-list-container .post-inner .post { + margin: 12px 16px 12px 16px; + padding: 18px 22px 18px 22px; + } + .post-list-container .post-inner .post .post-left .post-title { + font-size: 17px; + font-weight: bold; + } + .post-list-container .post-inner .post .post-left .post-abstract { + margin-top: 10px; + } + .post-list-container .post-inner .post .post-left .post-info { + margin-top: 10px; + } + .post-list-container .post-inner .post .post-left .post-info .post-time { + font-size: 12px; + } + .post-list-container .post-inner .post .post-left .post-info .post-tag { + font-size: 12px; + margin-left: 10px; + } + .post-list-container .post-inner .post .post-feature-image { + width: 0; + height: 0; + flex-basis: 0; + flex-shrink: 0; + margin-left: 0; + border-radius: 2px; + overflow: hidden; + background-size: cover; + background-position: center; + } +} +.post-container { + display: flex; + flex-direction: column; + align-items: center; + min-height: 100%; + flex: 1; +} +.post-container .post-detail { + flex: 1; + padding: 24px 32px; + width: 1000px; + border-radius: 4px; +} +.post-container .post-detail .post-title { + font-size: 26px; + text-align: center; + padding: 24px; + font-weight: normal; +} +.post-container .post-detail .post-info { + text-align: center; + font-size: 12px; + padding-bottom: 24px; +} +.post-container .post-detail .post-info .post-tag { + padding: 8px 16px; +} +.post-container .post-detail .post-content { + margin-top: 30px; +} +.next-post { + text-align: center; + padding: 24px 32px; +} +.next-post .next { + margin-bottom: 24px; + font-size: 14px; +} +.next-post .post-title { + font-size: 20px; + font-weight: bold; +} +#gitalk-container, +#disqus_thread { + padding: 24px 32px; + width: 80%; + max-width: 1000px; +} +@media (max-width: 992px) { + .post-container .post-detail { + width: 100%; + margin-top: 20px; + } + .post-container .post-detail .post-title { + font-size: 20px; + font-weight: bold; + } + #gitalk-container, + #disqus_thread { + padding: 24px 32px; + width: 100%; + } +} +.archives-container { + padding: 32px; + display: flex; + flex-direction: column; +} +.archives-container .year { + font-size: 34px; + font-weight: bold; + margin-top: 16px; + margin-bottom: 16px; + align-self: start; +} +.archives-container .post { + float: left; + padding: 16px 0; +} +.archives-container .post .post-title { + float: left; + font-size: 16px; +} +.archives-container .post .post-title small { + float: left; + font-size: 80%; +} +@media (max-width: 600px) { + .archives-container { + padding: 16px; + } +} +.tags-container { + padding: 32px 32px; + flex: 1; + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + flex-wrap: wrap; +} +.tags-container .tag { + font-size: 15px; + margin: 5px 15px; +} +.current-tag-container .title { + text-align: center; + font-size: 18px; + margin-bottom: 24px; +} +@media (max-width: 992px) { + .current-tag-container .title { + margin-top: 50px; + } +} +.about-page { + padding: 24px 32px; +} +.site-footer { + font-size: 12px; + text-align: center; + padding: 24px; +} +.site-footer .slogan { + padding-bottom: 16px; +} +.site-footer .social-container { + padding-bottom: 16px; +} +.site-footer .social-container i { + padding-left: 10px; + padding-right: 10px; + font-size: 20px; +} +.site-footer .footer-info { + padding-bottom: 10px; +} +.friend-box { + float: left; + max-width: calc(50% - 20px); + min-width: calc(50% - 20px); + margin: 15px 10px; + background-color: rgba(20, 153, 196, 0.125); + padding: 15px; + border-radius: 15px; +} +.friend-box img.friend-avatar { + width: 70px; + height: 70px; + border-radius: 50% !important; + float: left; + margin: 0 15px 0 0 !important; +} +.friend-box .flink-info { + height: 70px; + overflow: hidden; + line-height: 24px; + padding-left: 30px; + font-size: 14px; +} +.friend-box .flink-info a { + font-size: 18px; + background: linear-gradient(180deg, transparent 75%, rgba(116, 192, 252, 0.4) 0); + margin-bottom: 10px; +} +.friend-box .flink-info .flink-info-desc { + margin-top: 10px; +} +@media (max-width: 993px) { + .friend-box { + max-width: 90% !important; + } +} +@media (max-width: 465px) { + .flink-info-desc { + display: none; + } +} +#gridea-search-form .search-input { + position: relative; + left: -2px; + width: 180px; + height: 30px; + padding: 0 0 2px 35px; + font-size: 12px; + background-size: 20px; + border: 0; + border-radius: 15px; + border-bottom-color: currentcolor; + border-bottom-style: none; + border-bottom-width: medium; + outline: 0; + border-bottom: 2px #495057; + transition: border-color 0.2s; +} +@media (max-width: 992px) { + #gridea-search-form .fa-search { + visibility: hidden; + } +} +.searching, +.no-result { + text-align: center; +} +/* + +Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull + +*/ +.hljs { + display: block; + overflow-x: auto; + padding: 0.5em; + background: #002b36; + color: #839496; +} +.hljs-comment, +.hljs-quote { + color: #586e75; +} +/* Solarized Green */ +.hljs-keyword, +.hljs-selector-tag, +.hljs-addition { + color: #859900; +} +/* Solarized Cyan */ +.hljs-number, +.hljs-string, +.hljs-meta .hljs-meta-string, +.hljs-literal, +.hljs-doctag, +.hljs-regexp { + color: #2aa198; +} +/* Solarized Blue */ +.hljs-title, +.hljs-section, +.hljs-name, +.hljs-selector-id, +.hljs-selector-class { + color: #268bd2; +} +/* Solarized Yellow */ +.hljs-attribute, +.hljs-attr, +.hljs-variable, +.hljs-template-variable, +.hljs-class .hljs-title, +.hljs-type { + color: #b58900; +} +/* Solarized Orange */ +.hljs-symbol, +.hljs-bullet, +.hljs-subst, +.hljs-meta, +.hljs-meta .hljs-keyword, +.hljs-selector-attr, +.hljs-selector-pseudo, +.hljs-link { + color: #cb4b16; +} +/* Solarized Red */ +.hljs-built_in, +.hljs-deletion { + color: #dc322f; +} +.hljs-formula { + background: #073642; +} +.hljs-emphasis { + font-style: italic; +} +.hljs-strong { + font-weight: bold; +} +/* 代码滑块 */ +pre::-webkit-scrollbar { + width: 8px; + height: 8px; +} +pre::-webkit-scrollbar-thumb { + border-radius: 4px; + background-color: #cbcbcb; +} +pre::-webkit-scrollbar-thumb:hover { + background-color: #bbb; +} +code::-webkit-scrollbar { + width: 8px; + height: 8px; +} +code::-webkit-scrollbar-thumb { + border-radius: 6px; + background-color: #cbcbcb; +} +code::-webkit-scrollbar-thumb:hover { + background-color: #bbb; +} +@font-face { + font-family: KaTeX_AMS; + src: url(fonts/KaTeX_AMS-Regular.eot); + src: url(fonts/KaTeX_AMS-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_AMS-Regular.woff2) format('woff2'), url(fonts/KaTeX_AMS-Regular.woff) format('woff'), url(fonts/KaTeX_AMS-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Caligraphic; + src: url(fonts/KaTeX_Caligraphic-Bold.eot); + src: url(fonts/KaTeX_Caligraphic-Bold.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Bold.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Bold.ttf) format('ttf'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: KaTeX_Caligraphic; + src: url(fonts/KaTeX_Caligraphic-Regular.eot); + src: url(fonts/KaTeX_Caligraphic-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'), url(fonts/KaTeX_Caligraphic-Regular.woff) format('woff'), url(fonts/KaTeX_Caligraphic-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Fraktur; + src: url(fonts/KaTeX_Fraktur-Bold.eot); + src: url(fonts/KaTeX_Fraktur-Bold.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Bold.woff) format('woff'), url(fonts/KaTeX_Fraktur-Bold.ttf) format('ttf'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: KaTeX_Fraktur; + src: url(fonts/KaTeX_Fraktur-Regular.eot); + src: url(fonts/KaTeX_Fraktur-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'), url(fonts/KaTeX_Fraktur-Regular.woff) format('woff'), url(fonts/KaTeX_Fraktur-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Main; + src: url(fonts/KaTeX_Main-Bold.eot); + src: url(fonts/KaTeX_Main-Bold.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Main-Bold.woff2) format('woff2'), url(fonts/KaTeX_Main-Bold.woff) format('woff'), url(fonts/KaTeX_Main-Bold.ttf) format('ttf'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: KaTeX_Main; + src: url(fonts/KaTeX_Main-Italic.eot); + src: url(fonts/KaTeX_Main-Italic.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Main-Italic.woff2) format('woff2'), url(fonts/KaTeX_Main-Italic.woff) format('woff'), url(fonts/KaTeX_Main-Italic.ttf) format('ttf'); + font-weight: 400; + font-style: italic; +} +@font-face { + font-family: KaTeX_Main; + src: url(fonts/KaTeX_Main-Regular.eot); + src: url(fonts/KaTeX_Main-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Main-Regular.woff2) format('woff2'), url(fonts/KaTeX_Main-Regular.woff) format('woff'), url(fonts/KaTeX_Main-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Math; + src: url(fonts/KaTeX_Math-Italic.eot); + src: url(fonts/KaTeX_Math-Italic.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Math-Italic.woff2) format('woff2'), url(fonts/KaTeX_Math-Italic.woff) format('woff'), url(fonts/KaTeX_Math-Italic.ttf) format('ttf'); + font-weight: 400; + font-style: italic; +} +@font-face { + font-family: KaTeX_SansSerif; + src: url(fonts/KaTeX_SansSerif-Regular.eot); + src: url(fonts/KaTeX_SansSerif-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'), url(fonts/KaTeX_SansSerif-Regular.woff) format('woff'), url(fonts/KaTeX_SansSerif-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Script; + src: url(fonts/KaTeX_Script-Regular.eot); + src: url(fonts/KaTeX_Script-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Script-Regular.woff2) format('woff2'), url(fonts/KaTeX_Script-Regular.woff) format('woff'), url(fonts/KaTeX_Script-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Size1; + src: url(fonts/KaTeX_Size1-Regular.eot); + src: url(fonts/KaTeX_Size1-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Size1-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size1-Regular.woff) format('woff'), url(fonts/KaTeX_Size1-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Size2; + src: url(fonts/KaTeX_Size2-Regular.eot); + src: url(fonts/KaTeX_Size2-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Size2-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size2-Regular.woff) format('woff'), url(fonts/KaTeX_Size2-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Size3; + src: url(fonts/KaTeX_Size3-Regular.eot); + src: url(fonts/KaTeX_Size3-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Size3-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size3-Regular.woff) format('woff'), url(fonts/KaTeX_Size3-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Size4; + src: url(fonts/KaTeX_Size4-Regular.eot); + src: url(fonts/KaTeX_Size4-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Size4-Regular.woff2) format('woff2'), url(fonts/KaTeX_Size4-Regular.woff) format('woff'), url(fonts/KaTeX_Size4-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: KaTeX_Typewriter; + src: url(fonts/KaTeX_Typewriter-Regular.eot); + src: url(fonts/KaTeX_Typewriter-Regular.eot#iefix) format('embedded-opentype'), url(fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'), url(fonts/KaTeX_Typewriter-Regular.woff) format('woff'), url(fonts/KaTeX_Typewriter-Regular.ttf) format('ttf'); + font-weight: 400; + font-style: normal; +} +.katex-display { + display: block; + margin: 1em 0; + text-align: center; +} +.katex-display > .katex { + display: inline-block; +} +.katex { + font: 400 1.21em KaTeX_Main; + line-height: 1.2; + white-space: nowrap; + text-indent: 0; +} +.katex .katex-html { + display: inline-block; +} +.katex .katex-mathml { + position: absolute; + clip: rect(1px, 1px, 1px, 1px); + padding: 0; + border: 0; + height: 1px; + width: 1px; + overflow: hidden; +} +.katex .base, +.katex .strut { + display: inline-block; +} +.katex .mathit { + font-family: KaTeX_Math; + font-style: italic; +} +.katex .mathbf { + font-family: KaTeX_Main; + font-weight: 700; +} +.katex .amsrm, +.katex .mathbb { + font-family: KaTeX_AMS; +} +.katex .mathcal { + font-family: KaTeX_Caligraphic; +} +.katex .mathfrak { + font-family: KaTeX_Fraktur; +} +.katex .mathtt { + font-family: KaTeX_Typewriter; +} +.katex .mathscr { + font-family: KaTeX_Script; +} +.katex .mathsf { + font-family: KaTeX_SansSerif; +} +.katex .mainit { + font-family: KaTeX_Main; + font-style: italic; +} +.katex .textstyle > .mord + .mop { + margin-left: 0.16667em; +} +.katex .textstyle > .mord + .mbin { + margin-left: 0.22222em; +} +.katex .textstyle > .mord + .mrel { + margin-left: 0.27778em; +} +.katex .textstyle > .mop + .mop, +.katex .textstyle > .mop + .mord, +.katex .textstyle > .mord + .minner { + margin-left: 0.16667em; +} +.katex .textstyle > .mop + .mrel { + margin-left: 0.27778em; +} +.katex .textstyle > .mop + .minner { + margin-left: 0.16667em; +} +.katex .textstyle > .mbin + .minner, +.katex .textstyle > .mbin + .mop, +.katex .textstyle > .mbin + .mopen, +.katex .textstyle > .mbin + .mord { + margin-left: 0.22222em; +} +.katex .textstyle > .mrel + .minner, +.katex .textstyle > .mrel + .mop, +.katex .textstyle > .mrel + .mopen, +.katex .textstyle > .mrel + .mord { + margin-left: 0.27778em; +} +.katex .textstyle > .mclose + .mop { + margin-left: 0.16667em; +} +.katex .textstyle > .mclose + .mbin { + margin-left: 0.22222em; +} +.katex .textstyle > .mclose + .mrel { + margin-left: 0.27778em; +} +.katex .textstyle > .mclose + .minner, +.katex .textstyle > .minner + .mop, +.katex .textstyle > .minner + .mord, +.katex .textstyle > .mpunct + .mclose, +.katex .textstyle > .mpunct + .minner, +.katex .textstyle > .mpunct + .mop, +.katex .textstyle > .mpunct + .mopen, +.katex .textstyle > .mpunct + .mord, +.katex .textstyle > .mpunct + .mpunct, +.katex .textstyle > .mpunct + .mrel { + margin-left: 0.16667em; +} +.katex .textstyle > .minner + .mbin { + margin-left: 0.22222em; +} +.katex .textstyle > .minner + .mrel { + margin-left: 0.27778em; +} +.katex .mclose + .mop, +.katex .minner + .mop, +.katex .mop + .mop, +.katex .mop + .mord, +.katex .mord + .mop, +.katex .textstyle > .minner + .minner, +.katex .textstyle > .minner + .mopen, +.katex .textstyle > .minner + .mpunct { + margin-left: 0.16667em; +} +.katex .reset-textstyle.textstyle { + font-size: 1em; +} +.katex .reset-textstyle.scriptstyle { + font-size: 0.7em; +} +.katex .reset-textstyle.scriptscriptstyle { + font-size: 0.5em; +} +.katex .reset-scriptstyle.textstyle { + font-size: 1.42857em; +} +.katex .reset-scriptstyle.scriptstyle { + font-size: 1em; +} +.katex .reset-scriptstyle.scriptscriptstyle { + font-size: 0.71429em; +} +.katex .reset-scriptscriptstyle.textstyle { + font-size: 2em; +} +.katex .reset-scriptscriptstyle.scriptstyle { + font-size: 1.4em; +} +.katex .reset-scriptscriptstyle.scriptscriptstyle { + font-size: 1em; +} +.katex .style-wrap { + position: relative; +} +.katex .vlist { + display: inline-block; +} +.katex .vlist > span { + display: block; + height: 0; + position: relative; +} +.katex .vlist > span > span { + display: inline-block; +} +.katex .vlist .baseline-fix { + display: inline-table; + table-layout: fixed; +} +.katex .msupsub { + text-align: left; +} +.katex .mfrac > span > span { + text-align: center; +} +.katex .mfrac .frac-line { + width: 100%; +} +.katex .mfrac .frac-line:before { + border-bottom-style: solid; + border-bottom-width: 1px; + content: ""; + display: block; +} +.katex .mfrac .frac-line:after { + border-bottom-style: solid; + border-bottom-width: 0.04em; + content: ""; + display: block; + margin-top: -1px; +} +.katex .mspace { + display: inline-block; +} +.katex .mspace.negativethinspace { + margin-left: -0.16667em; +} +.katex .mspace.thinspace { + width: 0.16667em; +} +.katex .mspace.mediumspace { + width: 0.22222em; +} +.katex .mspace.thickspace { + width: 0.27778em; +} +.katex .mspace.enspace { + width: 0.5em; +} +.katex .mspace.quad { + width: 1em; +} +.katex .mspace.qquad { + width: 2em; +} +.katex .llap, +.katex .rlap { + width: 0; + position: relative; +} +.katex .llap > .inner, +.katex .rlap > .inner { + position: absolute; +} +.katex .llap > .fix, +.katex .rlap > .fix { + display: inline-block; +} +.katex .llap > .inner { + right: 0; +} +.katex .rlap > .inner { + left: 0; +} +.katex .katex-logo .a { + font-size: 0.75em; + margin-left: -0.32em; + position: relative; + top: -0.2em; +} +.katex .katex-logo .t { + margin-left: -0.23em; +} +.katex .katex-logo .e { + margin-left: -0.1667em; + position: relative; + top: 0.2155em; +} +.katex .katex-logo .x { + margin-left: -0.125em; +} +.katex .rule { + display: inline-block; + border-style: solid; + position: relative; +} +.katex .overline .overline-line { + width: 100%; +} +.katex .overline .overline-line:before { + border-bottom-style: solid; + border-bottom-width: 1px; + content: ""; + display: block; +} +.katex .overline .overline-line:after { + border-bottom-style: solid; + border-bottom-width: 0.04em; + content: ""; + display: block; + margin-top: -1px; +} +.katex .sqrt > .sqrt-sign { + position: relative; +} +.katex .sqrt .sqrt-line { + width: 100%; +} +.katex .sqrt .sqrt-line:before { + border-bottom-style: solid; + border-bottom-width: 1px; + content: ""; + display: block; +} +.katex .sqrt .sqrt-line:after { + border-bottom-style: solid; + border-bottom-width: 0.04em; + content: ""; + display: block; + margin-top: -1px; +} +.katex .sqrt > .root { + margin-left: 0.27777778em; + margin-right: -0.55555556em; +} +.katex .fontsize-ensurer, +.katex .sizing { + display: inline-block; +} +.katex .fontsize-ensurer.reset-size1.size1, +.katex .sizing.reset-size1.size1 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size1.size2, +.katex .sizing.reset-size1.size2 { + font-size: 1.4em; +} +.katex .fontsize-ensurer.reset-size1.size3, +.katex .sizing.reset-size1.size3 { + font-size: 1.6em; +} +.katex .fontsize-ensurer.reset-size1.size4, +.katex .sizing.reset-size1.size4 { + font-size: 1.8em; +} +.katex .fontsize-ensurer.reset-size1.size5, +.katex .sizing.reset-size1.size5 { + font-size: 2em; +} +.katex .fontsize-ensurer.reset-size1.size6, +.katex .sizing.reset-size1.size6 { + font-size: 2.4em; +} +.katex .fontsize-ensurer.reset-size1.size7, +.katex .sizing.reset-size1.size7 { + font-size: 2.88em; +} +.katex .fontsize-ensurer.reset-size1.size8, +.katex .sizing.reset-size1.size8 { + font-size: 3.46em; +} +.katex .fontsize-ensurer.reset-size1.size9, +.katex .sizing.reset-size1.size9 { + font-size: 4.14em; +} +.katex .fontsize-ensurer.reset-size1.size10, +.katex .sizing.reset-size1.size10 { + font-size: 4.98em; +} +.katex .fontsize-ensurer.reset-size2.size1, +.katex .sizing.reset-size2.size1 { + font-size: 0.71428571em; +} +.katex .fontsize-ensurer.reset-size2.size2, +.katex .sizing.reset-size2.size2 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size2.size3, +.katex .sizing.reset-size2.size3 { + font-size: 1.14285714em; +} +.katex .fontsize-ensurer.reset-size2.size4, +.katex .sizing.reset-size2.size4 { + font-size: 1.28571429em; +} +.katex .fontsize-ensurer.reset-size2.size5, +.katex .sizing.reset-size2.size5 { + font-size: 1.42857143em; +} +.katex .fontsize-ensurer.reset-size2.size6, +.katex .sizing.reset-size2.size6 { + font-size: 1.71428571em; +} +.katex .fontsize-ensurer.reset-size2.size7, +.katex .sizing.reset-size2.size7 { + font-size: 2.05714286em; +} +.katex .fontsize-ensurer.reset-size2.size8, +.katex .sizing.reset-size2.size8 { + font-size: 2.47142857em; +} +.katex .fontsize-ensurer.reset-size2.size9, +.katex .sizing.reset-size2.size9 { + font-size: 2.95714286em; +} +.katex .fontsize-ensurer.reset-size2.size10, +.katex .sizing.reset-size2.size10 { + font-size: 3.55714286em; +} +.katex .fontsize-ensurer.reset-size3.size1, +.katex .sizing.reset-size3.size1 { + font-size: 0.625em; +} +.katex .fontsize-ensurer.reset-size3.size2, +.katex .sizing.reset-size3.size2 { + font-size: 0.875em; +} +.katex .fontsize-ensurer.reset-size3.size3, +.katex .sizing.reset-size3.size3 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size3.size4, +.katex .sizing.reset-size3.size4 { + font-size: 1.125em; +} +.katex .fontsize-ensurer.reset-size3.size5, +.katex .sizing.reset-size3.size5 { + font-size: 1.25em; +} +.katex .fontsize-ensurer.reset-size3.size6, +.katex .sizing.reset-size3.size6 { + font-size: 1.5em; +} +.katex .fontsize-ensurer.reset-size3.size7, +.katex .sizing.reset-size3.size7 { + font-size: 1.8em; +} +.katex .fontsize-ensurer.reset-size3.size8, +.katex .sizing.reset-size3.size8 { + font-size: 2.1625em; +} +.katex .fontsize-ensurer.reset-size3.size9, +.katex .sizing.reset-size3.size9 { + font-size: 2.5875em; +} +.katex .fontsize-ensurer.reset-size3.size10, +.katex .sizing.reset-size3.size10 { + font-size: 3.1125em; +} +.katex .fontsize-ensurer.reset-size4.size1, +.katex .sizing.reset-size4.size1 { + font-size: 0.55555556em; +} +.katex .fontsize-ensurer.reset-size4.size2, +.katex .sizing.reset-size4.size2 { + font-size: 0.77777778em; +} +.katex .fontsize-ensurer.reset-size4.size3, +.katex .sizing.reset-size4.size3 { + font-size: 0.88888889em; +} +.katex .fontsize-ensurer.reset-size4.size4, +.katex .sizing.reset-size4.size4 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size4.size5, +.katex .sizing.reset-size4.size5 { + font-size: 1.11111111em; +} +.katex .fontsize-ensurer.reset-size4.size6, +.katex .sizing.reset-size4.size6 { + font-size: 1.33333333em; +} +.katex .fontsize-ensurer.reset-size4.size7, +.katex .sizing.reset-size4.size7 { + font-size: 1.6em; +} +.katex .fontsize-ensurer.reset-size4.size8, +.katex .sizing.reset-size4.size8 { + font-size: 1.92222222em; +} +.katex .fontsize-ensurer.reset-size4.size9, +.katex .sizing.reset-size4.size9 { + font-size: 2.3em; +} +.katex .fontsize-ensurer.reset-size4.size10, +.katex .sizing.reset-size4.size10 { + font-size: 2.76666667em; +} +.katex .fontsize-ensurer.reset-size5.size1, +.katex .sizing.reset-size5.size1 { + font-size: 0.5em; +} +.katex .fontsize-ensurer.reset-size5.size2, +.katex .sizing.reset-size5.size2 { + font-size: 0.7em; +} +.katex .fontsize-ensurer.reset-size5.size3, +.katex .sizing.reset-size5.size3 { + font-size: 0.8em; +} +.katex .fontsize-ensurer.reset-size5.size4, +.katex .sizing.reset-size5.size4 { + font-size: 0.9em; +} +.katex .fontsize-ensurer.reset-size5.size5, +.katex .sizing.reset-size5.size5 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size5.size6, +.katex .sizing.reset-size5.size6 { + font-size: 1.2em; +} +.katex .fontsize-ensurer.reset-size5.size7, +.katex .sizing.reset-size5.size7 { + font-size: 1.44em; +} +.katex .fontsize-ensurer.reset-size5.size8, +.katex .sizing.reset-size5.size8 { + font-size: 1.73em; +} +.katex .fontsize-ensurer.reset-size5.size9, +.katex .sizing.reset-size5.size9 { + font-size: 2.07em; +} +.katex .fontsize-ensurer.reset-size5.size10, +.katex .sizing.reset-size5.size10 { + font-size: 2.49em; +} +.katex .fontsize-ensurer.reset-size6.size1, +.katex .sizing.reset-size6.size1 { + font-size: 0.41666667em; +} +.katex .fontsize-ensurer.reset-size6.size2, +.katex .sizing.reset-size6.size2 { + font-size: 0.58333333em; +} +.katex .fontsize-ensurer.reset-size6.size3, +.katex .sizing.reset-size6.size3 { + font-size: 0.66666667em; +} +.katex .fontsize-ensurer.reset-size6.size4, +.katex .sizing.reset-size6.size4 { + font-size: 0.75em; +} +.katex .fontsize-ensurer.reset-size6.size5, +.katex .sizing.reset-size6.size5 { + font-size: 0.83333333em; +} +.katex .fontsize-ensurer.reset-size6.size6, +.katex .sizing.reset-size6.size6 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size6.size7, +.katex .sizing.reset-size6.size7 { + font-size: 1.2em; +} +.katex .fontsize-ensurer.reset-size6.size8, +.katex .sizing.reset-size6.size8 { + font-size: 1.44166667em; +} +.katex .fontsize-ensurer.reset-size6.size9, +.katex .sizing.reset-size6.size9 { + font-size: 1.725em; +} +.katex .fontsize-ensurer.reset-size6.size10, +.katex .sizing.reset-size6.size10 { + font-size: 2.075em; +} +.katex .fontsize-ensurer.reset-size7.size1, +.katex .sizing.reset-size7.size1 { + font-size: 0.34722222em; +} +.katex .fontsize-ensurer.reset-size7.size2, +.katex .sizing.reset-size7.size2 { + font-size: 0.48611111em; +} +.katex .fontsize-ensurer.reset-size7.size3, +.katex .sizing.reset-size7.size3 { + font-size: 0.55555556em; +} +.katex .fontsize-ensurer.reset-size7.size4, +.katex .sizing.reset-size7.size4 { + font-size: 0.625em; +} +.katex .fontsize-ensurer.reset-size7.size5, +.katex .sizing.reset-size7.size5 { + font-size: 0.69444444em; +} +.katex .fontsize-ensurer.reset-size7.size6, +.katex .sizing.reset-size7.size6 { + font-size: 0.83333333em; +} +.katex .fontsize-ensurer.reset-size7.size7, +.katex .sizing.reset-size7.size7 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size7.size8, +.katex .sizing.reset-size7.size8 { + font-size: 1.20138889em; +} +.katex .fontsize-ensurer.reset-size7.size9, +.katex .sizing.reset-size7.size9 { + font-size: 1.4375em; +} +.katex .fontsize-ensurer.reset-size7.size10, +.katex .sizing.reset-size7.size10 { + font-size: 1.72916667em; +} +.katex .fontsize-ensurer.reset-size8.size1, +.katex .sizing.reset-size8.size1 { + font-size: 0.28901734em; +} +.katex .fontsize-ensurer.reset-size8.size2, +.katex .sizing.reset-size8.size2 { + font-size: 0.40462428em; +} +.katex .fontsize-ensurer.reset-size8.size3, +.katex .sizing.reset-size8.size3 { + font-size: 0.46242775em; +} +.katex .fontsize-ensurer.reset-size8.size4, +.katex .sizing.reset-size8.size4 { + font-size: 0.52023121em; +} +.katex .fontsize-ensurer.reset-size8.size5, +.katex .sizing.reset-size8.size5 { + font-size: 0.57803468em; +} +.katex .fontsize-ensurer.reset-size8.size6, +.katex .sizing.reset-size8.size6 { + font-size: 0.69364162em; +} +.katex .fontsize-ensurer.reset-size8.size7, +.katex .sizing.reset-size8.size7 { + font-size: 0.83236994em; +} +.katex .fontsize-ensurer.reset-size8.size8, +.katex .sizing.reset-size8.size8 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size8.size9, +.katex .sizing.reset-size8.size9 { + font-size: 1.19653179em; +} +.katex .fontsize-ensurer.reset-size8.size10, +.katex .sizing.reset-size8.size10 { + font-size: 1.43930636em; +} +.katex .fontsize-ensurer.reset-size9.size1, +.katex .sizing.reset-size9.size1 { + font-size: 0.24154589em; +} +.katex .fontsize-ensurer.reset-size9.size2, +.katex .sizing.reset-size9.size2 { + font-size: 0.33816425em; +} +.katex .fontsize-ensurer.reset-size9.size3, +.katex .sizing.reset-size9.size3 { + font-size: 0.38647343em; +} +.katex .fontsize-ensurer.reset-size9.size4, +.katex .sizing.reset-size9.size4 { + font-size: 0.43478261em; +} +.katex .fontsize-ensurer.reset-size9.size5, +.katex .sizing.reset-size9.size5 { + font-size: 0.48309179em; +} +.katex .fontsize-ensurer.reset-size9.size6, +.katex .sizing.reset-size9.size6 { + font-size: 0.57971014em; +} +.katex .fontsize-ensurer.reset-size9.size7, +.katex .sizing.reset-size9.size7 { + font-size: 0.69565217em; +} +.katex .fontsize-ensurer.reset-size9.size8, +.katex .sizing.reset-size9.size8 { + font-size: 0.83574879em; +} +.katex .fontsize-ensurer.reset-size9.size9, +.katex .sizing.reset-size9.size9 { + font-size: 1em; +} +.katex .fontsize-ensurer.reset-size9.size10, +.katex .sizing.reset-size9.size10 { + font-size: 1.20289855em; +} +.katex .fontsize-ensurer.reset-size10.size1, +.katex .sizing.reset-size10.size1 { + font-size: 0.20080321em; +} +.katex .fontsize-ensurer.reset-size10.size2, +.katex .sizing.reset-size10.size2 { + font-size: 0.2811245em; +} +.katex .fontsize-ensurer.reset-size10.size3, +.katex .sizing.reset-size10.size3 { + font-size: 0.32128514em; +} +.katex .fontsize-ensurer.reset-size10.size4, +.katex .sizing.reset-size10.size4 { + font-size: 0.36144578em; +} +.katex .fontsize-ensurer.reset-size10.size5, +.katex .sizing.reset-size10.size5 { + font-size: 0.40160643em; +} +.katex .fontsize-ensurer.reset-size10.size6, +.katex .sizing.reset-size10.size6 { + font-size: 0.48192771em; +} +.katex .fontsize-ensurer.reset-size10.size7, +.katex .sizing.reset-size10.size7 { + font-size: 0.57831325em; +} +.katex .fontsize-ensurer.reset-size10.size8, +.katex .sizing.reset-size10.size8 { + font-size: 0.69477912em; +} +.katex .fontsize-ensurer.reset-size10.size9, +.katex .sizing.reset-size10.size9 { + font-size: 0.8313253em; +} +.katex .fontsize-ensurer.reset-size10.size10, +.katex .sizing.reset-size10.size10 { + font-size: 1em; +} +.katex .delimsizing.size1 { + font-family: KaTeX_Size1; +} +.katex .delimsizing.size2 { + font-family: KaTeX_Size2; +} +.katex .delimsizing.size3 { + font-family: KaTeX_Size3; +} +.katex .delimsizing.size4 { + font-family: KaTeX_Size4; +} +.katex .delimsizing.mult .delim-size1 > span { + font-family: KaTeX_Size1; +} +.katex .delimsizing.mult .delim-size4 > span { + font-family: KaTeX_Size4; +} +.katex .nulldelimiter { + display: inline-block; + width: 0.12em; +} +.katex .op-symbol { + position: relative; +} +.katex .op-symbol.small-op { + font-family: KaTeX_Size1; +} +.katex .op-symbol.large-op { + font-family: KaTeX_Size2; +} +.katex .accent > .vlist > span, +.katex .op-limits > .vlist > span { + text-align: center; +} +.katex .accent .accent-body > span { + width: 0; +} +.katex .accent .accent-body.accent-vec > span { + position: relative; + left: 0.326em; +} +.katex .mtable .vertical-separator { + display: inline-block; + margin: 0 -0.025em; + border-right: 0.05em solid #000; +} +.katex .mtable .arraycolsep { + display: inline-block; +} +.katex .mtable .col-align-c > .vlist { + text-align: center; +} +.katex .mtable .col-align-l > .vlist { + text-align: left; +} +.katex .mtable .col-align-r > .vlist { + text-align: right; +} + + .gt-bg-theme-color-first { + background: #f9f9f9!important; + } + + .gt-bg-theme-color-second { + background: #f3f3f3!important; + } + + .gt-bg-content-color-first { + background: #5e5e5e!important; + } + + .gt-bg-content-color-second { + background: #BFBFBF!important; + } + + .gt-bg-accent-color-first { + background: #8b959f!important; + } + + .gt-bg-accent-color-second { + background: RGBA(139,149,159,0.14)!important; + } + + .gt-c-theme-color-first { + color: #f9f9f9!important; + } + + .gt-c-theme-color-second { + color: #f3f3f3!important; + } + + .gt-c-content-color-first { + color: #5e5e5e!important; + } + + .gt-c-content-color-second { + color: #BFBFBF!important; + } + + .gt-c-accent-color-first { + color: #8b959f!important; + } + + .gt-c-accent-color-second { + color: RGBA(139,149,159,0.14)!important; + } + + body { + color: #5e5e5e!important; + } + + a { + color: #8b959f!important; + } + + .post-content h1 { + display: inline-block; + color: #5e5e5e!important; + position: relative!important; + background: linear-gradient(180deg, transparent 75%, RGBA(139,149,159,0.4) 0)!important; + } + + .post-content h2 { + display: inline-block; + color: #5e5e5e!important; + position: relative!important; + background: linear-gradient(180deg, transparent 75%, RGBA(139,149,159,0.4) 0)!important; + } + + .gt-a-link { + color: #5e5e5e!important; + position: relative!important; + background: linear-gradient(180deg, transparent 75%, RGBA(139,149,159,0.4) 0)!important; + } + + .gt-post-content a { + color: #8b959f!important; + } + + .gt-post-content blockquote { + background: RGBA(139,149,159,0.14)!important; + border-color: #8b959f!important; + } + + .gt-post-content code { + background: RGBA(139,149,159,0.14)!important; + } + + input::placeholder { + color: #BFBFBF!important; + } + + .search-input { + color: #5e5e5e!important; + background-color: #f3f3f3!important; + } + \ No newline at end of file diff --git a/tag/-abEMiMjQ/index.html b/tag/-abEMiMjQ/index.html new file mode 100644 index 0000000..abc10fc --- /dev/null +++ b/tag/-abEMiMjQ/index.html @@ -0,0 +1,225 @@ + + + + + + +windows | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+

+ #windows +

+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+ + +
+ + + + + +
+
+ + diff --git a/tag/4ng9AvzFm/index.html b/tag/4ng9AvzFm/index.html new file mode 100644 index 0000000..b4b46e4 --- /dev/null +++ b/tag/4ng9AvzFm/index.html @@ -0,0 +1,250 @@ + + + + + + +linux | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+

+ #linux +

+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+ + +
+ + + + + +
+
+ + diff --git a/tag/SPQCRxxpr/index.html b/tag/SPQCRxxpr/index.html new file mode 100644 index 0000000..7cd1adf --- /dev/null +++ b/tag/SPQCRxxpr/index.html @@ -0,0 +1,175 @@ + + + + + + +数据库 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+

+ #数据库 +

+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+ + +
+ + + + + +
+
+ + diff --git a/tag/bftlFwBmA/index.html b/tag/bftlFwBmA/index.html new file mode 100644 index 0000000..9c2d5e4 --- /dev/null +++ b/tag/bftlFwBmA/index.html @@ -0,0 +1,225 @@ + + + + + + +C# | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+

+ #C# +

+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+ + +
+ + + + + +
+
+ + diff --git a/tag/ruan-jian-an-zhuang/index.html b/tag/ruan-jian-an-zhuang/index.html new file mode 100644 index 0000000..e203fd8 --- /dev/null +++ b/tag/ruan-jian-an-zhuang/index.html @@ -0,0 +1,175 @@ + + + + + + +软件安装 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+

+ #软件安装 +

+
+
+
+ +
+
+ +
+ +
+ +
+ +
+ +
+
+
+ + +
+ + + + + +
+
+ + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..e8379ea --- /dev/null +++ b/tags/index.html @@ -0,0 +1,160 @@ + + + + + + +标签 | itwangaijava + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+
+ + + + +
+
+ +