国内推荐的 NTP 授时服务器

Ubuntu (Debian) Linux 下使用 ntpdate 工具进行时间同步。默认的时间服务器是国外的,下面介绍几个推荐的国内 NTP 授时服务器。

ntpdate 软件的配置文件位于 /etc/default/ntpdate 。我目前的配置如下:

NTPDATE_USE_NTP_CONF=no #不使用 /etc/ntp.conf 转而使用下面的列表
NTPSERVERS="ntp.tuna.tsinghua.edu.cn 210.72.145.44 ntp.api.bz 0.cn.pool.ntp.org ntp.sjtu.edu.cn"
NTPOPTIONS=""

这个列表是国内几个比较快和稳定的服务器,包括教育网及公网电信、联通的地址。我记得推荐是使用三个服务器以内,可以按照网速去掉两个用不到的。

当然,如果使用其他 NTP 客户端,例如 ntpd 或者 chrony,也可以相应的在 /etc/ntp.conf、/etc/ntpd.conf 或 /etc/chrony.conf 中,修改或增加以下几行:

server ntp.tuna.tsinghua.edu.cn
server 210.72.145.44
server ntp.api.bz
server 0.cn.pool.ntp.org
server ntp.sjtu.edu.cn

 

Ubuntu 默认安装后建议替换/删除的软件

最近刚全新安装了一次 Ubuntu 12.10 amd64,把安装过程中替换和删除的软件做一下笔记,方便参考。

1. 所有安装、删除操作均使用 Synaptic (新立得包管理器) 进行,刚装好的系统建议只保留以下几个 meta packages 作为“手动”,其他都改为自动,方便今后删除无用包:

ubuntu-desktop, ubuntu-standard, ubuntu-minimal (这三个是推荐软件), linux-generic (内核不解释), language-pack-gnome-en, language-pack-gnome-zh-hans (这两个是语言包)

2. 自带浏览器——Firefox

这个因人而异,如果你喜欢火狐就用着,它跟 Ubuntu 系统集成是最紧密的,也是带 Logo 的官方维护版。可用的替换包括:

chromium-browser (开源版,软件源里面有), google-chrome-stable (需要到 Google 官方下载,比楼上的强力), Opera (没用过不知道包名,也需要到官方下载)

3. 自带办公套件——LibreOffice

LO 和之前的 OOo (现在的 Apache OOo) 对 Microsoft Office 的文件兼容性都一般,尤其是包含排版问题的 Word 和 Powerpoint,因此建议卸载后选用永中 (官方网站有,强力推荐这个) 或 WPS (官方还在封闭测试,估计我有生之年看不见稳定版了)。

4. 自带播放器——Totem

这个基本没用过,也基本没人用,可以按照自己喜好选择比较成熟的播放器:

vlc (VideoLan 很多人用), smplayer (mplayer 作为后端,Qt 前端)。同时建议安装 ubuntu-restricted-extras 带来的 GStreamer 和 FFmpeg (libav) 系列解码器。

5. 自带输入法——IBus

个人感觉 fcitx 比 ibus 稍微成熟一点,支持更多后端以及可用的云输入法 (IBus 的云输入法要自己编译,自称还不成熟)。推荐的搭配为 fcitx + fcitx-libpinyin + fcitx-module-cloudpinyin 而不要用传统的拼音引擎。

反正你说成熟吧,Ubuntu 桌面版就没有什么成熟的玩意,我就不多吐槽了,谁用谁怀孕。

6. 自带 BitTorrent 客户端——Transmission

它本身没啥不好的,但是在下载六维之类 IPv6 PT 的时候总会有些种子下载不到,包括 Vuze (Azureus)、Deluge、qBitTorrent 等我测试过的都有一些问题,具体问题我也懒得去检查(本来那些 PT 毛病就很多,我也不吐槽了),总之建议换用 uTorrent Server (也就是 uTorrent 的 Linux 版本)。虽然官方说是 Alpha 测试阶段,可是 uTorrent 的代码质量我觉得也没问题,本来就是拿到 Linux 上重新编译一遍而已嘛。可以从官方下载到 x86 / amd64 的可执行文件。

7. 其他可以精简的软件:

各种乱七八糟国家的字体 (ttf- / fonts- 开头,根据语言自己选择删除),
各种乱七八糟牌子的打印机驱动 (printer-driver- 开头,有一个不能删,其他不用打印机可以都删掉),
自带游戏 (除非你喜欢,否则在新立得的 “组别–游戏和娱乐” 中删掉即可),
各种显卡、输入设备驱动 (xserver-xorg-video- / xserver-xorg-input- 开头,不懂的尽量别碰),
Unity Lens (Dash 里那些智能搜索,不用的可以把这些 unity-lens- / unity-scope- 开头的还有 zeitgeist 都删掉),
empathy (不支持我大 QQ 还留着干嘛,不需要可删),
gwibber (支持新浪和搜狐,不需要可删),
thunderbird (看邮件的客户端,不需要可删),
smbclient (Samba 是跟 Windows 共享文件夹用的,不需要可删)。

8. 都清理好了之后,别忘了在新立得的 “状态 — 已安装(可自动删除)” 里把余下的库啥的都删掉。

配置Linux下的VirtualBox虚拟机使用USB设备

包括添加用户组,下载安装扩展包,配置 USB 设备等部分,可以在虚拟机内直接访问主机的 USB 设备,如打印机、摄像头、手机等。

安装 VirtualBox 的过程不再重复,这里演示使用的版本是 virtualbox-4.2 (4.2.0-80737~Ubuntu~precise)。

1. 将当前用户添加到 vboxuser 组中。只有这样的用户才有访问USB设备的权限。

sudo gpasswd -a `whoami` vboxusers

2.(可选) 到官方网站下载 Oracle VM VirtualBox Extension Pack 扩展包,提供 USB 2.0 设备的支持。如果USB设备运行在1.0下,或者运行没有问题,则可以不安装。这个包(以及虚拟机内的Guest Additions)有版权限制,仅限个人用户使用。

下载页面:https://www.virtualbox.org/wiki/Downloads 请按照 VirtualBox 的版本下载,双击即可提示安装。

3. 在虚拟机设置页面中,启用 USB 支持并添加相应的设备过滤器。(暂时没有图片,稍后补上)

点击“USB 设备”项,勾选“启用 USB 控制器”,如果安装了扩展包还可以勾选“启用 USB 2.0 (EHCI) 控制器”,然后点击右侧的加号,选择要使用的设备,确定即可。

4. 启动虚拟机,等待安装新硬件(如果有单独的驱动,也要一并安装)即可。

让NetworkManager在某个连接启动和停止时自动执行特定命令

本篇介绍如何配置 Ubuntu 中 Network Manager 的 dispatcher 脚本,使某个特定连接上线或下线时自动执行相应命令。

为什么会有这个需求呢?因为我在学校的网络里有 native IPv6,在家里就没有,需要用 gogo6 的客户端获取 6over4 的连接,而在学校的时候这样就不如本地 IPv6 速度快。

这样,因为校园网的连接是一个特定的,只需要在校园网连上的时候自动停止 gogoc 服务,断开时再自动启动即可。首先我们需要到 /etc/NetworkManager/system-connections/ 中找到校园网的连接,获取它的 uuid(形如 “27f6539a-xxxx-xxxx-xxxx-947cf89d56d6” 的一串十六进制符号)。

以下内容部分参考 NetworkManager 的 manpage。NM 版本为 0.9.4.0。将以下脚本(按提示修改配置后)放到 /etc/NetworkManager/dispatcher.d/98xiaodu 中,拥有者为 root 并使其拥有执行权限。(点击下载这段脚本

#!/bin/bash

# 要指定的连接UUID
MY_UUID="27f6539a-xxxx-xxxx-xxxx-947cf89d56d6"
# 连接上线时执行的命令
MY_UP="service gogoc stop"
# 连接离线时执行的命令
MY_DOWN="service gogoc start"

if [ "$CONNECTION_UUID" == "$MY_UUID" ]; then
  case "$2" in
    up|vpn-up)
      exec $MY_UP
    ;;
    down|vpn-down)
      exec $MY_DOWN
    ;;
  esac
fi

这样就可以在连接上线和下线时自动执行其中的命令,执行的权限是 root。更多信息请查看 man NetworkManager。

使emlog反向输入验证码,回避垃圾评论

最近博客上有好多垃圾评论,我懒得装反垃圾插件,就改了下验证码验证,要求反向输入验证码,机器人或者老外就搞不定啦。

1. 修改验证码保存的Session值,将 /include/lib/checkcode.php 中的15行左右,将:

$_SESSION['code'] = strtoupper($randCode);

改为:

$_SESSION['code'] = strrev(strtoupper($randCode));

这样在判断时,就会以为反过来的字符串(ABCD变成DCBA这样的反过来)是正确的,原本的验证码是错误的。

2. 添加输入验证码的提示,在模板中的 module.php (/content/templates/[模板名]/module.php)文件,找到 blog_comments_post 这个函数,修改其中的内容即可。

官方也有不少反垃圾评论插件,可以直接使用那些插件来过滤大部分国外垃圾评论,打开审核功能和验证码也是很管事的方法。