迁移thunderbird——从Windows到Mac

根据官方信息备份profile文件

一 如何找到您的配置文件

Windows/Mac

  1. 单击菜单按钮或菜单栏。
  2. 在 帮助 菜单,单击 故障排除信息
  3. 在应用基本信息部分,Profile Folder,单击 打开文件夹/ 显示在 Finder
  4. 资源管理器/Mac Finder 窗口会打开并显示配置文件和文件夹。

二 备份配置文件

要备份您的配置文件, 首先关闭正在运行的 Thunderbird 并复制配置文件夹到另一个位置。

  1. 如上所诉定位您的配置文件夹。
  2. 关闭 Thunderbird 。
  3. 到您配置文件夹的上一层,例如 %APPDATA%\Thunderbird\Profiles\
  4. 在配置文件处(例如 xxxxxxxx.default),点击鼠标右键,并选择 复制
  5. 在备份位置(例如 一个 U 盘或一个空白的 CD-RW 光盘)处,点击鼠标右键, 并选择 粘帖

三 恢复配置文件备份

  1. 关闭 Thunderbird。
  2. 打开配置文件夹备份(例如,xxxxxxxx.default 备份)。
  3. 复制整个配置文件夹备份的 内容,例如 mimeTypes.rdf 文件, prefs.js 文件等等。
  4. 定位并打开如上所述新的配置文件夹然后关闭 Thunderbird (如果打开着的话)。
  5. 粘帖备份的配置文件夹到新的配置文件改写现有的同名文件。
  6. 删除配置文件夹里的pkcs11.txt。(很重要!很重要!很重要!
  7. 启动 Thunderbird。

 

参考:

https://support.mozilla.org/zh-CN/kb/TB的配置文件

https://support.mozilla.org/en-US/questions/1263932

Linux启用多ip之关闭 rp_filter

关闭 rp_filter 校验,在 etc/sysctl.conf 中关闭反向过滤。

说明:

反向过滤指系统在接收到一个 IP 包后检查该 IP 是否符合要求,不合要求则被丢弃。

 

  • 打开配置文件:
vim /etc/sysctl.conf

把配置文件中原配置中的net.ipv4.conf.default.rp_filter = 1,修改成:

net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth1.rp_filter = 0
  • 重启网络服务
    输入以下命令:
systemctl restart network
  • 验证修改
sysctl -a | grep rp_filter

 

小米8官方刷机包地址

           开发版

开发版 8.6.18(MIUI10) 卡刷包 线刷包
开发版 8.6.21(MIUI10) 卡刷包 线刷包
开发版8.6.23(MIUI10) 卡刷包 线刷包
开发版 8.6.28(MIUI10) 卡刷包 线刷包
开发版 8.7.6(MIUI10) 卡刷包 线刷包
开发版 8.7.12(MIUI10) 卡刷包 线刷包
开发版 8.7.19(MIUI10) 卡刷包 线刷包

           稳定版

稳定版 V9.5.6.0(MIUI9) 卡刷包 线刷包
稳定版 V9.5.8.0(MIUI9) 卡刷包
稳定版 V9.5.11.0(MIUI9) 卡刷包 线刷包

修改出站链接并实现url的base64变化

实践的目标:

1.在hao123选择链接的时候能发现状态栏正常,但是点击后能明显发现跳转的链接是经过处理的。

比如点击http://www.163.com/会实际跳转https://www.hao123.com/link/https/?key=http%3A%2F%2Fwww.163.com%2F&&monkey=m-mingzhan-site&c=xxx。

故打算在外链后加个小尾巴“?from=myscis.cn”。

2.在一个博客发现其所有的外链全通过base64处理,觉得挺有意思的,故打算自己写出来。

比如跳转https://myscis.cn的链接地址为https://myscis.cn/go/aHR0cHM6Ly9teXNjaXMuY24=,其中aHR0cHM6Ly9teXNjaXMuY24=为https://myscis.cn经过base64处理的结果。

实现途径:

1.监听并拦截点击链接事件,并处理链接后实现跳转。

2.通过php动态处理编码后的url,并跳转外链。

实践记录:

1.目标1

    写demo.js拦截跳转

//在网站主目录下创建demo.js
cd /usr/share/nginx/html
vim demo.js
var urls = document.querySelectorAll('a')
Array.prototype.forEach.call(urls, function (url) {
    url.addEventListener('click', function (click) {
        //引入判断区分是否是站内链接,如果是则不拦截。
        if(!this.href.match(location.hostname)){
            click.preventDefault()
            //js由于没有原生base64处理,所以需要引入base64函数;
            window.location.href="go/"+toBase64(this.href);
            //也可以直接跳转并添加?from=hostname
            //window.location.href=this.href + "?from=" + location.hostname;
            }               
            
    })
}) 
        
//fork from http://blog.csdn.net/maoxiao1229/article/details/7971814
/** Convert data (an array of integers) to a Base64 string. */  

var toBase64Table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';  
var base64Pad = '=';  

function toBase64(data) {  
    var result = '';  
    var length = data.length;  
    var i;  
    // Convert every three bytes to 4 ascii characters.                                                   

    for (i = 0; i < (length - 2); i += 3) {  
        result += toBase64Table[data.charCodeAt(i) >> 2];  
        result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)];  
        result += toBase64Table[((data.charCodeAt(i + 1) & 0x0f) << 2) + (data.charCodeAt(i + 2) >> 6)];  
        result += toBase64Table[data.charCodeAt(i + 2) & 0x3f];  
    }  

    // Convert the remaining 1 or 2 bytes, pad out to 4 characters.                                       

    if (length % 3) {  
        i = length - (length % 3);  
        result += toBase64Table[data.charCodeAt(i) >> 2];  
        if ((length % 3) == 2) {  
            result += toBase64Table[((data.charCodeAt(i) & 0x03) << 4) + (data.charCodeAt(i + 1) >> 4)];  
            result += toBase64Table[(data.charCodeAt(i + 1) & 0x0f) << 2];  
            result += base64Pad;  
        } else {  
            result += toBase64Table[(data.charCodeAt(i) & 0x03) << 4];  
            result += base64Pad + base64Pad;  
        }  
    }  
    return result;  
}

   将此js加载在页面最后,比如在wp中可添加到当前主题footer.php中,于</html>前插入即可。

<script type="text/javascript" src="demo.js"></script>

2.目标2

上一步已经将外链base64编码并跳转至hostname/go/base64code,我们需要对其进行解码。

首先,在nginx配置文件中设置,将请求转到hostname/go.php。

vim /etc/nginx/sites-available/default

//在server段内添加下面的配置并保存。
    location ^~ /go/ {
	    try_files $uri /go.php?t=$uri;
	}


//重新加载nginx配置
nginx -s reload

其次,网站根目录新建go.php

cd /usr/share/nginx/html
vim go.php

go.php如下

<?php 
function back(){
    if( isset($_SERVER["HTTP_REFERER"] )) {
            echo "无效地址~5秒之后将跳转回上一页~";
            echo "<meta http-equiv='refresh'content=5;URL='".$_SERVER["HTTP_REFERER"]."'>";
        }else{
            echo "无效地址~5秒之后将跳转首页~";
            echo "<meta http-equiv='refresh'content=5;URL='http://".$_SERVER["HTTP_HOST"]."'>";
        }
}
if(isset($_GET['t'])){
    $url = $_GET['t'];
}else{
    back();
    die;
}
$url = rtrim($url, '/');
$count = 1;
$url = str_replace("/go/", "", $url, $count);
$url_de = base64_decode($url);
if($url == base64_encode($url_de)){
        //添加识别http、https的处理;
        if ( ! preg_match('/(http:\/\/)|(https:\/\/)/i', $url_de)) {
            $url_de = "http://".$url_de;
        }
        header("Location:".$url_de."?from=".$_SERVER["HTTP_HOST"]);
    }else{
        back(); 
    }
?>

至此,两个目标已完成。