软硬件使用

Windows 10 1903更新后RDP远程桌面黑屏卡死问题的临时解决方法

最近发现Win10推送了1903更新,迫不及待的装上后还没来得及体验各种变化就发现了一个令人恼火的bug,用远程桌面RDP连接1903版Win10时会出现黑屏卡死的问题!具体状态是RDP服务器是一台CPU比较旧的电脑(G1610 B75 GPU为核显),更新1903之前没任何问题,更新1903后用另一台1903的Win10自带的RDP客户端连接,第一次可以正常连接,断开再重连就必出现黑屏卡死的问题!(同时测试了Android、iOS、Mac OSX上的微软官方RDP客户端连,不会出现卡死的问题!)。搜索了下发现微软官方已经确认了这个问题: https://docs.microsoft.com/en-us/windows/release-information/status-windows-10-1903#534msgdesc ,而目前的状态还是 Investigating ,没有解决方法。

继续阅读…

Phabricator的arcanist在windows下执行arc feature(branch)异常问题的hack修正方法

首先,发现问题的arcanist版本如下:

arc version
arcanist d92fa96366c0ed50e4257508148aa75192d4fb1f (20 Jun 2019)
libphutil b416093386a225b1d9a2de906899b94cbf4babcb (8 Jul 2019)

错误现象为执行arc featurearc branch时,提示:

[2019-07-20 13:30:05] ERROR 8: Undefined offset: 1 at [D:\phabricator\arcanist\src\repository\api\ArcanistGitAPI.php:1094]
arcanist(head=master, ref.master=d92fa96366c0), phutil(head=master, ref.master=b416093386a2)
  #0 ArcanistGitAPI::getAllBranches() called at [<arcanist>\src\workflow\ArcanistFeatureWorkflow.php:89]
  #1 ArcanistFeatureWorkflow::run() called at [<arcanist>\scripts\arcanist.php:394]
[2019-07-20 13:30:05] ERROR 8: Undefined offset: 2 at [D:\phabricator\arcanist\src\repository\api\ArcanistGitAPI.php:1094]
arcanist(head=master, ref.master=d92fa96366c0), phutil(head=master, ref.master=b416093386a2)
  #0 ArcanistGitAPI::getAllBranches() called at [<arcanist>\src\workflow\ArcanistFeatureWorkflow.php:89]
  #1 ArcanistFeatureWorkflow::run() called at [<arcanist>\scripts\arcanist.php:394]
[2019-07-20 13:30:05] ERROR 8: Undefined offset: 3 at [D:\phabricator\arcanist\src\repository\api\ArcanistGitAPI.php:1094]
arcanist(head=master, ref.master=d92fa96366c0), phutil(head=master, ref.master=b416093386a2)
  #0 ArcanistGitAPI::getAllBranches() called at [<arcanist>\src\workflow\ArcanistFeatureWorkflow.php:89]
  #1 ArcanistFeatureWorkflow::run() called at [<arcanist>\scripts\arcanist.php:394]
[2019-07-20 13:30:05] ERROR 8: Undefined offset: 4 at [D:\phabricator\arcanist\src\repository\api\ArcanistGitAPI.php:1094]
arcanist(head=master, ref.master=d92fa96366c0), phutil(head=master, ref.master=b416093386a2)
  #0 ArcanistGitAPI::getAllBranches() called at [<arcanist>\src\workflow\ArcanistFeatureWorkflow.php:89]
  #1 ArcanistFeatureWorkflow::run() called at [<arcanist>\scripts\arcanist.php:394]
[2019-07-20 13:30:05] ERROR 8: Undefined offset: 5 at [D:\phabricator\arcanist\src\repository\api\ArcanistGitAPI.php:1094]
arcanist(head=master, ref.master=d92fa96366c0), phutil(head=master, ref.master=b416093386a2)
  #0 ArcanistGitAPI::getAllBranches() called at [<arcanist>\src\workflow\ArcanistFeatureWorkflow.php:89]
  #1 ArcanistFeatureWorkflow::run() called at [<arcanist>\scripts\arcanist.php:394]
Usage Exception: No branches in this working copy.
继续阅读…

k2p官改固件的端口转发问题(远程桌面UDP协议开启)

最近把无线路由从y1s换到了k2p,虽然cpu没啥飞跃,反而还没了usb,内存也小了一半,但k2p的无线信号确实是碾压了y1s,据说比newifi3也好些。其实这些年用y1s后总结出的个人对路由器的需求基本就是DDNS动态域名,WOL远程唤醒,端口映射(包括UPNP),再来个某种方式的远程管理路由器(web或者ssh),仔细看看,其实没有什么功能是吃cpu或内存的,真有特别耗资源的应用也不是现在一般水平路由硬件能抗的住的,而且还要平衡功耗,散热等连带问题。

好了,回到正题,这次的问题就是路由换完以后,虽然都是OpenWRT的定制系统(k2p是官改 定制版本: V2.0D 软件版本: 99.8.5.189),但对于我常用的3389远程桌面控制局域网电脑需要的端口映射还是发现了点问题:

继续阅读…

CentOS 7通过yum安装GDB 8的方法

最近又在研究远程C/C++项目的linux远程编译调试方法,之前写过一个VS结合VisualGDB搭建OpenWrt交叉编译远程调试开发环境,虽然最终目标平台是OpenWrt,但也算是远程linux编译调试,不过VisualGDB是VS的插件,而且现在新版VS(我看的是2017)已经开始自带支持linux开发了,通过cmake创建编译配置,并且允许在远程linux系统上编译调试:
https://docs.microsoft.com/en-us/cpp/linux/connect-to-your-remote-linux-computer?view=vs-2017,虽然看起来比VisualGDB还差太远…不过,这次的重点并不是VS,因为VS只支持windows(我知道有Mac版了,但是呵呵,那并不是我认识的VS),而对Win和Mac作为远程linux开发host都可以支持的IDE还是有的,那就是JetBrains系的CLion!

然而,不幸的是,在我的CentOS 7 slave虚拟机里,发现CLion需求的remote debug用的GDB版本( 7.8.x-8.2.x )并不能满足(7默认yum装的是7.6),那么问题就变成给CentOS 7装个新版本的GDB了…

继续阅读…

PyCharm (JetBrains系IDE)运行配置中环境变量的附加修改问题

今天在研究python liblas时,发现使用的IDE PyCharm的一个小功能缺陷:在项目运行配置中的环境变量里无法以追加的方式修改当前环境变量的值,而且又看了下IDEA,相关功能的UI都是一样的,所以应该是JetBrains系的IDE都有同样的问题。
首先,windows下使用python liblas时,除了pip装liblas包以外,还要有相关的原生库,否则import的时候会直接报错。好在win下可以直接通过OSGeo4W安装预编译好的liblas库( https://trac.osgeo.org/osgeo4w/ ),装好后会有专用的命令行环境快捷方式,看了下和Visual Studio的Developer Command Line Prompt一样,会在这个专用命令行环境里设置一堆环境变量,这时直接运行python项目依然会报错,查了下原来是在加载liblas原生库时寻找Path环境变量里的路径找不到出的错,而专用命令行已经把OSGeo4W的bin加进去了…

继续阅读…

DNSPod API升级TLS 1.2导致ArDNSPod脚本失效问题

博主我常年在路由器的OpenWRT系统上以crontab方式跑ArDNSPod:https://github.com/anrip/ArDNSPodl来实现DNSPod上解析域名的DDNS功能,但是今天突然发现在出口IP变化以后,DDNS域名没有像往常一样正常更新(以往反应都是很快的),检查了下也不是以前出现的又被ISP变回内网IP导致的,于是ssh登上路由器的局域网IP,手动执行了下crontab里sh的命令,发现提示这个:

root@xCloud:/opt/usr/ardnspod/ddnspod.sh
Linux
Updating Domain: xxxx.k-res.net
hostIP: xxx.xx.xxx.xxx
Get Record Info Failed!

继续阅读…

隐藏http返回消息头中的Apache及PHP信息

搬家之后注意到的一个小细节,之前用lighttpd时没太在意这个细节,今天发现了博客http返回头里有些不必要的信息,比如:

Server: Apache 2.4.XXX OpenSSL XXX
X-Powered-By: PHP/X.X.XX

顺手查了下隐藏掉的方法:

首先是Apache的,修改配置文件 /etc/httpd/conf/httpd.conf,加入

ServerTokens Prod
ServerSignature Off

重启httpd服务即可,接下来是PHP,修改配置文件/etc/php.ini,找到
继续阅读…

CentOS 7下自编译、打包RPM最新版Apache2 (httpd 2.4.37) 并开启HTTP/2

之前一直没什么时间研究新东西,博客上写的也都是些没啥滋味的东西,今天记录的这个应该能算是有些滋味的吧,不过,在正文之前,先写点铺垫,为啥现在研究起http 2.0了?这个h2吧,其实很早以前就听说过,各种好吧就是,但之前一直都有一种还很理论还很遥远的感觉,直到最近研究Google GRPC的Web实现gRPC-Web(有兴趣的话,传送门在这里:https://grpc.io/docs/quickstart/web.html)时,发现其中用到了一个叫envoy的转发代理服务器(https://www.envoyproxy.io/)来实现gRPC传输层需要的h2协议,突然感觉h2要开始普及了,查了下资料,发现h2的server push设计很有吸引力(其间还找到个这个网站:https://http2.akamai.com/demo,直观的演示了http 1.1和2.0的差距),于是乎萌生了测试下h2用在普通网站服务器的想法。

一开始还觉得现在是不是主流Web服务器都支持http2了,一查发现本博用的lighttpd还没有加入http2的支持,而apache和nginx已经有稳定支持版本了,又搜索了下网上的评论,发现还是Apache跟的比较紧,所以就从老朋友Apache入手尝鲜吧。

我的测试环境是装在虚拟机里的CentOS Linux release 7.5.1804 (Core),直接yum安装httpd的话是2.4.6-80.el7.centos.1 这个版本,而Apache是从 2.4.17 才开始支持mod_http2正式支持h2的,残念之后习惯性的找各种第三方rpm源,看是否有能直接撞的2.4.17以上版本,结果发现虽然是有,但是很少,而且也不是特别新的版本(另外这里https://www.mf8.biz/apache-httpd-%E5%BC%80%E5%90%AF-https-%E5%92%8C-http2/也提到”截止发文切仍受支持的 RHEL、CentOS 5、6、7 均不提供 Apache Httpd(apache2) ≥ 2.4.17 和 OpenSSL ≥ 1.0.2 的支持,也没有提供支持的第三放软件源支持。”),于是就想不行就自己直接拿源码装吧。其实,如果只是拿源码装的话应该是挺简单的,要啥编啥就得了,不过我这还有个需求就是想把编译好的新版apache方便的装到远端VPS上测试,当然VPS也是CentOS的,所以就变成了不止要自编译还要打包RPM了…

继续阅读…

使用Token2Shell连接亚马逊AWS Lightsail的SSH(默认key pairs密钥对)

最近Amazon AWS的Lightsail最低配从$5降到了$3.5,于是注册了个账号来体验下(远离EC2,搞不好房子就给亚马逊了,哈哈),发现世界前3的云服务提供商就是不一样,开了实例后发现SSH默认都是高大上的密钥验证方式,这让我这只会用户名密码登陆的土鳖着实懵逼了一下,好在有Web版的console,也能把需要的服务顺利搭起来,不过不能粘贴实在是不爽,于是还是决定研究下密钥验证的SSH登陆。
观察后发现,默认情况下亚马逊会给你的Lightsail实例所在区域自动创建一个密钥对,而提供给你直接下载的只是私钥private key (https://lightsail.aws.amazon.com/ls/webapp/account/keys):

先Download下来,然后发现我惯用的Windows SSH客户端Token2Shell对密钥验证的设置很“隐晦”,看了半天文档才意识到要将公私钥以指定的规则放到指定的位置(默认C:\Users\XXX\Documents\Token2Shell\ssh\keys,私钥叫LightsailDefaultPrivateKey-ap-northeast-1,公钥就得叫LightsailDefaultPrivateKey-ap-northeast-1.pub,见此:https://choung.net/howto/token2shell/public-key-user-auth/),那么亚马逊的默认公钥在哪了呢?
继续阅读…

畅言了一段时间后,又把评论系统换成Disqus了,记录下

之前多说倒掉之后,换了畅言作为本博的社交评论系统,用了一段时间后发现也不是很好用,不如之前曾经测试过的Disqus,于是又动起了换成Disqus的念头。正常情况下Disqus直接通过官方wordpress插件安装并设置就可以了,但是由于众所周知的问题,Disqus在中国大陆是访问不了的,不过很幸运,在网上找到了这个:
wordpress使用Disqus – https://www.ggbond.cc/index.php/wordpress%E8%A3%85disqus%E6%8F%92%E4%BB%B6%E6%8A%A5the-plugin-was-unable-to-generate-a-secret-key-for-your-site/

其中提到的API代理项目是: fooleap/disqus-php-api – https://github.com/fooleap/disqus-php-api

按照上面的参考文章的操作说明即可实现Disqus的“完美”接入。不过这里额外记录下修改模板时的问题:
继续阅读…