想通过ssh隧道连接远端机器的VNC服务,对ssh -L命令不太熟悉,man ssh后发现3组与隧道(turnnel)相关的参数:ssh -Dssh -Lssh -R,一下子就搞糊涂了,所有下决心仔细研究一番。

何谓SSH隧道

隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。

SSH隧道的类型

ssh隧道有3种类型:

  1. 动态端口转发(Socks 代理)
  2. 本地端口转发
  3. 远端端口转发
继续阅读 →

在一台DELL R310的宿主机上安装了Ubuntu Server 12.10默认集成KVM虚拟机,用户态虚拟机软件qemu-kvm使用seabios的作为bios实现(位于 /usr/share/qemu-kvm/bios.bin,来自于qemu-common 1.2.0+noroms-0ubuntu2),该bios.bin仅包含部分来自宿主机的SLIC信息,但不完整,无法通过Window OEM验证。

本文将介绍安装KVM虚拟机,借助virt-install安装Windows客户机,去除bios.bin里内置的SLIC,然后使用-acpitable参数载入正确的SLIc 2.1信息,导入OEM证书和OEM key激活Windows。

由于Ubuntu Server没有安装图形环境,DELL R310服务器也是不带显示器的,所有windows的安装过程是通过本来的Macbook Air的VNC客户端操作的。

继续阅读 →

安装的时候把ubuntu server的默认语言设置成了中文,由于默认没有安装中文字体,控制台一片乱码。所有要么安装字体sudo apt-get install language-pack-zh,要么把语言环境设置成英文。

网上大部分文章都提到修改/etc/environment文件,但是打开/etc/environment文件,默认是空的,说明这种方法虽然可以达到效果,但不是最完美的。更好的方式如下:

$ sudo update-locale LANG=en_US.UTF-8
$ sudo update-locale LANGUAGE=en_US.en

然后重启系统即可。

继续阅读 →

系统管理员或者web开发者,偶尔需要刷新一下DNS,由于DNS存在本地缓存,如果不主动清除,那需要一段漫长的等待

Mac OS

OS X Lion (10.7) and OS X Mountain Lion (10.8)

$ sudo killall -HUP mDNSResponder

Mac OS X 10.5, Mac OS X 10.6

$ dscacheutil -flushcache

Mac OS X 10.4 Tiger

$ lookupd -flushcache

Windows

Vista/Win7 以上系统

查看DNS缓存

> ipconfig /displaydns

清除DNS缓存

> ipconfig /flushdns 

Winxp和之前的老系统

> net stop dnscache
> net start dnscache

Linux

$ sudo /etc/init.d/nscd restart

参考文献

  1. How to Flush DNS Cache in Mac OS X
  2. Vista/Win7以上系统查看和清除本地DNS缓存新方法
  3. How to flush DNS cache in Linux / Windows / Mac

由于License的问题,OS X将GNU Grep替换成了FreeBSD Grep,这两个版本的grep大部分都兼容,FreeBSD Grep唯独少了-P(–per-regex)选项,缺少了对Perl正则表达式的支持。

可以通过使用homebrew自己安装GNU Grep以兼容包含-P参数的bash脚本。

$ brew tap homebrew/dupes/
$ brew install homebrew/dupes/grep

记得在PATH里确保/usr/local/bin在/usr/bin前面,并重启终端。

继续阅读 →

HTML5终端模拟器/SSH客户端Gate One发布了v1.1版。主要新特性包括:安全增强,性能改进,移动浏览器支持,改进终端模拟,系统日志信息的自动语法高亮,捕捉以及以图像形式展示PDF,Python 3支持,IE10支持,等等。官方DEMO演示显示你可以在浏览器上尝试vim,玩终端游戏,在lynx中冲浪,等等。

官方给出了RPM,DEB安装包唯独没有mac下的安装包,由于该项目太新,也就不指望homebrew安装了,只能选择从源码安装。

继续阅读 →

局域网内可以通过NetBIOS协议将IP地址转换为windows机器的主机名

Windows

nbtstat -a [ip]

Linux

 nmblookup -A [ip] ###Mac OS

smbutil status [ip]

Jackson数据绑定可以很方便的将java的对象类型和json数据格式之间进行转换。对于有多个子类型的多态集成结构的对象,Jackson在序列化的时候加入一些类型信息,可以在反序列化的时候准确的还原某个类型的子类。

想要把JSON数据准确的反序列化为正确的子类型,简单的方法就是在数据中存储数据的类型。但是Jackson序列化时默认不会将对象的类型信息保存到Json数据中。有两种方式开始使Jackson序列化类型信息

继续阅读 →

遇到两个shell的概念:交互式登录shell交互式非登录shell。要理解上面两个术语,先要理清两个概念登录shell交互shell

继续阅读 →

Debian系统xen安装centos 6.3失败,报错找不到/dev/urandom

错误如下

File "/usr/lib64/python2.4/random.py", line 109, in seed a = long(_hexlify(_urandom(16)), 16) OSError: [Errno 2] No such file or directory: '/dev/urandom'

继续阅读 →