OpenList 本地Windows部署

1、推荐下载后缀为 amd64 的 ZIP 文件,解压仅包含 openlist.exe 文件,但启动后会自动生成 data 目录。

2、进入解压目录,在地址栏输入 cmd 回车,在弹出的命令行窗口执行命令启动服务:           openlist.exe server       # 或者          openlist server
启动成功后,命令行窗口将输出用户名、密码及端口。

3、设置开机自启动。将下载的两个脚本放入 OpenList 安装目录;为 run.vbs 创建快捷方式;按下 Win + R,输入 shell:startup 并回车,将快捷方式拖入打开的启动目录中。

4、版本更新重复1、2 步即可,不会改变之前的设置。

一键DD系统,开箱即用!

以下转自NS论坛

买完小鸡肯定是先DD系统(DD系统是指使用dd命令直接将镜像写入硬盘以实现操作系统安装的方法),DD可以让你的小鸡系统环境更纯净,如果你有很多个小鸡,你就明白把这么多小鸡DD成一个相同的系统环境,对你后期折腾小鸡是有多么大的帮助。

这条DD命令我这几年一直用,先后在几十台小鸡上DD,无一例翻车,优势是一条命令搞定密码,端口,时区,虚拟内存,不用再一个一去设置,真正做到了DD完立马投入生成环境,开箱即用!

wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh && bash InstallNET.sh -debian "自定义1" -pwd "自定义2" -hostname "自定义3" -port "自定义4" -timezone "自定义5" -swap "自定义6"

释义:

自定义1:【重要】可以填11或者12,你可以DD Debian11 或者 Debian12,我觉得Debian和大部分小鸡体质更配,其他系统也可装,可去leitbogioro大佬项目页面探索。
自定义2:【重要】可以自定义密码,大小写+数字+特殊符号,搞上15-20位,强烈建议DD完以后在root/.ssh/放上你的公钥文件,用密钥登录小鸡。
自定义3:DD后显示的主机名,主要体现在每次SSH登录后,如果自定义成mjj,会显示在这里:root@mjj~# ,有时候这个自定义3会失效,主要是由于商家的DNS/DHCP/商家面板的干扰。
自定义4:【重要】端口号,默认22,无时无刻不在承受着各种扫描和爆破,你自定义个5位数端口,但不要超过65535‌,防止从后往前扫,尽量避免和65535‌挨得太近。
自定义5:时区设置,我一般是Asia/Shanghai
自定义6:虚拟内存设置,可以设置1024,意思是增加1G的虚拟内存,也可以设置成2048,2G内存。最近几年小鸡内存基本都是1G起,基本没有内存焦虑。
命令和参数均来自https://github.com/leitbogioro/Tools, 感谢leitbogioro大佬

调优时,证书环境:apt-get install ca-certificates wget -y && update-ca-certificates

脚本:wget -O tcpx.sh "https://github.com/ylx2016/Linux-NetSpeed/raw/master/tcpx.sh" && chmod +x tcpx.sh && ./tcpx.sh

一般安装BBR原版内核+FQ优化,然后 >22. 系统配置优化新,就可以,喜欢折腾的,可以>61. 手动提交合并内核参数,手动调优。

这一套下来,鸡仔跑的更欢实了。

Ubuntu系统更新

Ubuntu系统中,可以使用以下命令来更新系统:

1、更新软件包列表:sudo apt update
2、升级所有已安装的包到最新版本:sudo apt upgrade
3、(可选)如果系统提示有某些包可以自动更新,并且你想要进行升级,可以使用下面的命令:sudo apt dist-upgrade
4、(可选)自动清理不再需要的包:sudo apt autoremove
5、(可选)重启系统,以便一些更新能够完全生效:sudo reboot

Warning: Undefined array key “HTTP_X_FORWARDED_PROTO” in ../wp-config.php

The HTTP_X_FORWARDED_PROTO line is incorrect. If you use this code your WordPress site will work correctly with your SSL certificate on your proxy/load balancer. But you’ll get the following error.

Warning: Undefined array key “HTTP_X_FORWARDED_PROTO” in ../wp-config.php

The Fix

The fix is pretty straight forward and all you have to do is check that the index exists and then set it as required. Updated your wp-config.php file to look like this.

if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
{ $_SERVER['HTTPS']='on'; }

Ubuntu Linux 升级内核的最简单方法

1、检查内核版本【uname -r】
2、若是CentOS 8 Stream,执行【yum install kernel】命令升级内核,并重启服务器
3、若是Ubuntu,则执行【apt install linux-image】查看可安装版本号,选择想要的版本号,再次执行【apt install linux-image-版本号】,并重启服务器。

若机没有最新版本,则使用以下命令先从官方库中升级内核

sudo apt-get upgrade linux-image-generic

Ubuntu 20.04 BBR+nano转发

新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑慢,并且尽量不要有排队的情况,让网络服务更佳稳定和高效。

修改系统变量:

echo net.core.default_qdisc=fq >> /etc/sysctl.conf
echo net.ipv4.tcp_congestion_control=bbr >> /etc/sysctl.conf

保存生效

sysctl -p

执行

sysctl net.ipv4.tcp_available_congestion_control

如果结果是这样,就开启了。

sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = bbr cubic reno

执行以检测 BBR 是否开启。

lsmod | grep bbr

出现类似以下的情况就是成功开启BBR

tcp_bbr                24576  3
以下为端口转发代码
apt-get install rinetd
nano /etc/rinetd.conf
198.231.119.22 6789  142.4.285.33 3389

/etc/init.d/rinetd restart

以下为nano快捷键:

ctrl + o 保存文件         ctrl + x 退出编辑器          ctrl + k 剪切行            ctrl + u 粘贴

ctrl + w 查找               ctrl + y 上一屏幕             ctrl + v 下一屏幕

 

WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存

本站使用WordPress 博客系统,腾讯云CDN+云解析 ,为追求速度,全站静态缓存。

但在发布和更新文章、提交及审核评论后,CDN缓存导致首页不能及时显示更新,在张戈博客发现了这段“自动清理腾讯云CDN缓存”的代码,马上用上——网络高手们确实多啊。

完整的 php 代码如下:

/**
* WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存(首页和当前文章) By 张戈博客
* 文章地址:https://zhangge.net/5089.html
* 转载请保留出处,谢谢合作!
**/

/* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey */
$secretKey = '此处填写SECRET_KEY';
$secretId  = '此处填写SECRET_ID';

//更新或发布文章清理本文和首页CDN缓存
add_action('publish_post', 'Clean_By_Publish', 0);

//提交评论更新本文CDN缓存
add_action('comment_post', 'Clean_By_Comments',0);

//评论被审核更新本文CDN缓存
add_action('comment_unapproved_to_approved', 'Clean_By_Approved',0);

//发布文章更新CDN缓存函数
function Clean_By_Publish($post_ID){
    global $secretKey,$secretId;
    $url = get_permalink($post_ID);
    $action='RefreshCdnUrl';
    /*要清理的页面,默认包含首页和文章页面,需要清理其他页面请自行发挥*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => home_url(),
                    'urls.1' => $url ,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//提交评论清理文章CDN函数
function Clean_By_Comments($comment_id) 
{
    global $secretKey,$secretId;
    $comment = get_comment($comment_id);
    $url = get_permalink($comment->comment_post_ID);
    $action='RefreshCdnUrl';
    /*参数*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => $url,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//评论被审核清理CDN缓存函数
function Clean_By_Approved($comment)
{
    global $secretKey,$secretId;
    $url = get_permalink($comment->comment_post_ID);
    $action='RefreshCdnUrl';
    /*参数*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => $url,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//请求主函数,无需改动
function CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps)
{
        $FullHttpUrl = $HttpUrl."/v2/index.php";
        /***************对请求参数 按参数名 做字典序升序排列,注意此排序区分大小写*************/
        $ReqParaArray = array_merge($COMMON_PARAMS, $PRIVATE_PARAMS);
        ksort($ReqParaArray);
        /**********************************生成签名原文**********************************
         * 将 请求方法, URI地址,及排序好的请求参数  按照下面格式  拼接在一起, 生成签名原文,此请求中的原文为 
         * GETcvm.api.qcloud.com/v2/index.php?Action=DescribeInstances&Nonce=345122&Region=gz
         * &SecretId=AKIDz8krbsJ5yKBZQ    ·1pn74WFkmLPx3gnPhESA&Timestamp=1408704141
         * &instanceIds.0=qcvm12345&instanceIds.1=qcvm56789
         * ****************************************************************************/
        $SigTxt = $HttpMethod.$FullHttpUrl."?";
        $isFirst = true;
        foreach ($ReqParaArray as $key => $value)
        {
                if (!$isFirst) 
                {
                        $SigTxt = $SigTxt."&";
                }
                $isFirst= false;
                /*拼接签名原文时,如果参数名称中携带_,需要替换成.*/
                if(strpos($key, '_'))
                {
                        $key = str_replace('_', '.', $key);
                }
                $SigTxt=$SigTxt.$key."=".$value;
        }
        /*********************根据签名原文字符串 $SigTxt,生成签名 Signature******************/
        $Signature = base64_encode(hash_hmac('sha1', $SigTxt, $secretKey, true));
        /***************拼接请求串,对于请求参数及签名,需要进行urlencode编码********************/
        $Req = "Signature=".urlencode($Signature);
        foreach ($ReqParaArray as $key => $value)
        {
                $Req=$Req."&".$key."=".urlencode($value);
        }
        /*********************************发送请求********************************/
        if($HttpMethod === 'GET')
        {
                if($isHttps === true)
                {
                        $Req="https://".$FullHttpUrl."?".$Req;
                }
                else
                {
                        $Req="http://".$FullHttpUrl."?".$Req;
                }
                $Rsp = file_get_contents($Req);
        }
        else
        {
                if($isHttps === true)
                {
                        $Rsp= SendPost("https://".$FullHttpUrl,$Req,$isHttps);
                }
                else
                {
                        $Rsp= SendPost("http://".$FullHttpUrl,$Req,$isHttps);
                }
        }
        //var_export(json_decode($Rsp,true));
        return json_decode($Rsp,true);
}
function SendPost($FullHttpUrl, $Req, $isHttps)
{
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $Req);
        curl_setopt($ch, CURLOPT_URL, $FullHttpUrl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1 );
        if ($isHttps === true) {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  false);
        }
        $result = curl_exec($ch);
        return $result;

先访问 腾讯云的 API 密钥 创建或获取你在腾讯云的 API 密钥:

然后正确替换上述代码中的8,9行的 secretKey 和 secretId 值,比如:

/* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey */
$secretKey = 'ABCD123CSDFSBSDFDSF';
$secretId  = 'CDAABBBSDFA683N23423N4';

部署后,博客发布或更新文章、评论的提交或审核都会调用 API 去清理 CDN 缓存,其中文章和评论的提交可能会比没有部署略微卡一点,评论的审核是异步提交,所以感知不到什么。

推荐百度网盘

百度网盘,是百度公司推出的一项提供用户Web、PC、Android手机客户端多平台数据共享的云存储服务。该服务依托于百度强大的云存储集群机制,发挥了百度强有力的云端存储优势,提供超大的网络存储空间,拥有更强大的数据安全保障,并且提供了把精彩内容轻松分享给好友的通道。目前需要邀请才能开通使用,分享邀请码数枚,给需要的朋友~

特色功能:

1.大容量存储空间
无需完成任务,注册即可获得15GB超大存储空间,空间免费无上限。新注册成功,就获得了15GB超大免费存储空间,而且还可以不断扩容,没有上限。

2.多平台数据共享
支持Web,PC,Android手机客户端等多个平台,进行跨平台、跨终端的文件共享,随时随地访问。用户上传的文件都会保存在云端,在访问文件时,无论登录哪个平台都可以访问到所有平台存储的文件;存储随意,访问方便。

3.文件分类浏览
自动对用户文件进行分类,浏览查找更方便。按照用户存储的文件类型对用户上传文件进行自动分类,极大方便了用户浏览以及对文件的管理,独具特色。

4. 超大单文件快速上传,无限速、少约束
百度网盘Web版支持最大1GB 单文件上传,PC客户端最大支持4GB单文件上传,上传不限速;可进行批量操作,轻松便利。网路速度有多快上传速度就有多快。同时,还可以批量操作上传,方便实用。上传文件时,自动将要上传的文件与云端资源库进行匹配,如果匹配成功,则可以秒传,最大限度节省您的上传时间。

5.离线下载,下载文件无需等待
只需输入你需要下载的文件链接,服务器将自动帮你下载到网盘中。最大限度节省用户将文件存至网盘的时间。

6.数据安全
百度强大的云存储集群,是目前最具优势的存储机制,提供了完善高效的服务:高效的云端存储速度,以及稳定可靠的数据安全。完善的文件访问控制机制,提供了必备的数据安全屏障。依托百度大规模可靠存储,一份文件多份备份,防范一切意外。数据传输加密,有效防止数据窃取。

7.轻松好友分享
轻松进行文件及文件夹的分享,支持短信和邮件两种分享方式,让你的好友和你一起High起来。好友分享时,设有相应的提取码,只有输入相应的提取码才能访问分享的文件,有效确保了隐私安全。

大家可以通过 us.xiyy.us 访问我的百度网盘地址,看看我收集的软件,呵呵。祝你开心