为什么在酒店要拨VPN回家/公司而不是直接访问Internet?

| Security

这其实是一个很严肃的话题。

我在酒店或者提供免费wireless访问的地方一般都会拨VPN回家/公司,然后通过那里的路由访问Internet。这个习惯不能完全消除运营商进行的攻击,但能减少能够实施这种攻击的人的范围。

阅读全文…( 本文约 568 字,阅读大致需要 2 分钟 )

ZendOptimizer和PHP 5.3的兼容问题

| Security

我完全无法理解为什么会有人愿意被一个应用程序绑住。无非两种情况:一种是这个应用程序是花钱买来的,一种是这个应用程序没花钱。花钱买来的程序,没啥可废话的,直接要求对方提供就好了。如果不是花钱买的,可选的东西那么多,为什么非得选那么一个破玩意呢?

阅读全文…( 本文约 163 字,阅读大致需要 1 分钟 )

用 OpenVPN 提供 IPv6 服务

| Security

有时,会有需要接入远程的 IPv6 网络。例如,办公或网吧等环境可能不提供 IPv6 接入的条件,或者需要接入更高安全级别的网络等等。

使用 OpenVPN 提供 IPv6 服务需要的条件包括:

阅读全文…( 本文约 557 字,阅读大致需要 2 分钟 )

上张X7SPA-H路由器的图

| Security

应观众要求。

参与评论

通过CDP广播获得上游设备信息

| Security | #Cisco

今天跟 刘老师 讨论交换机问题的时候想到的。记一下这条命令。

tcpdump -nn -v -i em0 -X -s 1500 -c 1 'ether[20:2] == 0x2000'

参与评论

如何:為北美地區 IP 地址增加 whois 記錄

| Security

原則上,在 Internet 提供服務的機器,應提供對應的 whois 記錄,以便在出現問題時能夠與事主及時聯絡。北美地區的數字資源,例如 IP 地址、AS號等等,是由 ARIN 負責分配的。

阅读全文…( 本文约 381 字,阅读大致需要 1 分钟 )

旧金山总领事馆换护照攻略

| Life | #chinese | #passport | #renew

📜 历史文件已不具备现实意义

本文内容可能已经过时,如有需求请自行 Google。

今天去 中国驻旧金山总领事馆 换了护照,这里记下过程,希望对别人有用。

需要准备的材料:

  1. 原护照原件。如果是正常换发,原护照所剩有效期应少于一年。
  2. 填妥的 护照申请表
  3. 原护照复印件。主要是护照第一页、来美签证页、包含最后一次出中国入美国境记录戳页,以及 I-94。
  4. 除了上述材料之外我还附了 I-797 复印件以及原件。I-797的复印件和护照复印件钉在了一起。我的理解是如果有 I-20、EAD或绿卡,和I-797应该是类似的。领事馆的说明上要求携带这些材料的原件,但实际办理时并没有向我索要。
  5. 照片:中国签证处进门左手边可以拍照,会给4张照片(所交材料中需要两张),收费为 $10 现金。注意:咨询了 Mountain View, Redwood City 和 Sunnyvale 的 Costco 1 hour photo,由于规格和美国及印度护照所需的照片不一样(中国护照需要小二寸照片),他们都 不能 拍摄中国护照所需规格的照片。
  6. 所需费用:护照本身 $55,回邮手续费 $5,这两部分费用需要在邮局或银行先购买现金支票(Money Order),收款人title为"Chinese Consulate"。此外,如果不希望回去取的话,需要提前到邮局买好 Express Mail 或 Priority Mail 的信封并付邮资、写好地址。根据表格,UPS和FedEx的预付邮资信封也可以使用,我个人这次选的是 Express Mail。

具体过程如下:

阅读全文…( 本文约 1066 字,阅读大致需要 3 分钟 )

在远程FreeBSD服务器上运行VirtualBox

| Distributed Computing

📜 历史文件已不具备现实意义

现时提倡的安装方式为 pkg,本文并未对此进行更新。

VirtualBox可以在远程运行,并把界面通过 ssh 的 X11 转发放到管理员的桌面。

阅读全文…( 本文约 401 字,阅读大致需要 1 分钟 )

在服务器上运行的 ssh-agent

| Security

之前 @quakelee 提的一个问题(通道上登录第二台机器作为跳板登录第三台机器,但不把ssh私钥传到中间那台机器上)。如果shell是csh,在 ~/.cshrc 中加入:

source ~/auth.csh
[ -e ${SSH_AUTH_SOCK} ] || ssh-agent -t 15m -c > ~/auth.csh && source ~/auth.csh

然后所有的 csh 就可以使用同一个ssh agent了。

阅读全文…( 本文约 294 字,阅读大致需要 1 分钟 )

基于 Supermicro X7SPA-H (Atom D510) 的路由器(3)

| *nix and Win32 Kernel

📜 历史文件已不具备现实意义

本文介绍的是已经停产的硬件,内容已过时。

之前家里用的那个 Linksys WRT310N 路由器就有相当严重的问题(不排除是DD-WRT的问题),如果连续若干天不重启的话,无线网络的连接有时就会失败。部署新的路由器之后,设置了一个cron任务令其每天早上5:30重启:

30 5 * * * /usr/bin/ssh root@10.253.87.254 reboot > /dev/null 2>&1

当然,执行cron的那个用户需要使用ssh key来登录WRT310N,并事先将key传到WRT310N上面。

由于 FreeBSD 默认会对链路状态的变化进行记录,因此只要查看系统日志就可以知道cron是否真的执行了。

在之前的部分我们讨论过关于功耗的问题。在实际使用过程中,我发现 powerd(8) 对于 CPU 占用的计算是有问题的:它计算的是所有CPU的占用率之和,而比较合理的依据则是占用率最高的CPU的占用率。不过,对 Atom 来说 powerd 能够产生的影响有限,因此如果真在使用Atom系统的话不一定真的需要这个patch。下面这个patch可以让 powerd 更有效地 throttle CPU 的频率:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Index: usr.sbin/powerd/powerd.c
===================================================================
--- usr.sbin/powerd/powerd.c    (revision 213306)
+++ usr.sbin/powerd/powerd.c    (working copy)
@@ -127,6 +127,7 @@
 {
        static long *cp_times = NULL, *cp_times_old = NULL;
        static int ncpus = 0;
+       int newload;
        size_t cp_times_len;
        int error, cpu, i, total;

@@ -151,7 +152,7 @@
                return (error);

        if (load) {
-               *load = 0;
+               *load = newload = 0;
                for (cpu = 0; cpu < ncpus; cpu++) {
                        total = 0;
                        for (i = 0; i < CPUSTATES; i++) {
@@ -160,8 +161,10 @@
                        }
                        if (total == 0)
                                continue;
-                       *load += 100 - (cp_times[cpu * CPUSTATES + CP_IDLE] -
+                       newload = 100 - (cp_times[cpu * CPUSTATES + CP_IDLE] -
                            cp_times_old[cpu * CPUSTATES + CP_IDLE]) * 100 / total;
+                       if (*load < newload)
+                               *load = newload;
                }
        }

对路由器这样的设备来说,当有软件 bug 的时候,我们往往希望系统自己恢复并报告问题,而不是等待用户去用调试器现场调试。想要达到这个目的,可以使用 watchdog 机制。在这款主板上有两个 watchdog,其中系统没有自带的那个 Winbond watchdog 的驱动如下:

阅读全文…( 本文约 3111 字,阅读大致需要 7 分钟 )