上个月发现QQ域名邮箱正式停止接入新增域名和邮箱,这意味着QQ邮箱的域名邮箱产品很快会被抛弃了,用了域名邮箱有快7~8年了吧,中间换过好多次域名,每次换域名都第一时间绑定了域名邮箱,作为网站或者马甲邮箱,以后再也不能愉快的绑定域名邮箱,既然QQ域名邮箱不能再使用,那有没有和域名邮箱类似的好用的服务呢?答案当然是肯定的,经过寻找我发现ImprovMX比较符合我的需求,因为我只想简单的把邮件转发到我的Gmail邮箱,然后Gmail邮箱再绑定个别名邮箱,可以使用域名邮箱发送邮件就可以了。

配置ImprovMX

ImprovMX的使用非常简单,进入官网主页,输入你的域名和邮件,然后会告诉你如何进一步操作。

配置Gmail

Gmail和谷歌账号是配套使用的,如果谷歌账号启用了两步验证,就需要给Gmail验证再生成一个密码单独使用,如果没有启用两步验证,就需要开启“允许安全性较低的应用的访问权限”。

生成专用密码

点击 https://security.google.com/settings/security/apppasswords 链接,进入生成专用密码页面

开启“允许安全性较低的应用的访问权限”

点击 https://myaccount.google.com/security 链接,进入安全性页面,找到“开启访问权限(不建议)”按钮,点击开启

添加帐号

以上操作完成后,就可以进入Gmail的配置页面,点击Gmail页面右上角的小齿轮然后进入设置页面,找到“帐号和导入”-“用这个地址发送邮件:”-“添加其他电子邮件地址”

输入名称和域名邮箱地址,取消“视为别名”勾选框,点击下一步

在“SMTP服务器”填入 smtp.gmail.com , “用户名”填入你的Gmail邮箱地址, 在“密码”填入前面生成的专用密码,如果未启用两步验证,填入Google账号密码,然后点击“添加帐号”,完成添加工作,此时邮箱里面会收到验证码和链接,点击链接完成验证。

前几天有网页长截图的需求,然后就准备找一下Chrome插件,但是看到很多插件都需要读取本地文件和写入文件权限,又有点不放心,无意中又找到了下面这种原生长截图的方案,特地记录下。

要想使用截图功能,你需要首先确保Chrome已升级至59+版本。在想要截图的网页中,首先按下 ⌘Command + ⌥Option + I(Windows 为 F12)快捷键,进入开发者工具界面。

随后,按下 ⌘Command + ⇧Shift + P(Windows 为 Ctrl + Shift + P),输入命令 Capture full size screenshot(只输前几个字母就能找到),敲下回车,Chrome 就会自动截取整个网页内容并保存至本地。

而且除了普通长截图以外,你还可以利用这一功能截取手机版网页长图。只需要按下 ⌘Command + ⇧Shift + M (Windows 为 Ctrl + Shift + M)模拟移动设备,再按刚才的方法运行命令就可以了。在顶部的工具栏中,你可以选择要模拟的设备和分辨率等设置。

如果你想准确截取网页的某一部分,可以按下 ⌘Command + ⇧Shift + C(Windows 为 Ctrl + Shift + C)嗅探元素。选中想要的部分后,再运行 Capture node screenshot 命令,一张完美的选区截图就诞生了。

由于是渲染引擎直接输出,其比普通扩展速度更快,分辨率也更高。

在之前的博文中也说过,我的博客目前是运行在一台树莓派2B上,且已经稳定运行3年,同时使用了bypy进行备份,将树莓派的数据定期备份到百度云盘,这样就算哪天我的树莓派挂了,也能保证数据不丢失。但由于树莓派还承担了下载机的功能,考虑到目前树莓派的TF卡内存只有16G,所以元旦期间趁着之前IPv6也搞定了,就把树莓派做一下整体升级,把TF卡存储升级到64G,考虑到我的折腾劲,就把树莓派上部署的所有服务整体迁移到Docker下,算是对自己学习的Docker知识的一个整理吧。

Raspbian的具体安装过程详见之前的博文,树莓派搭建Typecho小记

1.安装Docker

Docker有两种安装方式,脚本安装和apt安装,一般推荐用脚本安装,非常方便。

sudo curl -sSL https://get.docker.com | sh

这时候,Docker就已经安装成功了,但我们这时候只能使用命令行来操作,我们可以搭配着再安装一个web管理面板,这样后续管理就非常方便了,推荐安装轻量易用的Portainer,主要是内存占用也比较低,符合树莓派的要求。

docker run -d --name portainer --restart always \
-p 9000:9000  \
-v /var/run/docker.sock:/var/run/docker.sock  \
-v portainer_data:/data  \
portainer/portainer:latest

安装完以后,输入树莓派的IP:9000,就进入到Portainer的web管理面板,首次安装后需要设置下用户名和密码,这样以后就可以正常登录使用了。

2.部署typecho

安装完Docker以后,就可以在Docker上部署typecho了,typecho官网没有一个推荐的镜像,需要自己根据博客的配置选择一个合适的镜像,因为我的博客主要使用的是SQLite数据库,所以就需要找一个nginx+php+sqlite的镜像,通过强大的Google终于找到一个可以支持树莓派的且内存占用比较低的镜像codeideal/nginx-php-sqlite,通过大半个月的运行,目前总得来说一切良好。

docker run -d --name typecho --restart always \
-p 80:80 -p 443:443 \
-v /home/pi/Websites:/data/www \
-v /home/pi/Nginx/nginx.conf:/etc/nginx/nginx.conf \
-v typecho_data:/data  \
codeideal/nginx-php-sqlite:latest

上面的路径可以自定义,我把博客的源码放在了/home/pi/Websites目录,把Nginx的配置文件放在了/home/pi/Nginx目录下,你们的这个路径可能和我的不一样,酌情修改哈。

3.部署frp

frp主要是一个内网穿透工具,之前的博文也有解决如何原生的安装frp客户端和服务端,此次把frp客户端安装到Docker内,也是为了简化部署,使用的是Docker Hub上下载量最多的一个镜像snowdreamtech/frpc,对应的服务端是snowdreamtech/frps,实测也是挺好用的。

docker run -d --name frpc --network host --restart=always \
-v /etc/frp/frpc.ini:/etc/frp/frpc.ini \
snowdreamtech/frpc:latest

/etc/frp/frpc.ini 这个路径对应的就是你frp客户端配置的路径,自行修改哈。

4.部署cloudflare-ddns

由于目前已经有了IPv6地址,实测IPv6地址也可以访问,所以把域名也配置了AAAA记录,但有个问题,家庭宽带获取的IPv6地址不是静态的,而是会动态改变的,所以我们需要一个类似于IPv4的DDNS功能,来让动态改变后的IPv6同步到域名AAAA记录中,因为我的域名是托管在cloudflare上,且cloudflare也有一些API,通过强大的Google,我找到一个合适的镜像oznu/cloudflare-ddns:armhf,这个镜像是专门为了arm32适配过的,所以性能方面不成问题。

docker run -d --name ddns --restart=always \
-e API_KEY=xxxxxxx \
-e ZONE=example.com \
-e SUBDOMAIN=subdomain \
-e RRTYPE=AAAA \
-e PROXIED=true \
oznu/cloudflare-ddns:armhf

上面的API_KEY可以在cloudflare后台中找到,如果没有子域名SUBDOMAIN那一行可以省略,PROXIED默认值为false,表示不代理会返回真实的IP地址,建议改为true,这样就能通过cloudflare保护源IP地址。

我家前段时间开通了IPTV,然后联通客服上门给我家更换了光猫,新换的光猫自带拨号功能,导致我家之前通过桥接获取的IPv6地址没了,于是想着自己进光猫的设置里面,倒腾下,毕竟很多年前也是干过网络运维的人。

首先交代下,由于我家之前旧光猫是能获取到IPv6地址的,所以本次设置的前提是当前地区已经开通了IPv6,我设置的光猫是DT741 WO-37,以下所有的设置也是针对该款光猫,其他的光猫没有接触过,不保证配置相同的参数一定可以。

由于之前加了我们这边负责安装和调试的联通小哥微信,所以发微信跟小哥要到了,光猫进入设置页面的方式和登陆密码,超级管理员账号密码都是CUAdmin,地址为http://192.168.1.1/cu.html,注意在IP地址后面是有/cu.html,没有的话,超级管理员账号不一定能登录成功。

登录成功以后,会进入首页,然后选择“基本配置”-“上行线路配置”,切换IP协议版本到“IPv4”,在“连接名称”中找到包含“INTERNET_”的名称,然后选中,此时记录下当前页面的所有参数,当然拍照或者截图是最好的,其中比较重要的是以下几个参数:

启用NAT
端口绑定
VLAN模式
VLAN ID
802.1p

点击“删除”按钮,将“INTERNET_”的连接删掉,此时应该没有可用的“INTERNET”网络了。

完成上面一步以后,需要重新配置回来,此时需要切换IP协议版本到“IPv4/v6”,然后配置与之前IPv4相同的参数,把刚刚说的那几个参数按照原来的样子原封不动的填回去,除此以外有几个其他的参数需要单独更改下:

认证类型:“自动”
全局地址获取方式:“SLAAC”
网关获取方式:“SLAAC”
DNS获取方式:“SLAAC”
前缀获取方式:“DHCPv6”

填好以后大概是下面这个样子:

然后重启下光猫,等个大概5分钟就能自动获取到IPv6了。

先给大家普及下,Axure是一款原型开发的工具,可以把产品需求以草图的形式最快的表达出来。之前在开发岗的时候,习惯了Git和svn的团队协作,从开发转岗过来以后,看到周边的同事都是使用Axure单兵作战,瞬间瑟瑟发抖,毕竟每次都是聊天工具发来发去,还是比较麻烦的,于是本来想着先给大家普及使用Git,在把所有的Git相关的配置好以后,无意中看到了Axure里面大大的Team标签页,才恍然大悟,原来之前大家都不知道有这个功能哇~

通过网上查找资料以后发现,目前Axure只有团队版的License才有这个标签页,一开始我以为我安装的版本问题导致没有Team标签页,折腾了不少时间,后来无意中换了个License就好了,言归正传下面开始配置Axure团队协作。

Axure团队协作有两种方式,一种是官方的Axure Share,还有一种就是我下面说的使用基于svn的方式,个人推荐svn是因为一般公司内都是有一些保密要求,而且svn用起来也已经很方便了,配置团队协作主要是两个步骤,创建者创建团队项目协作者拉取团队项目

1、创建需要协作的svn项目

打开需要创建的项目,然后在Team标签页内点击“Create Team Project from Current File...”,然后选择第二个Tab页“SVN”;

Team Directory:填写svn服务器路径
Team Project Name:填写你的svn项目名称;
Local Directory:本地保存的文件夹;
点击Create即可完成。

2、获取团队项目

第一步已经创建好了团队协作项目,协作者这时候通过获取团队项目,参与协作;

需要注意的是,获取svn项目的时候填写的路径就是**创建的路径+项目名称**,点击Get就可以获取之前创建好的svn项目。

3、签入(Check In)、签出(Check Out)

团队项目需要先签出才能编辑页面,编辑完成后如果不提交会保存在本地,签入或提交更新才能更新到共享文件。如果页面处于签出状态,尽量避免同时编辑同一个页面。

a.编辑页面前先签出,从svn服务器拉出文件,一般此时文件会锁定,其他人无法编辑。

b.编辑好以后,此时文件处于编辑状态,需要签入把当前文件推到svn服务器,只有签入以后,文件才会解锁,其他人可以再次编辑。