Skip to content

Category Archives: Linux

Linux 系统相关

一个技术论坛上技术含量最高的文章

03-四-09

工作需要为 VMWare Virtual Center 写一些接口模块,而 VMWare 不支持我们使用的编程语言,不得不在网上拼命 Google 碰到的出错信息,搜索结果列出了一个 vmware.cn 网站,我以为是中国 VMWare 的官方技术论坛,就注了册进去看看。
进去以后觉得不太对,网站论坛里面充斥着很多找 VMWare 软件破解或者许可的帖子,想想中国的实际情况也见怪不怪,于是直奔论坛的高级板块 “ VMWARE企业高级应用 ”,去读置顶 FAQ。
置顶 FAQ 是该论坛板块的版主写的,开始部分是到哪里下载软件,如何破解,这也都无可厚非。
但其中一句话引起我的注意:
“我一直都认为这个贴,是论坛最精华,技术含量最高的贴。”
各位看官,说的这个帖子是什么呢?原来是一个名叫“VI3 (ESX3) 破解/授权历史回顾”的帖子,有兴趣的话可以看看:
http://bbs.vmware.cn/thread-10155-1-1.html
这个帖子的技术含量到底有多足我就不评价了,但是这样一个帖子居然是论坛最精华、技术含量最高的帖(而且“一直”说明了这个结论是经过时间考验的),那么这个论坛的技术含量我也就不敢抱太多希望了。

快速建立 ipv6 安全管道访问 ipv6 网站

29-三-09

目前有很多网站支持 ipv6 连接,比如
http://ipv6.google.com
但对大部分人来说,这个网址是不能访问的,因为没有设置好 ipv6 。目前 ISP 很少提供 ipv6 连接,用户一般需要使用 ipv6 tunnel broker 来建立管道来访问 ipv6 站点。
在 Linux 下这个工作很简单,以 Debian 为例,安装 miredo 包(包的名字是”多来咪”反过来):
# sudo apt-get install miredo
后输入
# /sbin/ifconfig
看到 teredo 这个虚拟网卡就可以用它访问 ipv6 了:
# ping6 ipv6.google.com
PING ipv6.google.com(2001:4860:b002::68) 56 data bytes
64 bytes from 2001:4860:b002::68: icmp_seq=1 ttl=56 time=874 ms
64 bytes from 2001:4860:b002::68: icmp_seq=2 ttl=56 time=322 ms
现在应该可以访问  http://ipv6.google.com 了,如果成功访问的话,你会看到在 ipv4 下面熟悉的 Google [...]

Linux 命令行下用 Gmail SMTP 发信

18-二-09

最近没有注意清理硬盘空间,每天半夜的备份把外接硬盘填满了还不知道,由于这个外接硬盘是用 automount 挂载的,平时一般处于卸载状态,所以没有及时发现。由此 Linux 系统命令行发送邮件的需求重新提到日程上来。
几年前安装 Linux 系统时顺手配置 Email Server 很常见,但是近来大家都选择不安装了,因为
1、用家里ISP分配的动态IP运行的 SMTP 服务器发信往往会被别人当作 spam 拒收(因为这种动态IP无法经过域名反查证实是我们自己设定的域名);
2、现在免费信箱很多,与其自己费心维护还不如直接用 Gmail 提供的 SMTP 服务。
经过比较后,我决定使用 ssmtp 来实现发信,原因是
1、我并不需要收信,只需要发信;
2、ssmtp 比 exim 小很多,比较一下安装包,ssmtp 大约 50KB,exim 大约 1.7MB
选择 Gmail 是因为它提供加密的 SMTP 服务,首先去 Gmail 申请一个帐号(sender@gmail.com),专门用来发信。
使用 sudo apt-get install ssmtp 安装 ssmtp 后,修改设置文件 /etc/ssmtp/ssmtp.conf,改成
root=sender@gmail.com
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES
RewriteDomain=
Hostname=sender@gmail.com
AuthUser=sender@gmail.com
AuthPass=password
FromLineOverride=YES
反查表文件 /etc/ssmtp/revaliases 里面设置
root:sender@gmail.com:smtp.gmail.com:587
这时就可以用 ssmtp 通过 Gmail SMTP 来发信了,假如我们要发一封试验信给 myacct@myemail.com,可以这样写
echo “This is a test email” | [...]

软件运行文件越小越好吗?

26-九-08

这篇文章是读过善用佳软的“超级小巧的5款免费款树状笔记软件”后,关于软件运行文件大小的一些感想。
在其他条件都相同的理想情况下,当然同样尺寸的软件,实现功能越多越好,这是没有疑问的。
不过……
首先,其他条件都相同这个情况,本身就非常不容易满足;
其次,即使满足了其他条件都相同 ,如何衡量和比较不同软件的实现功能呢?如果两个软件的运行文件大小一样,A 软件实现了 10 个功能,完成每个功能各需要 1 分钟,B 软件实现了 8 个功能,完成每个功能各需要 30 秒,虽然 A 软件的实现功能比 B 软件多,但用户对 A 软件的评价是否一定比 B 软件高呢?
我们现在来看看,软件运行文件的大小都受什么因素影响。
1、编译器优化方面的因素
以 C 为例, 编译器提供了 inline function(或者用 #define 的变种),就是牺牲文件运行代码的尺寸来换取运行速度的提高(这在需要实时快速反应的软件来说尤其重要),使用了 inline function 的运行文件,尺寸比较大;
现代的高级语言编译器,都有各种优化选项,供程序员选择,比如 gcc 中的 -O 选项就相当复杂,可参看 info gcc 中的 Optimize Options 一节,-O 默认的优化目标是产生的代码小,运行效率高,但实际情况中,这两方面往往是互相矛盾的。由于优化技术已经很成熟,用高级语言编程的代码,经编译器优化后,不同程序员之间的差别越来越小,所以高手间代码本身尺寸大小的对决,往往是汇编这一层次的较量,在高级语言层次,除非实现方法完全不同,否则很难从文件尺寸上分出高下。
2、 软件运行环境的因素
同样一个 hello world 的实现,如果用 perl 来写,一行字符的脚本就能搞定,而用 C 写一个简单的程序编译成可执行代码则要2KB多,表面上看来,用 perl 写出来的代码小,但是 perl 脚本需要有 perl 解释环境才能运行,如果把 [...]

给 chrome 过滤广告

24-九-08

chrome 目前不支持扩展,像 Firefox 里面这样强大的 AdBlock Plus 不能用,淹没在网络广告的海洋里,还是比较难受的。
不过我的 Linux 服务器上面有 privoxy, 正好可以给 chrome 过滤广告用。设置一下,用 Linux 当 chrome 的 HTTP/HTTPS 代理,广告立刻见少。不过 chrome 偷懒,没有写自己的代理设置,而是用 Windows 的系统代理设置,给它设定代理,等于是全系统都设置了,结果联想网盘客户端不能正常访问网盘,而且频频崩溃。
只好在 privoxy 的 user.action 里面把
.lenovodata.com
加入 fragile 类网站了。
如果 chrome 或者联想网盘两者之一可以自定义 proxy 设置的话,就不会互相影响了。

scp 续传

21-八-08

scp 是通过 ssh 和远程系统之间通讯时常用的文件拷贝工具。但 scp 自身缺乏续传功能,如果传送大文件的过程中遭遇断连要重新开始传输,很令人头疼。
我们可以借助其他工具来 scp 续传。
1、用 rsync
alias rscp=’rsync -v -v -P -e ssh’
rsync 的工作原理类似 p2p 文件传输,即分块比较/传输,内建校验功能;所以这不仅是续传,因为传输过程中如果源文件发生变化仍然能正确复制。
2、用 dd
嵌入式系统一般不会把 rsync 塞进去,但 busybox 含 dd, 可用 scp-resume.sh 。这段脚本无校验功能,如需校验,可使用 md5sum 之类的工具。

hamachi 改变授权策略

19-八-08

8/18 hamachi 发布了新版本 1.0.3.0,细心的用户除了发现界面上的细微变化之外,授权策略也改变了。但无论是官方网页还是官方论坛,都没有明确说明新的授权策略和以前的相比有何不同。
根据我的观察,对比一下新授权和旧授权。
旧授权的两个版本:Free(免费) vs. Premium(付费),可以简单归结为:付费用户购买高级功能,但不需要高级功能的商用用户仍可以选择使用免费版本;
新授权的两个版本:Non-commerical (非商用) vs. Commercial(商用),商用用户现在必须强制性付费使用商用授权,非商用用户则可免费使用。
在旧授权方式下,付费用户优于免费用户可以使用的高级功能主要包括:
1、加入 network 时不受 16 个免费用户的数量限制,而是受 256 个付费用户的限制;
2、可以使用 hamachi 客端自带的 system service 功能;
3、network 管理员可指定多个管理员;
4、network 可以设置为不使用加密管道以提高速度/性能;
5、如果两个客端无法直接连通,可以使用经过 hamachi 服务提供的高速转接(非商用用户只能使用低速转接)。
而在新授权方式下 ,非商用用户和商用用户基本上没有功能的区别了,上述那5条主要区别现在除了第5条,前面第2、3、4条非商用用户也可以享用了,至于第1条,现在不管商用还是非商用,每个 network 统一为最多 50 个用户。
所以,对于非商用用户来说,新授权策略大大优于旧授权策略。

6/17/08 1:00pm PDT, 正式升级到 Fx3

17-六-08

以前用过几次 Portable 版,今天算真正升了 。
豆瓣里面的发布链接基本上都打不开(网页忙)。收到 Mozilla 发来的 Firefox Download Day 信,里面是美国的下载链接,完全没有忙碌的问题。
升级后第一件事,照例是读 Release Note 。
目前只有 Tab Mix Plus 不兼容,不过这个很不方便。
PS:  去 TMP 官方下载了最新开发版,解决了。

自架/使用基于 openssh 加密管道的 SOCKS v5 代理

11-四-08

使用基于 openssh 加密管道的 SOCKS v5 代理可以获得类似在远程系统上网的效果,而这个代理你可以自己架设。
你需要有一个远程系统,满足下列两个条件:
1、该系统允许远程用户的加密管道转接;
2、你有一个用户帐号,可以通过 openssh 的 SSH-2 协议正常登录。
先假设这个远程系统的域名是 mysshd.myhost.com (IP 也可以) ,登录用户名是 myuser。
现在你需要一个登录远程的 ssh 客端,Windows 系统上可以用 putty 的图形界面,或者它附带的工具 plink.exe,这里以 plink 举例,在 Windows 的 cmd 中输入以下命令:
plink myuser@mysshd.myhost.com -N -D 127.0.0.1:9090
(关于这个命令的具体解释可以阅读 plink 的帮助信息,输入 plink 即可列出它支持的命令行选项)
在 Linux 系统上,可直接用 ssh:
ssh -2qTfN -D 127.0.0.1:9090 myuser@mysshd.myhost.com
输入你的用户密码,登录到远程系统上,通过加密管道的 SOCKS v5 就建立好了。
怎样使用它呢?在 Firefox 中可以设定 127.0.0.1:9090 作为 SOCKS v5 代理,下面是 FoxyProxy 里面的设定截图:

通过这个代理访问一下
http://www.123cha.com
看看你的 [...]