SSH 隧道、端口转发与内网穿透

这篇文章 讲得比较详尽了,除了动态转发没讲。最主要的就是在远程转发的时候注意服务端 /etc/ssh/sshd_configGatewayPorts 选项不要为 no(默认是 no),这个网上好多博客都没有讲到。有空再来补充一些细节。

相比于网上其他人用 autossh 等一些工具来维持连接,我选择了 Docker 作为一个进程守护的角色,配合 --restart=always 使用,感觉既优雅又简洁。为此我写了一个 image abreto/ssh-tunnel.

不越狱导出 iOS 壁纸或锁屏图案

许多年后,我早已找不到当时设置 iPhone 壁纸和锁屏的原始图片了,但是既然这图像还显示为背景和锁屏图案,那么就一定在某个地方躺着。

首先使用 iTunes 将手机完整备份到电脑里,然后下载这个软件读取备份。不用购买,免费版够用了。

选取最新的备份(必要的话需要输入备份密码),点击右边的 Expert Mode,(等待一会儿,非常慢)进入 HOME/Library/Springboard 这个文件夹,你可以看到 HomeBackground.cpbitmapLockBackground.cpbitmap 这两个文件,这就是主屏幕壁纸和锁屏背景的图像了,导出他们。

可以用这个脚本.cpbitmap 转换为 PNG 格式的图片,经测试这个脚本可以成功转换 iOS 12 备份导出的 .cpbitmap 文件。应该也有在线转换的网站,你可以自己搜搜。

ubuntu 18.04 下 wine 中文无法正常显示的解决方案

这里无法正常显示有两个可能,一个是乱码(奇奇怪怪的样子),一个是显示为一个一个的方框.前者是编码问题,后者是字体问题.

捣鼓了一天终于可以正常显示中文了,进行的操作有点多,我也不知道具体是哪一步弄好的. 有些时候中文还是有些丑,不过至少能看了,以后再来解决美观的问题.

继续阅读“ubuntu 18.04 下 wine 中文无法正常显示的解决方案”

Linux命令行编辑按键

在使用shell时,可以使用左右箭头来编辑命令行,并且通过上下箭头来查看之前的命令。这是Linux系统的标准操作。
但使用ctrl键来代替箭头键会更加方便。

  • CTRL-B, 左移光标
  • CTRL-F, 右移光标
  • CTRL-P, 查看上一条命令(或上移光标)
  • CTRL-N, 查看下一条命令(或下移光标)
  • CTRL-A, 移动光标至行首
  • CTRL-E, 移动光标至行尾
  • CTRL-W, 删除前一个词
  • CTRL-U, 删除从光标至行首的内容
  • CTRL-K, 删除从光标至行尾的内容
  • CTRL-Y, 粘贴已删除的文本

Nginx配置反向代理404

今天用Nginx配置到Node.js和Hexo的反向代理,发现除了 / 可以访问,其他都404,我很纳闷啊。
搜遍各种资料都无用。
后来发现是我配置文件里多了一句
try_files uri uri/ =404;
蛋疼,浪费我一晚上。终于可以睡了。

Ubuntu 16.04 无线模块不能加载

升级ubuntu 16.04 LTS后,无线突然不能用了。
运行

$ sudo lshw -C network

后发现无线网卡是unclaim(ed)
我以为是驱动问题,寻求各大偏方,安了无数次驱动,均不能解。
后发现在insmod的时候,总出现

insmod: ERROR: could not insert module wl.ko: Required key not available-

于网搜之,高人指点,

这样的话,问题就很可能出在bios里面的secure boot了。你到bios里面去找到一个secure boot的东西,把它disable掉。

至此,遂解,wl模块能正确加载了,无线也可以用了。

但我还是不知道怎么回事,知道的麻烦告诉我一声。

懒人可以这样快速安装LaTeX+中文环境

这个寒假欲将四本生物教材浓缩为“坑教版”,开始在学校时在手机上用 WPS 写,放假回家后觉得效果不好,LibreOffice 也不咋样。突然想起《算法导论》前言中说该书是用 LaTeX 排版的,于是入了 TeX 坑..
但是我时间紧,又懒,捣鼓了一下午,总结出一个很快速就可以搭建 LaTeX + 中文环境的办法。大概像这样(对于Ubuntu),顺便传送门学习TeX的参考资料.
在终端运行

$ sudo apt-get install texlive
$ sudo apt-get install texlive-lang-chinese

好了,“大”功告成了.
新建一个hello.tex,输入

documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{gbsn}
您好,我是\LaTeX,我支持中文了!
$$\sum_{p\rm\;prime}f(p) = \int_{t>1}f(t)d\pi(t).$$
\end{CJK}
\end{document}

运行latex(生成.dvi文件)或pdflatex(生成.pdf文件)编译一下看看效果

$ latex hello.tex
$ pdflatex hello.tex

恩,他的样子应该是这样的:

hello
hello

如果你想有个编辑器的话,可以

$ sudo apt-get install texmaker

或者

$ sudo apt-get install texstudio

好了, 开始你的LaTeX之旅吧。

Ubuntu安装MCrypt包后php仍提示缺少mcrypt扩展的解决方案

使用以下命令安装php的mcrypt扩展后,

$ sudo apt-get install php5-mcrypt

高兴地使用了mcrypt_*函数,结果php告诉我:

PHP Fatal error:  Call to undefined function mcrypt_encrypt() in .../encrypt.php on line 26

让我很是郁闷,明明装了mcrypt扩展。
我在/etc/php5/mods-available目录下看到了mcrypt.ini,无意中进了/etc/php5/apache2/conf.d目录,看到了很多”05-“、”10-“等开头的文件,后面跟的好象是模块名,但是没有mcrypt.ini,于是我照着这些文件名创建了一个到/etc/php5/mods-available/mcrypt.ini的软链接:

 cd /etc/php5/apache2/conf.d   sudo ln -s ../../mods-available/mcrypt.ini ./20-mcrypt.ini

再重启Apache

$ sudo /etc/init.d/apache2 restart

回去一看,问题没有了。

Linux下使用ssh代理

阅读本文需要一些前提知识,比如了解什么是linux以及什么是ssh什么是代理,但这些不在本文讨论范围之内。

在终端{Terminal}中运行

$ ssh -qTfNn -D 7070 user@domain

其中7070是端口号

然后在你的浏览器里设置socks5代理,具体设置方法请参考你所用浏览器的帮助文档或谷歌之。
主机{Host}就是本地(localhost或者127.0.0.1),端口{Port}填你在上面命令里写的端口。