如何批量删除twitter的喜欢

用chrome打开twitte的喜欢页面,F12打开控制台,在Console中执行以下脚本即可。

setInterval(
    function() {
        t = $( 'button.ProfileTweet-action--unfavorite' ); // get unfavourite buttons
        for ( i = 0; true; i++ ) { // count
            if ( i >= t.length ) { // if items remain to unfavourite
                window.scrollTo( 0, $( document ).height() ); // scroll to bottom of page - loads more
                return
            }
           $( t[i] ).trigger( 'click' ).remove(); // click and remove button from dom
        }
    }, 2000
)

mysql支持中文的配置说明

修改/etc/mysql/my.cnf,增加下列几行

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

登录mysql时出现如下错误:

mysql: Character set 'uft8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
mysql: Character set 'uft8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file
ERROR 2019 (HY000): Can't initialize character set uft8 (path: /usr/share/mysql/charsets/)

查阅了很多资料都未能解决,问题恰恰出现在这里,后面指定的utf8改为大写。修改如下解决问题。

[mysqld]
character-set-server=UTF8

[client]
default-character-set=UTF8

[mysql]
default-character-set=UTF8

翻墙故障都是ipv6的锅

最近发现twitter中的图片和视频载入非常慢,经过排查发现twitter的图片和视频服务器是通过ipv6的地址连接的。而我路由上开启了ipv6,但是ss服务器却不能代理ipv6的流量。

看样子,网络长城已经可以阻断ipv6的流量,所以只能在路由上关闭ipv6。让所有连接都通过ipv4进行连接。

如果你想代理ipv6的流量,需要您的ss服务器也支持ipv6。

在openwrt上使用gfwlist模式

以往使用的路由翻墙模式是chnroute模式,简单来讲就是ip不在中国的全部使用代理,优点就在于方便,缺点也很明显,有些站点虽然在境外但是并没有被墙,这种情况是不应该再用代理的。

这一次改用gfwlist模式,也就是通常所说的黑名单模式。路由本身已经装好chinadns,ss,和dns-forwarder三件套,这个模式下我们可以停用chinadns了。

首先:安装dnsmasq-full,卸载dnsmasq。不要弄错顺序,不然处理起来很麻烦。(这一步是因为dnsmasq-full支持ipset)

第二步:wan口设置页面,设置dns服务器为127.0.0.1或者留空。(路由器本身提供dns服务)

第三步: DHCP/DNS设置页面:DNS转发填写能够正常访问的公共DNS。忽略解析文件不能勾选,并填写解析文件:/tmp/resolv.conf.auto (使用dnsmasq-full提供dns服务)

第四步 : 防火墙设置页面:自定义规则 (后方的端口为ss的本地端口)

ipset -N gfwlist iphash
iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 8668
iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 8668 

第五步:SSH登录路由器,在etc目录下建立dnsmasq.d文件夹,并上传gfwlist文件。格式如下所示,您可以自行添加。

server=/twimg.com/127.0.0.1#5353
ipset=/twimg.com/gfwlist

第七步:打开etc目录下的dnsmasq.conf文件,添加如下内容,指向您添加的文件夹

conf-dir=/etc/dnsmasq.d

第八步:ss访问控制设置页面:被忽略ip列表我们选择为留空,此时ss会全局代理。接下来我们要给额外忽略ip中添加两个地址 0.0.0.0/1 和 128.0.0.0/1,这样做之后,ss才会只对gfwlist中的域名代理。

第九步:我们在第五步的代码中可以看到对于gfwlist中的域名我们通过5353端口进行解析。这里我们要用到dns-forwarder,打开大的设置界面,把监听端口改为5353即可。

第十步:以上工作全部完成后,我们重启路由,通过这个网址测试是否成功。

重撸GCP遇到的一些问题解答

首先:重撸GCP是可以的,本人亲自证实,方法也很简单,添加一个新的结算管理员并删除原有的结算管理员即可。当然我也遇到了支付问题,只需要按要求提交证明材料即可。以上操作请使用浏览器的无痕模式,避免缓存的影响。

第二:bbr并不是默认开启的,我用的是centos7,虽然bbr是google的技术,但不代表GCP会默认开启,仍然需要自行升级内核,开启bbr。

第三:获得静态ip后先测试一下是否能ping通,还要用tcping工具测试一下开放的端口能否ping通,我就遇到了一个ip能够ping通,但是端口几乎全部被封的情况。结果浪费了很多时间在防火墙设置上。

第四:服务器的选择,首选香港服务器,以前的台湾服务器ping值在150ms左右基本上和美国没什么区别,香港的ping值在50ms左右,明显优于台湾服务器。

经常下电影的小朋友注意了,视频知识普及

1、CAM(枪版)

CAM通常是用数码摄像机从电影院盗录。有时会使用小三角架,但大多数时候不可能使用,所以摄像机会抖动。因此我们看到画面通常偏暗人物常常会失真,下方的 字幕时常会出现倾斜。 由于声音是从摄像机自带的话筒录制,所以经常会录到观众的笑声等声音。因为这些因素,图象和声音质量通常都很差。

2、TS(准枪版)

TS是TELESYNC的缩写。TS与CAM版的标准是相同的。但它使用的是外置音源(一般是影院座椅上为听力不好的人设的耳机孔)这个音源不能保证是好的音源,因为受到很多背景噪音的干扰。TS是在空的影院或是用专业摄像机在投影室录制,所以图象质量可能比CAM好。但画面的起伏很大。论坛上常出现的有一般TS版和经过修复清晰TS版。

3、TC(胶片版)

TC是TELECINE的缩写。TC使用电视电影机从胶片直接数字拷贝。画面质量还不错,但亮度不足,有些昏暗。很多时候制作TC使用的音源来自TS,因此音质很差,但画面质量远好过TS。如果不是太讲究的话TC版还是不错的选择。

继续阅读经常下电影的小朋友注意了,视频知识普及

关于ssl的申请和配置

我在这篇文章中大概写了获得免费ssl认证的方式,只是照本宣科,毫无意义,而且其本身在不断升级完善,固定的获取方式会导致该方法不能保证长期有效,所以我们需要更详细的了解其运作方式。

我们这次在FREESSL.CN这个网站申请免费的ssl认证。具体的申请流程略去,我们只谈配置相关的内容。

在这里申请之后会要求我们验证对该域名的所有权,并获得两个文件,full_chain.pem,private.key,一个是证书,也就是公钥,另外一个是私钥文件,我们把这连个文件传到服务器上,接下来就是对服务器配置文件的修改。

listen 443 ssl;
		server_name 您的域名;

		ssl on;
		ssl_certificate 路径/full_chain.pem;
		ssl_certificate_key 路径/private.key;
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
		ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
		ssl_prefer_server_ciphers on;
		ssl_session_cache shared:SSL:10m;
		ssl_session_timeout 30m;

以上是nginx服务器的配置文件中server字段的配置内容,其中

ssl_protocols 限制ssl的连接版本,

ssl_ciphers 定义算法

ssl_prefer_server_ciphers 开启优先采用服务器算法

ssl_session 分别是开启ssl缓存和过期时间,用来减少服务器负担。

配置完成或者每次更新證書之後都需要重啓服務器。

最后免费的ssl认证只能认证域名的所有权,保证数据的传输安全。对企业来说是远远不够的,只推荐非商业的小型网站使用。

关于openwrt的升级

openwrt更新到了18.06.2,虽然是小版本的更新,鉴于最近路由翻墙不是很稳定,决定升级。

官网下载升级包,sysupgrade.tar,在路由的备份升级界面直接升级即可。

需要注意的是,升级之后自行安装的应用将全部被覆盖,只能保留配置文件。所以如果你为了翻墙对基础设置进行了修改,升级之后有无法上网的风险,需要逐项检查。

首先:WAN口设置,把自定义的dns服务器设置成国内的公共DNS。
接着:DHCP/DNS,把DNS转发清空,把忽略解析文件的勾去掉。

连上网络之后,在软件包页面更新软件列表,更新完毕之后,搜索luci-i18n-base-zh-cn安装进行汉化。

然后就是翻墙三件套的安装,分别是ss,dns-forwarder,chinadns,下载地址
需要下载ipk文件并上传到路由器手动安装。
这里需要注意的是:路由器传输文件需要使用scp协议。而xftp不支持scp协议。我们选择WINSCP这个软件。

另外vps有些高阶端口会被封,所以再能够ping通的情况下可以先修改一下端口试试。

关于软件包的升级

执行以下命令可批量升级软件包

opkg update
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade

wordpress迁移记录

换了新的vps,重新搭建wordpress,把过程简单记录一下。

网站由backwpup备份,最重要的是其中的数据库文件和上传目录文件,其他都无关紧要。

数据库文件由phpmyadmin的导入功能上传,上传目录文件有tftp工具上传覆盖。

如果发现部分页面404,是nginx伪静态未配置。在server字段中添加如下代码即可。

location / 
         {
             if (-f $request_filename/index.html)
             {
                   rewrite (.) $1/index.html break;            
             }            
             if (-f $request_filename/index.php)            
            {  
                 rewrite (.) $1/index.php;
             }
             if (!-f $request_filename)
             {
                   rewrite (.*) /index.php;
             }
         }

或者更简单的

location /
 {
 try_files $uri $uri/ /index.php?q=$uri&$args;
 }

openwrt一些升级说明

关于dnsmasq

openwrt的默认dnsmasq并不支持ipset,需要安装dnsmasq-full版本。ipset是为了支持对域名的转发代理,而chinadns是对ip进行转发代理。所以如果你选择域名匹配翻墙需要安装dnsmasq-full版本。

这里就有了一个问题,当卸载dnsmasq之后,无法解析域名,也就无法安装dnsmasq-full了。这里需要卸载和安装同步进行以避免此类问题。代码如下:

opkg remove dnsmasq && opkg install dnsmasq-full

关于chinadns

chinadns的原理很简单,可设置两个dns,一个是国内的dns,一个是国外的可信dns。当接到解析任务的时候,会同时向两个dns发送解析请求。

首先国外的可信dns拥有优先权,如果国外dns先返回结果就采用,如果是国内ip,直接访问,如果是国外ip则通过代理访问。

如果国内dns先返回结果,如果是国内的ip则直接访问。如果是国外的ip则抛弃掉,采用国外dns的结果。

看到这里,大家可能都和我有一样的疑问,如果国内dns率先返回的是假的国内ip,这样不就解析失败了。

但是实际情况很有趣,国外被污染的域名返回的仍然是国外ip,至于原因,也许只有他们自己知道了。所以这一点暂时没有担心的必要。

其实chinadns主要思想的是提高访问速度,如果你把所有的解析任务交给国外的dns,那么对于国内网站来说,你访问的不一定是最快,最合适的服务器。而且经过代理访问dns必然大大的加大解析时间。不管如何chinadns仍然是目前最优的dns优化选择。

以下代码用来更新chinadns的中国路由信息。

 wget -O- 'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest' | awk -F\| '/CN\|ipv4/ { printf("%s/%d\n", $4, 32-log($5)/log(2)) }' > /etc/chinadns_chnroute.txt