Help
RSS
API
Feed
Maltego
Contact
Domain > blog.jueluo.tech
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-09-10
172.67.198.7
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyDate: Tue, 10 Sep 2024 15:41:59 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveCache-Control: max-age3600Expires: Tue, 10 Sep 2024 16:41:59 GMTLocation: https://blog.jueluo.tech/Report-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sCEC5gDHQ7jwEJw0jlNSwDm3OFiLCdCv3Hd2s%2BHeUMPVj1rcqfAE1ogj5LUO1qp686WkYXqU3D6yhB3LGJpSqc2774SO%2B3%2FnQjtrVxuj7%2B1t9cT45DfbfOU4gqp1qbyl64trq},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8c10867c0b58eba7-SEAalt-svc: h3:443; ma86400 html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>cloudflare/center>/body>/html>
Port 443
HTTP/1.1 200 OKDate: Tue, 10 Sep 2024 15:41:59 GMTContent-Type: text/html; charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveLast-Modified: Thu, 22 Aug 2024 12:34:17 GMTAccess-Control-Allow-Origin: *expires: Tue, 10 Sep 2024 15:51:59 GMTCache-Control: max-age600x-proxy-cache: MISSX-GitHub-Request-Id: 462C:39C9DA:4D806F1:4F9EEFC:66E068C7Age: 0Via: 1.1 varnishX-Served-By: cache-bfi-kbfi7400022-BFIX-Cache: MISSX-Cache-Hits: 0X-Timer: S1725982919.138256,VS0,VE78Vary: Accept-EncodingX-Fastly-Request-ID: a8618dc8a9a2dda17e46370bb33bce7855fe92efCF-Cache-Status: DYNAMICReport-To: {endpoints:{url:https:\/\/a.nel.cloudflare.com\/report\/v4?sfH1VI7jRvshULudb%2FR8c3EMwuB5R8AmqgK4AXWNWqHdEL3JpD47HRgC4tEWU1dRCvmA%2BeIkNFWPaRaxsXePllDQ6vz1NGmFzFm1qpbiZwYow%2F4Ir4GzhgeNEWSXIhbGQ1sGz},group:cf-nel,max_age:604800}NEL: {success_fraction:0,report_to:cf-nel,max_age:604800}Server: cloudflareCF-RAY: 8c10867c7980a5a0-SEAalt-svc: h3:443; ma86400 !doctype html>html classtheme-next pisces use-motion langen>head> meta charsetUTF-8/>meta http-equivX-UA-Compatible contentIEedge />meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1/>meta http-equivCache-Control contentno-transform />meta http-equivCache-Control contentno-siteapp /> link href/assets/lib/fancybox/source/jquery.fancybox.css?v2.1.5 relstylesheet typetext/css /> link href//fonts.googleapis.com/css?familyLato:300,300italic,400,400italic,700,700italic&subsetlatin,latin-ext relstylesheet typetext/css> link href/assets/lib/font-awesome/css/font-awesome.min.css?v4.6.2 relstylesheet typetext/css />link href/assets/css/main.css?v5.1.1 relstylesheet typetext/css /> meta namekeywords contentJekyll, NexT /> link relshortcut icon typeimage/x-icon href/assets/favicon.ico?v5.1.1 />meta namedescription contentThe better we get at getting better, the faster we will get better.>meta namekeywords contentJekyll, NexT>meta propertyog:type contentwebsite>meta propertyog:title contentJueLuo's Blog>meta propertyog:url contenthttp://blog.jueluo.tech/>meta propertyog:site_name contentJueLuo's Blog>meta propertyog:description contentThe better we get at getting better, the faster we will get better.>meta propertyog:locale contenten>meta nametwitter:card contentsummary>meta nametwitter:title contentJueLuo's Blog>meta nametwitter:description contentThe better we get at getting better, the faster we will get better.>script typetext/javascript idhexo.configurations> var NexT window.NexT || {}; var CONFIG { root: , scheme: Pisces, sidebar: {position:left,display:always,offset:12,offset_float:0,b2t:false,scrollpercent:false}, fancybox: true, motion: true, duoshuo: { userId: 0, author: Author }, algolia: { applicationID: , apiKey: , indexName: , hits: {per_page:10}, labels: {input_placeholder:Search for Posts,hits_empty:We didnt find any results for the search: ${query},hits_stats:${hits} results found in ${time} ms} } };/script> link relcanonical hrefhttps://blog.jueluo.tech/ /> title>JueLuos Blog/title> script> (function(i,s,o,g,r,a,m){iGoogleAnalyticsObjectr;irir||function(){ (ir.qir.q||).push(arguments)},ir.l1*new Date();as.createElement(o), ms.getElementsByTagName(o)0;a.async1;a.srcg;m.parentNode.insertBefore(a,m) })(window,document,script,https://www.google-analytics.com/analytics.js,ga); ga(create, UA-213535737-1, auto); ga(send, pageview);/script> script typetext/javascript> var _hmt _hmt || ; (function() { var hm document.createElement(script); hm.src https://hm.baidu.com/hm.js?6bafeaeb07c208b292779e345b8fa14f; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(hm, s); })(); /script>/head>body itemscope itemtypehttp://schema.org/WebPage langen> div classcontainer sidebar-position-left page-home > div classheadband>/div> header idheader classheader itemscope itemtypehttp://schema.org/WPHeader> div classheader-inner> div classsite-brand-wrapper> div classsite-meta > div classcustom-logo-site-title> a href/ classbrand relstart> span classlogo-line-before>i>/i>/span> span classsite-title>JueLuos Blog/span> span classlogo-line-after>i>/i>/span> /a> /div> p classsite-subtitle>/p> /div> div classsite-nav-toggle> button> span classbtn-bar>/span> span classbtn-bar>/span> span classbtn-bar>/span> /button> /div>/div>nav classsite-nav> ul idmenu classmenu> li classmenu-item menu-item-home> a href/ relsection> i classmenu-item-icon fa fa-fw fa-home>/i> br /> Home /a> /li> li classmenu-item menu-item-categories> a href/categories/ relsection> i classmenu-item-icon fa fa-fw fa-th>/i> br /> Categories /a> /li> li classmenu-item menu-item-archives> a href/archives/ relsection> i classmenu-item-icon fa fa-fw fa-archive>/i> br /> Archives /a> /li> li classmenu-item menu-item-tags> a href/tags/ relsection> i classmenu-item-icon fa fa-fw fa-tags>/i> br /> Tags /a> /li> li classmenu-item menu-item-search> a hrefjavascript:; classpopup-trigger> i classmenu-item-icon fa fa-search fa-fw>/i> br /> Search /a> /li> /ul> div classsite-search> div classpopup search-popup local-search-popup> div classlocal-search-header clearfix> span classsearch-icon> i classfa fa-search>/i> /span> span classpopup-btn-close> i classfa fa-times-circle>/i> /span> div classlocal-search-input-wrapper> input autocompleteoff placeholderSearching... spellcheckfalse typetext idlocal-search-input> /div> /div> div idlocal-search-result>/div>/div> /div> /nav> /div> /header> main idmain classmain> div classmain-inner> div classcontent-wrap> div idcontent classcontent> section idposts classposts-expand> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/fix-jellyfin-lost-fonts> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/fix-jellyfin-lost-fonts itempropurl> 快速解决 Docker Compose 部署的 Jellyfin 更新后文本变成方框 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2024-08-22T20:21:00+00:00> 2024-08-22 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Docker itempropurl relindex> span itempropname>Docker/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>我使用 Docker Compose 部署的 Jellyfin,每次执行 code classlanguage-plaintext highlighter-rouge>docker-compose pull/code> 更新后,就会因为缺失汉字字体而导致部分中文变为方框/p>p>解决方法很简单,只需要安装 code classlanguage-plaintext highlighter-rouge>fonts-noto-cjk-extra/code> 这个包即可/p>p>但受限于国内网络状况,想要更高效地完成这项工作,还需要替换下载源/p>p>进入容器后,执行以下命令(使用上海交通大学的镜像源):/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>span classnb>sed/span> span classnt>-i/span> span classs2>s|http://deb.debian.org/debian|http://mirror.sjtu.edu.cn/debian|g/span> /etc/apt/sources.list.d/debian.sources span classo>&&/span> apt span classnb>install/span> span classnt>-y/span> fonts-noto-cjk-extra/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>安装完毕后,strong>重启该容器/strong>即可/p>h3 id参考>参考/h3>ol> li>a hrefhttps://github.com/linuxserver/docker-jellyfin/issues/161>Integrate CJK fonts · Issue #161 · linuxserver/docker-jellyfin/a>/li> li>a hrefhttps://mirror.sjtu.edu.cn/docs/debian>上海交通大学 Linux 用户组 软件源镜像服务/a>/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/fix-jellyfin-lost-fonts#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/javascript-settimeout-not-work> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/javascript-settimeout-not-work itempropurl> JavaScript setTimeout 不工作 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2024-08-18T17:37:00+00:00> 2024-08-18 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/JavaScript itempropurl relindex> span itempropname>JavaScript/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>帮朋友写了一个 Tampermonkey 脚本,用于爬取一个多页的表格,其中有一个小功能需要翻页后等待几秒以确保数据加载完成。/p>p>但是发现这玩意儿中的 code classlanguage-plaintext highlighter-rouge>setTimeout()/code> 函数并没有按照我想象中的等待一定时间后再执行下一行代码。/p>h3 id原因分析>原因分析/h3>blockquote> p>原因是 setTimeout() 作为同步代码执行,并且对 setTimeout() 的多次调用均同时运行。每次调用 setTimeout() 都会创建异步代码,该代码将在给定延迟后稍后执行。就其本身而言,code classlanguage-plaintext highlighter-rouge>setTimeout()/code> 不能用作 code classlanguage-plaintext highlighter-rouge>sleep()/code> 函数,但是你可以使用 code classlanguage-plaintext highlighter-rouge>async/code> 和 code classlanguage-plaintext highlighter-rouge>await/code> 创建自定义JavaScript code classlanguage-plaintext highlighter-rouge>sleep()/code> 函数。/p>/blockquote>h3 id解决方案>解决方案/h3>p>结合 code classlanguage-plaintext highlighter-rouge>Promises/code> 、 code classlanguage-plaintext highlighter-rouge>async/code> 和 code classlanguage-plaintext highlighter-rouge>await/code> 编写一个 code classlanguage-plaintext highlighter-rouge>sleep()/code> 函数,然后从 code classlanguage-plaintext highlighter-rouge>async/code> 函数中调用它,并且需要与 code classlanguage-plaintext highlighter-rouge>await/code> 关键字一起使用。/p>div classlanguage-javascript highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4br/>5br/>6br/>7br/>8br/>9br/>10br/>11br/>12/pre>/td>td classcode>pre classhighlight>code>span classkd>const/span> span classnx>sleep/span> span classo>/span> span classp>(/span>span classnx>delay/span>span classp>)/span> span classo>>/span> span classk>new/span> span classnb>Promise/span>span classp>((/span>span classnx>resolve/span>span classp>)/span> span classo>>/span> span classnx>setTimeout/span>span classp>(/span>span classnx>resolve/span>span classp>,/span> span classnx>delay/span>span classp>))/span>span classkd>const/span> span classnx>repeatedGreetings/span> span classo>/span> span classk>async/span> span classp>()/span> span classo>>/span> span classp>{/span> span classk>await/span> span classnx>sleep/span>span classp>(/span>span classmi>1000/span>span classp>)/span> span classnx>console/span>span classp>./span>span classnx>log/span>span classp>(/span>span classmi>1/span>span classp>)/span> span classk>await/span> span classnx>sleep/span>span classp>(/span>span classmi>1000/span>span classp>)/span> span classnx>console/span>span classp>./span>span classnx>log/span>span classp>(/span>span classmi>2/span>span classp>)/span> span classk>await/span> span classnx>sleep/span>span classp>(/span>span classmi>1000/span>span classp>)/span> span classnx>console/span>span classp>./span>span classnx>log/span>span classp>(/span>span classmi>3/span>span classp>)/span>span classp>}/span>span classnx>repeatedGreetings/span>span classp>()/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>h3 id参考资料>参考资料/h3>ol> li>a hrefhttps://segmentfault.com/a/1190000023490085>如何使JavaScript休眠或等待 - 程序员张张 - SegmentFault 思否/a>/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/javascript-settimeout-not-work#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/user-quota-can-not-set-to-unlimited-on-nextcloud-28> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/user-quota-can-not-set-to-unlimited-on-nextcloud-28 itempropurl> 在 Nextcloud 28 上无法调整用户配额为“无限”的临时解决办法 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2023-12-28T23:23:00+00:00> 2023-12-28 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Nextcloud itempropurl relindex> span itempropname>Nextcloud/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>疑似为 Nextcloud 28.0.1 的 bug,等待官方修复或使用下面的解决方案/p>h3 id解决方案>解决方案/h3>ol> li>直接链接数据库,找到 Nextcloud 使用的数据库/li> li>找到 code classlanguage-plaintext highlighter-rouge>oc_preferences/code> 表/li> li>根据 code classlanguage-plaintext highlighter-rouge>userid/code> 字段,找到对应用户的记录/li> li>将 code classlanguage-plaintext highlighter-rouge>configkey/code> 字段为 code classlanguage-plaintext highlighter-rouge>quota/code> 的记录的 code classlanguage-plaintext highlighter-rouge>configvalue/code> 值改为 code classlanguage-plaintext highlighter-rouge>none/code>/li>/ol>p>或者直接使用如下命令,记得修改命令中的 code classlanguage-plaintext highlighter-rouge>username/code>/p>div classlanguage-sql highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3/pre>/td>td classcode>pre classhighlight>code>span classk>UPDATE/span> span classn>nextcloud/span>span classp>./span>span classn>oc_preferences/span> span classk>SET/span> span classn>configvalue/span>span classo>/span>span classs1>none/span> span classk>WHERE/span> span classn>userid/span>span classo>/span>span classs1>username/span> span classk>AND/span> span classn>appid/span>span classo>/span>span classs1>files/span> span classk>AND/span> span classn>configkey/span>span classo>/span>span classs1>quota/span>span classp>;/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>h3 id参考链接>参考链接/h3>ol> li>https://github.com/nextcloud/server/issues/34961#issuecomment-1307234975/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/user-quota-can-not-set-to-unlimited-on-nextcloud-28#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/use-ASF-with-caddy-and-S302-on-linux> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/use-ASF-with-caddy-and-S302-on-linux itempropurl> 在 Linux 上使用 caddy 和 S302 来访问 Steam 社区 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2023-01-18T20:21:00+00:00> 2023-01-18 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Linux itempropurl relindex> span itempropname>Linux/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>由于一些众所周知原因,Steam 社区页面无法在我所处的地区直接访问了,而我部署于 Linux 设备上的 ArchiSteamFarm 也因此无法正常工作。早些时候是通过使用网络代理的方式来使其正常工作的,但该方法稳定性不够理想,故试图使用 caddy 进行本地反代的方式来解决问题。/p>h2 id准备工作>准备工作/h2>ul> li>一台 Debian 系的设备(Ubuntu 和 Raspbian 测试通过) ul> li>需要 root 权限/li> li>需要占用 443 端口/li> /ul> /li> li>Steamcommunity 302(a hrefhttps://www.dogfight360.com/blog/686/>官方下载地址/a>,本文使用 code classlanguage-plaintext highlighter-rouge>V12.1.4/code> 版本)/li> li>caddy(a hrefhttps://github.com/caddyserver/caddy/releases/>caddy 的 Releases 页/a>,本文使用 code classlanguage-plaintext highlighter-rouge>v2.6.2/code> 版本) ul> li>如使用树莓派,请下载 code classlanguage-plaintext highlighter-rouge>armv5/code> 版本/li> /ul> /li>/ul>h2 id1-在-windows-上生成证书>1 在 Windows 上生成证书/h2>p>在 Windows 设备上正常下载并使用 Steamcommunity 302 软件,在其设置内勾选自己所需反代的服务。/p>p>在本例中,勾选了 Steam 社区和商店。/p>p>img src../assets/2023/20230118-001.png alt />/p>p>运行一次并确认工作正常后,应当会在 Steamcommunity 302 目录下,生成自签证书等多个文件。/p>h2 id2-修改文件并发送至-linux-设备>2 修改文件并发送至 Linux 设备/h2>p>本步骤共需要 6 个文件,建议先将下列文件复制一份以供后续编辑操作。/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4br/>5br/>6/pre>/td>td classcode>pre classhighlight>code>steamcommunityCA.pemsteamcommunityCA.keysteamcommunity.keysteamcommunity.crtsteamcommunity_302.caddy.jsoncaddy/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>编辑 code classlanguage-plaintext highlighter-rouge>steamcommunity_302.caddy.json/code> 文件,将红圈处原先随机生成的端口修改为 443 端口。/p>p>img src../assets/2023/20230118-002.png alt />/p>p>如果在 Steamcommunity 302 中选择反代了多个服务,并且希望在 Linux 设备上使用,那么需要修改的数量会多于图中的红圈,请仔细检查并修改该文件。/p>h2 id3-导入证书>3 导入证书/h2>p>将上一步骤中的 6 个文件传递到 Linux 服务器上。/p>p>注意,在 Debian/Ubuntu 系的服务器上,需要将 code classlanguage-plaintext highlighter-rouge>steamcommunityCA.pem/code> 修改为 code classlanguage-plaintext highlighter-rouge>.crt/code> 扩展名,才可在后续步骤中正常导入。/p>p>故运行如下命令:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>sudo cp steamcommunityCA.pem /usr/local/share/ca-certificates/steamcommunityCA.crt/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>并使用如下命令更新根证书:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>sudo update-ca-certificates/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>若一切正常,将会看到提示添加了 1 张新证书。/p>h2 id4-修改-hosts>4 修改 hosts/h2>p>在 Windows 上,打开 code classlanguage-plaintext highlighter-rouge>C:\Windows\System32\drivers\etc/code> 并打开 code classlanguage-plaintext highlighter-rouge>hosts/code> 文件。/p>p>复制 code classlanguage-plaintext highlighter-rouge>hosts/code> 文件中,以 code classlanguage-plaintext highlighter-rouge>#S302/code> 结尾的条目。/p>p>将上述复制的内容写入到 Linux 设备上的 code classlanguage-plaintext highlighter-rouge>/etc/hosts/code> 文件中。/p>p>在本例中,写入了如下内容:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4br/>5br/>6/pre>/td>td classcode>pre classhighlight>code>127.0.0.1 steamcommunity.com #S302127.0.0.1 www.steamcommunity.com #S302127.0.0.1 store.steampowered.com #S302127.0.0.1 api.steampowered.com #S302127.0.0.1 help.steampowered.com #S302127.0.0.1 store.akamai.steamstatic.com #S302/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>请根据实际情况调整。/p>h2 id5-运行-caddy-并测试>5 运行 caddy 并测试/h2>p>进入 caddy 目录,赋予 caddy 执行权限,然后启动:/p>div classlanguage-sh highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2/pre>/td>td classcode>pre classhighlight>code>span classnb>chmod/span> +x caddyspan classnb>sudo/span> ./caddy run span classnt>--config/span> steamcommunity_302.caddy.json span classnt>--adapter/span> caddyfile/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>因为使用了 443 端口,故需要 root 权限以运行。/p>p>如若运行正常,可进行测试,例如使用 code classlanguage-plaintext highlighter-rouge>curl https://steamcommunity.com//code> 或直接启动 ASF 等程序进行测试。/p>h2 id6-配置开机自启动>6 配置开机自启动/h2>p>本例供树莓派官方系统配置开机自启动参考,编辑 code classlanguage-plaintext highlighter-rouge>/etc/rc.local/code> 文件,加入如下内容:/p>div classlanguage-plaintext highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2/pre>/td>td classcode>pre classhighlight>code>su pi -c screen -dmS caddysu pi -c screen -S caddy -X stuff cd /home/pi/caddy && sudo ./caddy run --config steamcommunity_302.caddy.json --adapter caddyfile\n/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>注意:/p>ol> li>请根据实际,更改命令中自己所使用的用户名以及第二行命令中 caddy 的路径。/li> li>添加上述两行的位置,亦请根据实际调整。/li> li>需要 code classlanguage-plaintext highlighter-rouge>screen/code> 命令支持/li>/ol>h2 id参考资料>参考资料/h2>ol> li>a hrefhttps://www.dogfight360.com/blog/2319/>Linux/Macos环境下使用 steamcommunity 302 教程 – Dogfight360/a>/li> li>a hrefhttps://superuser.com/questions/437330/how-do-you-add-a-certificate-authority-ca-to-ubuntu>How do you add a certificate authority (CA) to Ubuntu? - Super User/a>/li> li>a hrefhttps://www.cnblogs.com/night-ray/articles/15964334.html>从Steam社区屏蔽分析绕过方法及ASF安全部署 - NiGhT_Ray - 博客园/a>/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/use-ASF-with-caddy-and-S302-on-linux#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/reverse-ex01> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/reverse-ex01 itempropurl> 逆向练习题 01 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-09-23T16:20:00+00:00> 2022-09-23 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Reverse itempropurl relindex> span itempropname>Reverse/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> h1 id原始文件>原始文件/h1>p>【a href/assets/2022/reverse/ex01/re1.exe>re1.exe/a>】/p>p>MD5:code classlanguage-plaintext highlighter-rouge>46F8553C1FE1F88F927F4037C6FC7771/code>/p>p>SHA-1:code classlanguage-plaintext highlighter-rouge>FAEA9FB20B436CEAE05E3A6C01FE7D21D5ECB7D4/code>/p> !--noindex--> div classpost-button text-center> a classbtn href/post/reverse-ex01#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/how-to-set-spec-file-for-pyinstaller> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/how-to-set-spec-file-for-pyinstaller itempropurl> 调整 Pyinstaller 的 spec 文件来控制打包哪些内容 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-07-08T08:53:00+00:00> 2022-07-08 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Python itempropurl relindex> span itempropname>Python/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>案例:需要打包一个 Python 项目为二进制文件,但该项目包含了一个 code classlanguage-plaintext highlighter-rouge>config.py/code> 不应一起被打包/p>h2 id安装-pyinstaller>安装 Pyinstaller/h2>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>pip span classnb>install /span>pyinstaller/code>/pre>/td>/tr>/tbody>/table>/div>/div>h2 id创建-spec-文件>创建 spec 文件/h2>p>使用如下命令获得一个 code classlanguage-plaintext highlighter-rouge>.spec/code> 文件:/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>pyinstaller monitor.py/code>/pre>/td>/tr>/tbody>/table>/div>/div>h2 id调整-spec-文件>调整 spec 文件/h2>p>在本例中,需要调整如下两行:/p>p>告知 Pyinstaller 将 code classlanguage-plaintext highlighter-rouge>config.py/code> 置于打包后的根目录中/p>pre>code classlanguage-spec>datas(config.py, .),/code>/pre>p>告知 Pyinstaller 不将 code classlanguage-plaintext highlighter-rouge>import config/code> 一起打包/p>pre>code classlanguage-spec>excludesconfig,/code>/pre>h2 id打包创建可执行文件>打包,创建可执行文件/h2>p>修改 code classlanguage-plaintext highlighter-rouge>.spec/code> 后再执行:/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>pyinstaller monitor.spec/code>/pre>/td>/tr>/tbody>/table>/div>/div> !--noindex--> div classpost-button text-center> a classbtn href/post/how-to-set-spec-file-for-pyinstaller#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/install-elastic-stack-by-docker-compose> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/install-elastic-stack-by-docker-compose itempropurl> 使用 Docker Compose 安装 Elastic Stack /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-07-06T06:47:00+00:00> 2022-07-06 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/ElasticStack itempropurl relindex> span itempropname>ElasticStack/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> h2 id一简介>一、简介/h2>p>本文将会使用官方提供的 Elastic Stack with Dockers Compose 的方式进行安装安装内容包含了一个启用了身份验证和网络加密的、三节点的 Elasticsearch 服务器,和一个 Kibana 服务器/p>h2 id二配置要求>二、配置要求/h2>ul> li>一个可以安装和运行 Docker 的操作系统(建议避免使用 ARM 架构)/li> li>至少 4 GB 的内存/li>/ul>p>本文中采用的操作系统:Ubuntu Server 22.04 LTS/p>h2 id三准备工作>三、准备工作/h2>h3 id安装-docker-和-docker-compose>安装 Docker 和 Docker Compose/h3>p>在 Ubuntu 上,通常可使用如下命令直接安装/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>span classnb>sudo /span>apt span classnb>install /span>docker.io docker-compose/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>在其他平台上,可参考 Docker 的官方文档:/p>p>a hrefhttps://docs.docker.com/get-docker/>Get Docker - Docker Documentation/a>/p>p>a hrefhttps://docs.docker.com/compose/install/>Install Docker Compose - Docker Documentation/a>/p>h2 id四配置并启动-elastic-stack>四、配置并启动 Elastic Stack/h2>h3 id准备-docker-compose-文件>准备 docker-compose 文件/h3>p>创建一个新的空目录,并放置入code classlanguage-plaintext highlighter-rouge>.env/code> 和 code classlanguage-plaintext highlighter-rouge>docker-compose.yml/code> 这两个文件/p>h4 id方法一从-github-直接下载>方法一:从 GitHub 直接下载/h4>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2/pre>/td>td classcode>pre classhighlight>code>wget https://raw.githubusercontent.com/elastic/elasticsearch/8.1/docs/reference/setup/install/docker/.envwget https://raw.githubusercontent.com/elastic/elasticsearch/8.1/docs/reference/setup/install/docker/docker-compose.yml/code>/pre>/td>/tr>/tbody>/table>/div>/div>h4 id方法二从此处下载后导入>方法二:从此处下载后导入/h4>p>a href../assets/2022/elastic_stack/.env>/a>a href../assets/2022/elastic_stack/docker-compose.yml>/a>/p>h3 id修改-env-文件>修改 .env 文件/h3>p>在第 2 行填入欲使用的 code classlanguage-plaintext highlighter-rouge>elastic/code> 用户的密码,稍后strong>会在登录时使用/strong>在第 5 行填入欲使用的 code classlanguage-plaintext highlighter-rouge>kibana_system/code>用户的密码(这个值仅在内部配置 Kibana 时使用)在第 8 行填入欲使用的版本号,在本例中,使用的版本号为 code classlanguage-plaintext highlighter-rouge>8.1.3/code>如若不希望将 Elasticsearch HTTP API 绑定到 code classlanguage-plaintext highlighter-rouge>0.0.0.0:9200/code>,可将第 18 行的值修改为诸如 code classlanguage-plaintext highlighter-rouge>127.0.0.1:9200/code>的值同理,可在第 22 行处修改 Kibana 的相关配置/p>h3 id启动-docker-compose>启动 Docker Compose/h3>p>上述文件编辑完毕后,可以尝试启动这个实例/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>docker-compose up span classnt>-d/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>h3 id停止并移除部署>停止并移除部署/h3>p>如需停止上述配置的服务,可使用如下命令(会暂时卸载卷,故数据不会被直接删除,可于下次启动时继续使用)/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>docker-compose down/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>想要同时删除所有数据,可使用如下命令/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>docker-compose down span classnt>-v/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>h2 id五故障排除>五、故障排除/h2>p>若在尝试启动 Docker Compose 时,出现以下提示/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2/pre>/td>td classcode>pre classhighlight>code>ERROR: span classk>for /span>kibana Container span classs2>abcdef123456/span> is unhealthy.ERROR: Encountered errors span classk>while /span>bringing up the project./code>/pre>/td>/tr>/tbody>/table>/div>/div>p>可以尝试通过如下方式调整最大内存映射计数来解决/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>span classnb>sudo /span>sysctl span classnt>-w/span> vm.max_map_countspan classo>/span>262144/code>/pre>/td>/tr>/tbody>/table>/div>/div>h2 id六总结>六、总结/h2>p>若通过上述步骤配置完毕,均成功启动且无异常,则已开放下述两个端口提供服务:/p>ul> li>通过 code classlanguage-plaintext highlighter-rouge>https://example.com:9200/code>来访问 Elasticsearch API,该站点使用自签证书/li> li>通过 code classlanguage-plaintext highlighter-rouge>http://example.com:5601/code>访问 Kibana 界面/li>/ul>p>账号及密码:/p>ul> li>账号:code classlanguage-plaintext highlighter-rouge>elastic/code>/li> li>密码:在本文第四节中配置的密码/li>/ul>h2 id七参考资料>七、参考资料/h2>ol> li>a hrefhttps://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-stack-docker.html#_prerequisites_2>Running the Elastic Stack (“ELK”) on Docker - Getting Started 8.1 - Elastic/a>/li> li>a hrefhttps://github.com/elastic/elasticsearch/tree/8.1/docs/reference/setup/install/docker/>elasticsearch/docs/reference/setup/install/docker at 8.1 · elastic/elasticsearch/a>/li> li>a hrefhttps://stackoverflow.com/questions/59226203/docker-kibana-apm-elasticsearch-issue>Docker - Kibana, APM, Elasticsearch issue - - Stack Overflow/a>/li> li>a hrefhttps://www.elastic.co/guide/en/elasticsearch/reference/current/_maximum_map_count_check.html>Maximum map count check - Elasticsearch Guide 8.1 - Elastic/a>/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/install-elastic-stack-by-docker-compose#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/kibana-anonymous-access-with-docker> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/kibana-anonymous-access-with-docker itempropurl> Docker-compose 下的 Kibana 匿名访问仪表盘 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-07-05T10:03:00+00:00> 2022-07-05 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/ElasticStack itempropurl relindex> span itempropname>ElasticStack/span> /a> /span> , span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Docker itempropurl relindex> span itempropname>Docker/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> h3 id创建-space>创建 Space/h3>p>前往 Stack Management -> Spaces 创建一个空间/p>p>本例中创建的样式如图所示/p>p>img src../assets/2022/600.png alt />/p>h3 id创建-dashboard>创建 Dashboard/h3>p>切换至新建的 Space (方法如下图)并创建一个 Dashboard/p>p>img src../assets/2022/601.png alt />/p>p>创建好后,复制地址栏中形如 code classlanguage-plaintext highlighter-rouge>/app/dashboard#/view/xxxxx/code> 的这段地址备用/p>p>本例中的复制的内容如下所示/p>pre>code classlanguage-plain>/app/dashboards#/view/04d2e130-fc13-11ec-ae61-a383e01a8fec?_g(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-15m,to:now))/code>/pre>h3 id设置路由>设置路由/h3>p>前往 Stack Management -> Advanced Settings -> Default Route/p>p>将上一小节中复制的内容粘贴至此处以设定默认路由地址,填入内容后,记得保存页面设置/p>p>如果设置无误,每次打开该 Space 时,即会自动跳转至该 Dashboard/p>h3 id创建-role>创建 Role/h3>p>前往 Stack Management -> Role 创建一个角色/p>p>设定好 Role name 和 Index privileges(选择能够访问的索引并赋予 Read 权限)/p>p>赋予其 Kibana 权限,本例中的设置如下所示/p>p>img src../assets/2022/602.png alt />/p>h3 id创建用户>创建用户/h3>p>前往 Stack Management -> Users 创建一个用户/p>p>本例中设置的用户如图所示/p>p>img src../assets/2022/603.png alt />/p>h3 id修改配置文件>修改配置文件/h3>p>修改 code classlanguage-plaintext highlighter-rouge>docker-compose.yml/code> 文件,在 Kibana 的 code classlanguage-plaintext highlighter-rouge>volumes/code> 部分加入如下内容/p>div classlanguage-yaml highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>span classpi>-/span> span classs>./kibana.yml:/usr/share/kibana/config/kibana.yml/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>新建文件 code classlanguage-plaintext highlighter-rouge>kibana.yml/code>,并在其中配置如下内容:/p>div classlanguage-yaml highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4br/>5br/>6br/>7br/>8br/>9br/>10br/>11br/>12br/>13br/>14br/>15br/>16br/>17br/>18/pre>/td>td classcode>pre classhighlight>code>span classc1># 以 Docker 方式配置的默认设置/span>span classna>server.host/span>span classpi>:/span> span classs2>/span>span classs>0.0.0.0/span>span classna>server.shutdownTimeout/span>span classpi>:/span> span classs2>/span>span classs>5s/span>span classna>elasticsearch.hosts/span>span classpi>:/span> span classpi>/span> span classs2>/span>span classs>http://elasticsearch:9200/span> span classpi>/span>span classna>monitoring.ui.container.elasticsearch.enabled/span>span classpi>:/span> span classno>true/span>span classc1># 修改显示语言为中文/span>span classna>i18n.locale/span>span classpi>:/span> span classs2>/span>span classs>zh-CN/span>span classc1># 配置默认登录用户/span>span classna>xpack.security.authc.providers/span>span classpi>:/span> span classna>anonymous.anonymous1/span>span classpi>:/span> span classna>order/span>span classpi>:/span> span classm>1/span> span classna>credentials/span>span classpi>:/span> span classna>username/span>span classpi>:/span> span classs2>/span>span classs>kibana-dashboard-only-user/span> span classna>password/span>span classpi>:/span> span classs2>/span>span classs>password/span> span classna>basic.basic1/span>span classpi>:/span> span classna>order/span>span classpi>:/span> span classm>2/span>/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>修改完配置文件后,重启 Kibana,进入 Dashboard 页面,选择 Share 功能,即可复制 Public URL/p>p>em>该功能在 Chrome 上工作不正常,Firefox 没有问题/em>/p>h3 id参考连接>参考连接/h3>ol> li>a hrefhttps://www.elastic.co/guide/en/kibana/current/kibana-authentication.html#anonymous-authentication>Authentication in Kibana - Kibana Guide 8.3 - Elastic/a>/li> li>a hrefhttps://www.elastic.co/guide/en/kibana/current/embedding.html>Embed Kibana content in a web page - Kibana Guide 8.3 - Elastic/a>/li> li>a hrefhttps://discuss.elastic.co/t/share-public-url-option-not-present/266843>Share Public URL Option Not Present - Elastic Stack / Kibana - Discuss the Elastic Stack/a>/li> li>a hrefhttps://www.elastic.co/guide/en/kibana/current/settings.html>Configure Kibana - Kibana Guide 8.3 - Elastic/a>/li> li>a hrefhttps://www.elastic.co/guide/en/kibana/current/docker.html#docker-bind-mount-config>Install Kibana with Docker - Kibana Guide 8.3 - Elastic/a>/li> li>a hrefhttps://blog.csdn.net/UbuntuTouch/article/details/118152293>Kibana:如何让用户匿名访问 Kibana 中的 Dashboard_Elastic 中国社区官方博客的博客-CSDN博客_kibana 匿名登录/a>/li> li>a hrefhttps://www.elastic.co/guide/en/kibana/current/security-settings-kb.html#xpack-security-sameSiteCookies>Security settings in Kibana - Kibana Guide 8.3 - Elastic/a>/li>/ol> !--noindex--> div classpost-button text-center> a classbtn href/post/kibana-anonymous-access-with-docker#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/use-pyqt5-on-win7-in-2022> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/use-pyqt5-on-win7-in-2022 itempropurl> 在 Win7 和 WinXP 上使用 PyQt5 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-06-08T14:40:00+00:00> 2022-06-08 /time> /span> span classpost-category > span classpost-meta-divider>|/span> span classpost-meta-item-icon> i classfa fa-folder-o>/i> /span> span classpost-meta-item-text>In/span> span itempropabout itemscope itemtypehttp://schema.org/Thing> a href/category/#/Python itempropurl relindex> span itempropname>Python/span> /a> /span> /span> /div> /header> div classpost-body itemproparticleBody> p>因特殊需求,需要在 Win7 和 WinXP 上使用一个由 PyQt5 构建的桌面应用程序。/p>p>但较新版本的 Python 早已放弃对 WinXP 以及 Win7 的支持。/p>p>在此整理了一套可在该平台上运行的方案。/p>p>由于在 pypi 上已经下载不到了,所以提供了各自官方的下载地址。/p>hr />h3 id下载并安装-pyqt5>下载并安装 PyQt5/h3>p>版本 5.5.1/p>p>a hrefhttps://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.5.1/>PyQt - Browse /PyQt5/PyQt-5.5.1 at SourceForge.net/a>/p>h3 id下载并安装-pywin32>下载并安装 pywin32/h3>p>不安装这个,不能正常使用 PyInstaller/p>p>版本 220/p>p>a hrefhttps://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/pywin32-220.win32-py3.4.exe/download>Download Python for Windows Extensions from SourceForge.net/a>/p>h3 id下载并安装-pyinstaller>下载并安装 PyInstaller/h3>p>版本 3.2.1/p>p>a hrefhttps://github.com/pyinstaller/pyinstaller/releases/tag/v3.2.1>Release v3.2.1 · pyinstaller/pyinstaller/a>/p>p>选择 zip 包下载,下载后使用 code classlanguage-plaintext highlighter-rouge>pip install PyInstaller-3.2.1.zip/code> 安装/p> !--noindex--> div classpost-button text-center> a classbtn href/post/use-pyqt5-on-win7-in-2022#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> div classpost-eof>/div> /footer> /article> article classpost post-type- itemscope itemtypehttp://schema.org/Article> link itempropmainEntityOfPage hrefhttps://blog.jueluo.tech/post/python-fake-udp-attack> span hidden itempropauthor itemscope itemtypehttp://schema.org/Person> meta itempropname contentJueLuo> meta itempropdescription content> meta itempropimage content/assets/pics/avatar.jpg> /span> span hidden itemproppublisher itemscope itemtypehttp://schema.org/Organization> meta itempropname contentJueLuos Blog> /span> header classpost-header> h1 classpost-title itempropname headline> a classpost-title-link href/post/python-fake-udp-attack itempropurl> 使用 Python 构造一个伪装来源的 UDP 攻击 /a> /h1> div classpost-meta> span classpost-time> span classpost-meta-item-icon> i classfa fa-calendar-o>/i> /span> span classpost-meta-item-text>Posted on/span> time titlePost created itempropdateCreated datePublished datetime2022-05-01T03:19:00+00:00> 2022-05-01 /time> /span> /div> /header> div classpost-body itemproparticleBody> h2 id获取方式>获取方式/h2>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4/pre>/td>td classcode>pre classhighlight>code>wget https://raw.githubusercontent.com/JueLuo99/network-tools/master/fake_udp_attack.pyspan classc># 或者使用下面这个地址/span>wget https://git.jueluo.tech/jueluo/network-tools/raw/branch/master/fake_udp_attack.py/code>/pre>/td>/tr>/tbody>/table>/div>/div>h2 id环境需求>环境需求/h2>ul> li>Linux 需要 root 权限(Windows未知)/li> li>Python 3.6+/li> li>安装 code classlanguage-plaintext highlighter-rouge>scapy/code> 库:code classlanguage-plaintext highlighter-rouge>sudo pip3 install scapy/code>/li>/ul>h2 id使用方式>使用方式/h2>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1/pre>/td>td classcode>pre classhighlight>code>span classnb>sudo /span>python3 fake_udp_attack.py <source_ip> <source_port> <dest_ip> <dest_port> <payload>/code>/pre>/td>/tr>/tbody>/table>/div>/div>h3 id举个例子>举个例子/h3>p>发送端:/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3/pre>/td>td classcode>pre classhighlight>code>span classnv>$ /span>span classnb>sudo /span>python3 fake_udp_attack.py 8.8.8.8 8888 192.168.2.15 4567 Hellospan classnb>./span>Sent 1 packets./code>/pre>/td>/tr>/tbody>/table>/div>/div>p>接收端:/p>div classlanguage-bash highlighter-rouge>div classhighlight>table stylemargin: 0px>tbody>tr>td classgutter>pre>1br/>2br/>3br/>4/pre>/td>td classcode>pre classhighlight>code>span classnv>$ /span>span classnb>sudo /span>nc span classnt>-luvvp/span> 4567Listening on span classo>/span>0.0.0.0 span classo>(/span>family 2, port 4567span classo>)/span>Connection from dns.google 8888 received!Hello/code>/pre>/td>/tr>/tbody>/table>/div>/div>p>可见成功伪装成 Google DNS 的地址发送了一个 UDP 报文,并且接收端收到了这个报文。/p>h2 id注意事项>注意事项/h2>p>该功能可能会因 NAT 技术等原因在公网上工作不正确,亦可能直接被网关丢弃/p> !--noindex--> div classpost-button text-center> a classbtn href/post/python-fake-udp-attack#more relcontents> Read more » /a> /div> !--/noindex--> /div> div> /div> div> /div> div> /div> footer classpost-footer> /footer> /article> /section> nav classpagination> span classpage-number current>1/span> a classpage-number href/page2>2/a> span classspace>…/span> a classpage-number href/page7>7/a> a classextend prev relnext href/page2>i classfa fa-angle-right>/i>/a> /nav> /div> /div> div classsidebar-toggle> div classsidebar-toggle-line-wrap> span classsidebar-toggle-line sidebar-toggle-line-first>/span> span classsidebar-toggle-line sidebar-toggle-line-middle>/span> span classsidebar-toggle-line sidebar-toggle-line-last>/span> /div> /div> aside idsidebar classsidebar> div classsidebar-inner> section classsite-overview sidebar-panel sidebar-panel-active> div classsite-author motion-element itempropauthor itemscope itemtypehttp://schema.org/Person> img classsite-author-image itempropimage src/assets/pics/avatar.jpg altJueLuo /> p classsite-author-name itempropname>JueLuo/p> p classsite-description motion-element itempropdescription>The better we get at getting better, the faster we will get better./p> /div> nav classsite-state motion-element> div classsite-state-item site-state-posts> a href/archives/> span classsite-state-item-count>65/span> span classsite-state-item-name>posts/span> /a> /div> div classsite-state-item site-state-categories> a href/categories/> span classsite-state-item-count>21/span> span classsite-state-item-name>categories/span> /a> /div> div classsite-state-item site-state-tags> a href/tags/> span classsite-state-item-count>86/span> span classsite-state-item-name>tags/span> /a> /div> /nav> div classlinks-of-author motion-element> span classlinks-of-author-item> a hrefhttps://github.com/JueLuo99 target_blank titleGitHub> i classfa fa-fw fa-github>/i> GitHub /a> /span> span classlinks-of-author-item> a hrefhttps://weibo.com/u/3363135844 target_blank titleWeibo> i classfa fa-fw fa-weibo>/i> Weibo /a> /span> span classlinks-of-author-item> a hrefhttps://steamcommunity.com/id/jueluo/ target_blank titleSteam> i classfa fa-fw fa-steam>/i> Steam /a> /span> /div> /section> /div> /aside> /div> /main> footer idfooter classfooter> div classfooter-inner> div classcopyright > © 2015 - span itempropcopyrightYear>2024/span> span classwith-love> i classfa fa-heart>/i> /span> span classauthor itempropcopyrightHolder>JueLuo/span>/div>div classpowered-by> Powered by a classtheme-link hrefhttps://jekyllrb.com>Jekyll/a>/div>div classtheme-info> Theme - a classtheme-link hrefhttps://github.com/simpleyyt/jekyll-theme-next> NexT.Pisces /a>/div> /div> /footer> div classback-to-top> i classfa fa-arrow-up>/i> /div> /div> script typetext/javascript> if (Object.prototype.toString.call(window.Promise) ! object Function) { window.Promise null; }/script> script typetext/javascript src/assets/lib/jquery/index.js?v2.1.3>/script> script typetext/javascript src/assets/lib/fastclick/lib/fastclick.min.js?v1.0.6>/script> script typetext/javascript src/assets/lib/jquery_lazyload/jquery.lazyload.js?v1.9.7>/script> script typetext/javascript src/assets/lib/velocity/velocity.min.js?v1.2.1>/script> script typetext/javascript src/assets/lib/velocity/velocity.ui.min.js?v1.2.1>/script> script typetext/javascript src/assets/lib/fancybox/source/jquery.fancybox.pack.js?v2.1.5>/script> script typetext/javascript src/assets/js/src/utils.js?v5.1.1>/script> script typetext/javascript src/assets/js/src/motion.js?v5.1.1>/script> script typetext/javascript src/assets/js/src/affix.js?v5.1.1>/script> script typetext/javascript src/assets/js/src/schemes/pisces.js?v5.1.1>/script> script typetext/javascript src/assets/js/src/scrollspy.js?v5.1.1>/script>script typetext/javascript src/assets/js/src/post-details.js?v5.1.1>/script> script typetext/javascript src/assets/js/src/bootstrap.js?v5.1.1>/script> script typetext/javascript> // Popup Window; var isfetched false; var isXml true; // Search DB path; var search_path ; if (search_path.length 0) { search_path search.xml; } else if (/json$/i.test(search_path)) { isXml false; } var path / + search_path; // monitor main search box; var onPopupClose function (e) { $(.popup).hide(); $(#local-search-input).val(); $(.search-result-list).remove(); $(#no-result).remove(); $(.local-search-pop-overlay).remove(); $(body).css(overflow, ); } function proceedsearch() { $(body) .append(div classsearch-popup-overlay local-search-pop-overlay>/div>) .css(overflow, hidden); $(.search-popup-overlay).click(onPopupClose); $(.popup).toggle(); var $localSearchInput $(#local-search-input); $localSearchInput.attr(autocapitalize, none); $localSearchInput.attr(autocorrect, off); $localSearchInput.focus(); } // search function; var searchFunc function(path, search_id, content_id) { use strict; // start loading animation $(body) .append(div classsearch-popup-overlay local-search-pop-overlay> + div idsearch-loading-icon> + i classfa fa-spinner fa-pulse fa-5x fa-fw>/i> + /div> + /div>) .css(overflow, hidden); $(#search-loading-icon).css(margin, 20% auto 0 auto).css(text-align, center); $.ajax({ url: path, dataType: isXml ? xml : json, async: true, success: function(res) { // get the contents from search data isfetched true; $(.popup).detach().appendTo(.header-inner); var datas isXml ? $(entry, res).map(function() { return { title: $(title, this).text(), content: $(content,this).text(), url: $(url , this).text() }; }).get() : res; var input document.getElementById(search_id); var resultContent document.getElementById(content_id); var inputEventFunction function() { var searchText input.value.trim().toLowerCase(); var keywords searchText.split(/\s\-+/); if (keywords.length > 1) { keywords.push(searchText); } var resultItems ; if (searchText.length > 0) { // perform local searching datas.forEach(function(data) { var isMatch false; var hitCount 0; var searchTextCount 0; var title data.title.trim(); var titleInLowerCase title.toLowerCase(); var content data.content.trim().replace(/^>+>/g,); var contentInLowerCase content.toLowerCase(); var articleUrl decodeURIComponent(data.url); var indexOfTitle ; var indexOfContent ; // only match articles with not empty titles if(title ! ) { keywords.forEach(function(keyword) { function getIndexByWord(word, text, caseSensitive) { var wordLen word.length; if (wordLen 0) { return ; } var startPosition 0, position , index ; if (!caseSensitive) { text text.toLowerCase(); word word.toLowerCase(); } while ((position text.indexOf(word, startPosition)) > -1) { index.push({position: position, word: word}); startPosition position + wordLen; } return index; } indexOfTitle indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false)); indexOfContent indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false)); }); if (indexOfTitle.length > 0 || indexOfContent.length > 0) { isMatch true; hitCount indexOfTitle.length + indexOfContent.length; } } // show search results if (isMatch) { // sort index by position of keyword indexOfTitle, indexOfContent.forEach(function (index) { index.sort(function (itemLeft, itemRight) { if (itemRight.position ! itemLeft.position) { return itemRight.position - itemLeft.position; } else { return itemLeft.word.length - itemRight.word.length; } }); }); // merge hits into slices function mergeIntoSlice(text, start, end, index) { var item indexindex.length - 1; var position item.position; var word item.word; var hits ; var searchTextCountInSlice 0; while (position + word.length end && index.length ! 0) { if (word searchText) { searchTextCountInSlice++; } hits.push({position: position, length: word.length}); var wordEnd position + word.length; // move to next position of hit index.pop(); while (index.length ! 0) { item indexindex.length - 1; position item.position; word item.word; if (wordEnd > position) { index.pop(); } else { break; } } } searchTextCount + searchTextCountInSlice; return { hits: hits, start: start, end: end, searchTextCount: searchTextCountInSlice }; } var slicesOfTitle ; if (indexOfTitle.length ! 0) { slicesOfTitle.push(mergeIntoSlice(title, 0, title.length, indexOfTitle)); } var slicesOfContent ; while (indexOfContent.length ! 0) { var item indexOfContentindexOfContent.length - 1; var position item.position; var word item.word; // cut out 100 characters var start position - 20; var end position + 80; if(start 0){ start 0; } if (end position + word.length) { end position + word.length; } if(end > content.length){ end content.length; } slicesOfContent.push(mergeIntoSlice(content, start, end, indexOfContent)); } // sort slices in content by search texts count and hits count slicesOfContent.sort(function (sliceLeft, sliceRight) { if (sliceLeft.searchTextCount ! sliceRight.searchTextCount) { return sliceRight.searchTextCount - sliceLeft.searchTextCount; } else if (sliceLeft.hits.length ! sliceRight.hits.length) { return sliceRight.hits.length - sliceLeft.hits.length; } else { return sliceLeft.start - sliceRight.start; } }); // select top N slices in content var upperBound parseInt(1); if (upperBound > 0) { slicesOfContent slicesOfContent.slice(0, upperBound); } // highlight title and content function highlightKeyword(text, slice) { var result ; var prevEnd slice.start; slice.hits.forEach(function (hit) { result + text.substring(prevEnd, hit.position); var end hit.position + hit.length; result + b classsearch-keyword> + text.substring(hit.position, end) + /b>; prevEnd end; }); result + text.substring(prevEnd, slice.end); return result; } var resultItem ; if (slicesOfTitle.length ! 0) { resultItem + li>a href + articleUrl + classsearch-result-title> + highlightKeyword(title, slicesOfTitle0) + /a>; } else { resultItem + li>a href + articleUrl + classsearch-result-title> + title + /a>; } slicesOfContent.forEach(function (slice) { resultItem + a href + articleUrl + > + p class\search-result\> + highlightKeyword(content, slice) + .../p> + /a>; }); resultItem + /li>; resultItems.push({ item: resultItem, searchTextCount: searchTextCount, hitCount: hitCount, id: resultItems.length }); } }) }; if (keywords.length 1 && keywords0 ) { resultContent.innerHTML div idno-result>i classfa fa-search fa-5x />/div> } else if (resultItems.length 0) { resultContent.innerHTML div idno-result>i classfa fa-frown-o fa-5x />/div> } else { resultItems.sort(function (resultLeft, resultRight) { if (resultLeft.searchTextCount ! resultRight.searchTextCount) { return resultRight.searchTextCount - resultLeft.searchTextCount; } else if (resultLeft.hitCount ! resultRight.hitCount) { return resultRight.hitCount - resultLeft.hitCount; } else { return resultRight.id - resultLeft.id; } }); var searchResultList ul class\search-result-list\>; resultItems.forEach(function (result) { searchResultList + result.item; }) searchResultList + /ul>; resultContent.innerHTML searchResultList; } } if (auto auto) { input.addEventListener(input, inputEventFunction); } else { $(.search-icon).click(inputEventFunction); input.addEventListener(keypress, function (event) { if (event.keyCode 13) { inputEventFunction(); } }); } // remove loading animation $(.local-search-pop-overlay).remove(); $(body).css(overflow, ); proceedsearch(); } }); } // handle and trigger popup window; $(.popup-trigger).click(function(e) { e.stopPropagation(); if (isfetched false) { searchFunc(path, local-search-input, local-search-result); } else { proceedsearch(); }; }); $(.popup-btn-close).click(onPopupClose); $(.popup).click(function(e){ e.stopPropagation(); }); $(document).on(keyup, function (event) { var shouldDismissSearchPopup event.which 27 && $(.search-popup).is(:visible); if (shouldDismissSearchPopup) { onPopupClose(); } }); /script> script typetext/x-mathjax-config> MathJax.Hub.Config({ tex2jax: { inlineMath: $,$, \\(,\\) , processEscapes: true, skipTags: script, noscript, style, textarea, pre, code } }); /script> script typetext/x-mathjax-config> MathJax.Hub.Queue(function() { var all MathJax.Hub.getAllJax(), i; for (i0; i all.length; i + 1) { alli.SourceElement().parentNode.className + has-jax; } }); /script> script typetext/javascript src//cdn.bootcss.com/mathjax/2.7.1/latest.js?configTeX-AMS-MML_HTMLorMML>/script> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]