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 中文无法正常显示的解决方案”

受限 sftp 用户无法连接的问题

由于业务需要,我按照 这篇文章 的提示设置了一个无 shell 权限的用户,但是却连接不上。

启用 -v 选项后有如下输出

debug1: Authentication succeeded (password).
Authenticated to xx.xx.xx.xx ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
Connection to xx.xx.xx.xx closed by remote host.
Transferred: sent 2444, received 1804 bytes, in 0.0 seconds
Bytes per second: sent 13890079.9, received 10252743.1
debug1: Exit status -1
Couldn’t read packet: Connection reset by peer

很苦恼,谷歌了很久后终于发现了两篇文章:https://unix.stackexchange.com/questions/274995/sftp-ssh-couldnt-read-packet-connection-reset-by-peerhttps://ubuntuforums.org/showthread.php?t=1482005

主要意思是说,在 /etc/ssh/sshd_config 里设置的 ChrootDirectory 的所有者必须是 root,而且该目录的组和其他用户不能有写权限。

ZOJ 3806 – Incircle and Circumcircle 解题报告

这是我写的第一篇解题报告,在此有必要说明一下为什么决定写这一篇解题报告。

这道题是我在集训队 Div.2 训练赛中第一次做出的一道全场只有唯一一个人过的题,也是我过的第一道防 ak 题。就想写个解题报告纪念一下。题目很简单,希望大佬们不要嘲笑我。

题意是这样的,给出三角形的内切圆半径 r 和外接圆半径 R,判断是否存在可能的三角形三边长并输出。

这题能过也有运气成分,主要是在思考的时候突然想到了用角度来算边。

继续阅读“ZOJ 3806 – Incircle and Circumcircle 解题报告”

Linux命令行编辑按键

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

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