Categories

Calendar

July 2017
M T W T F S S
« Jun    
 12
3456789
10111213141516
17181920212223
24252627282930
31  

SSH tunnel tips

从我两三年前接触 SSH 的时候我就在文档上见过 SSH tunnel 相关的东西,然而当时没有怎么看明白,也就一直没有深究,直到最近需求越来越多了,才终于发现这个东西原来这么有用,于是记录在此。

SSH tunnel 主要有三种,一种是 dynamic application-level port forwarding ,可以用来作为 SOCKS proxy ,通常翻墙就是用的这种端口映射;一种是 Local Forwarding ,主要用于提供常规的加密隧道,例如让 IMAP 协议通过这个加密隧道,避免密码在网络上被人监听到;一种是 Remote Forwarding ,可以用于逆向穿透 NAT 。其实,另外还有一种专门为 X 打造的 X11 Forwarding ,一般不会用到,Linux 下远程登录通常不会需要开启 X 程序,或者有其他更好用的方法,因此我们这里并不打算介绍这个。

Symlink with Directories

Linux 下的软链接 (英文通常称作 symbolic link, soft link 或者是 symlink) 是非常实用的东西,我想任何经常在 Linux 做事情的人都会时不时地会用到这个东西。相比起硬链接来说,它要更加灵活一些,限制也更少,而相对于 Windows 下的那种“快捷方式”来说,它又更加底层一些,处在文件系统层面,很多操作(例如打开文件 open )都会自动 follow 链接到指定的文件,因此它对大部分应用程序可以说是完全透明的。虽然如此,也有一些特殊的地方对于把 symlink 当作“自己本身”来处理还是当作“它所指向的源文件”来处理却并没有一个定论的。

让 Linux 下的 FTP 服务器支持 GBK 编码

在 Linux 中使用 UTF-8 作为 locale 已经成为理所当然的事,而 Linux 下的许多 FTP server 并不会处理文件名的编码,因此 UTF-8 的 locale 使得 FTP 服务里的文件名编码也是 UTF-8 的,原本都使用 UTF-8 是一个很好的解决方案,也是一个大趋势,然而 Windows 下有许多程序却只支持 GBK 这一系列的编码,或者是根本没有考虑编码的问题,因此也只能处理 Windows 默认的 GBK 编码了。所以在 Linux 下架设的 FTP 服务器让使用 Windows 的朋友来访问的话,中文可能会出现乱码,就显得不太友好了。为此也有不少解决方案,其中包括针对 vsftpd 的补丁,可以进行编码转换。然而这个补丁对于现在的 vsftpd 的版本来说有点老了,而且在 64 位的系统下面的错误:

Poor Man’s Picasaweb Photo Uploading Script

虽然不太常用网络相册,但是有时候也会把照片传到 Picasaweb 上作为一个备份。如果安装了 Picasa 的话可以很方便地上传,另外,也有为 IE 做的 ActiveX 控件可以方便地批量上传照片。但是 Linux 下地 Picasa 据说是用 wine 模拟的,不想用,而浏览器也没有 ActiveX 可以用,手工一个一个地上传颇有一些麻烦。后来发现 Google 其实提供了它的各种服务的 API 的 Python binding 可以比较方便地使用,这样就可以弄一个脚本来上传了。

Linux 下 Thinkpad 多媒体键 OSD

Thinkpad 的键盘上有一些特殊地按键如音量控制等,在 Linux 下可以通过 tpb 这个工具利用起来,tpb 可以识别这些按键并执行一系列地操作,例如调用某个脚本或者用 xosd 在屏幕上显示(音量、亮度等)一个状态。不过我新装的这个 Arch Linux 的 tpb 在 Thinkpad X200 下工作不太正常,于是用了另一个办法来解决,使用很浮云地 notify-osd 加上自制的脚本来实现相同的目的。

以下是废话:
最近频繁地背着笔记本往来于 ZJG 和 YQ 两个校区,原来那个 Thinkpad R60e 不仅非常重,而且散热量非常大,看到毕业结算的时候学校退了一些学费,于是加上自己攒的一些钱买了一个 Thinkpad X200 ,顿时感觉好轻呀!

Gracefully Shutdown in openbox

懒散了很长一段时间,一直持续本本 Windows XP 实验室 Ubuntu 的状态,最近终于借“毕业了要喜庆一下”的理由又给本本装了一个 Linux 。虽然仍旧很懒散,但是毕竟是自己的本本,还是喜欢清爽一点,因此用了 openbox 作为窗口管理器,tint2 作为任务栏,用了一周左右挺舒服的。

不过有一个小问题,就是我希望从 openbox 中 shutdown 、restart 的时候能像在 Gnome 或者 KDE 的 session 中那样“优雅”地退出,然后 login manager 也退出,然后屏幕上显示正在关闭的服务,而不是要暴力地直接运行 sudo shutdown -r now 然后屏幕直接黑掉,需要看指示灯才能知道什么时候机器真正关掉了。另外,在 Gnome 或者 KDE 中从对应的 GDM/KDM 中登录进来的话,关机是不需要 sudo 权限的。