nov 07
我家里是通过一台FreeBSD拨号上网的,基于某些因素考虑,只需要一个拨号设备,而不需要现在很流行的拨号+路由的集成设备。(我使用单独的无线路由提供网络共享)
在不断尝试过程中,始终觉得D-Link的DSL-2300E是我最喜欢的设备,简单、小巧、快速、稳定。前几天更新设备,新购入一颗DSL-2300E,打开发现新款(型号未变)变得更加小巧,差不多一个拳头大小,和苹果的新款Apple TV接近了。电源也换了,从原来的输出10V变为输出5V,是否也意味着更加节能呢?(非专业人士臆想)哈!
在配备上九州风神的Walkpad 2.0T(可惜已停产)作为冷却器,绝对是完美组合。
nov 28
Apache/Subversion: SSL negotiation failed: SSL error: parse tlsext
我的 SVN 服务器升级到 FreeBSD 8.0 Release 之后,原先 Apache + SSL + Subversion 的环境,在客户端(包括 Ubuntu 9.10 和 Mac OS X 1.5.8)做任何 SVN 操作的时候,会得到标题给出的提示。
查了下,是因为 TLSv1 协议的问题,不知是 OpenSSL 的 bug 还是 Subversion 的 bug,总之无法正常工作。
修改 Apache 配置文件,屏蔽掉 TLSv1 加密方式:
SSLProtocol -ALL +SSLv3
或
SSLProtocol +ALL -SSLv2 -TLSv1
或
SSLProtocol ALL -TLSv1
反正只要没有 TLSv1 就能正常工作,经测试,暂时还未发现新问题。
nov 14
要想购买到称心的intel网卡,首先要从intel网络事业部开发百兆以太网络控制器开始谈起。
1995 年,3com垄断百兆以太网卡市场,当时百兆以太网卡相当昂贵,intel从自身战略角度出发,独自开发百兆以太网卡控制芯片。开发完成后,主芯片核心的代号定为D100,物理层芯片代号为Phy-Tx。相应的制造出的网卡,主芯片为82557,物理层芯片为82555。很遗憾的是,82557网卡没有一举击溃主流的3c905tx网卡,很多计算机厂商对其持观望态度。
Intel没有气馁,其网络事业部于1997年左右收购了 PHY芯片公司Level-One,于97年11月左右推出82558,82558B以太网卡控制芯片,将物理层芯片和主控制芯片整合到一起,也就是 Phy-TX + D100的架构 。82558网卡这次终于获得各大计算机制造商的垂青。很多公司,如IBM和HP,都加大与intel的OEM订单。
1998年左右,intel收购Digital公司的网络研发部门(还记得标有intel图标的21143网卡吗?)。同年intel推出82559芯片,82559就是intel将82558的制造工艺提高,再加入PCI2.2规范和其它一些功能构成。
2001 年,intel推出82550系列百兆以太网芯片,其中82550GY是旗舰产品,82550gy比普通的82559主要多 IPSec,MDIx and HWI Alerting功能。早期的pro100 s网卡就是采用82559+IPSec的架构或者82550ey单芯片的解决方案。82550系列芯片还是采用了D100内核为基础,然后在D100上增加功能。
纵观intel百兆网络芯片的发展,所有网络芯片都采用了D100内核(在proset的诊断信息里可以看到),也就是说,intel各个版本网卡的网络传输性能变化不大,但是功能越来越多,发热量越来越小,越来越稳定,也就是说整体性能在提高。
购买推荐: 82550gy>82550ey>82559>pro100 ve>82558>82557。
Read more...»oct 23
随着被墙的越来越多, 出离愤怒的我 ,也不得不开始查找爬墙的工具。
幸好,国外有不少便宜的 VPS,而我刚好拥有一个;透过VPS,通过 SSH Tunneling,再加上一个好用的代理工具,就可以方便的达到翻墙目的。
首先确保你的 VPS 在墙外,或者你能拥有一个墙外系统的 SSH 帐号。
在你本地系统(或者你的家庭网关?)中使用 SSH 建立一个隧道:
ssh -qTfNnD localhost:8888 username@your.vps.host.name
之后,SSH 会在本地的 8888 端口建立了一个 SOCKS 5 隧道。(桌面系统我只使用 Ubuntu 和 Macintosh,所以,如果你使用 Windows,请自己研究相应的 SSH 客户端。)
在你的浏览器中,设置为 localhost:8888 的 SOCKS 5 代理就可以浏览被墙的网站了。
这种方式,有个缺点是所有网站都会这么绕一大圈,想要只针对被墙的网站才使用此代理,需要一些更加方便的工具。我在 Firefox 下用得就是 FoxyProxy 这个插件,在 FoxyProxy 中建立一个白名单,把我要浏览的被墙网站加到白名单中,符合白名单的就启用通过 VPS + SSH Tunneling 的代理,否则不通过代理直接访问。
可以说是相当完美的解决方案。最后一个有待改进的地方是,每当新发现被墙网站时需要手工加到白名单,有时间的时候,想办法试试能否便捷的白名单快速增加方法。
恩,发个申明:
- 以上方法仅供学习研究之用,请勿用于“非法”、“不正当”途径,任何后果,自行负责,与本站无关。
- 本站不提供任何 SSH 帐号服务,请勿索要任何相关信息。
oct 22
今天升级主 DNS 服务器完成后,从 Home Server 更新动态 IP 到主 DNS 时,发生以下错误:
; TSIG error with server: clocks are unsynchronized
update failed: NOTAUTH(BADTIME)
登上主 DNS 服务器,错误日志如下:
named[629]: client 123.118.7.83#27413: request has invalid signature: TSIG freshd-key: tsig verify failure (BADTIME)
last message repeated 18 times
原来两台机器一直非常正常,升级坏了?
看到 BADTIME,对比了下两台机器时间,发现主 DNS 服务器系统时间错的很离谱,手工执行一下 ntpdate 后重新更新,问题解决。
看来这个 VPS 的时间多少有点问题,重启一下系统,时间设置就出错了。
oct 21
When Apache web server with SSL is starting up in FreeBSD system, Apache loads succcessfully and web server functioning properly, but the following warning error occurs:
[warn] (2)No such file or directory: Failed to enable the 'dataready' Accept Filter
The resolution to the above problem is to a accf_data module, which function is to prevents the application from receiving the connected descriptor via accept() until data arrives on the connection, into FreeBSD kernel by using kernel linker:
kldload accf_data
To permanently load enable data Accept Filter FreeBSD kernel module (accf_data), add the following line into /boot/loader.conf:
accf_data_load=”YES”
Note: The default settings is located in /boot/defaults/loader.cnf. To see the related settings about accf, use:
grep accf /boot/defaults/loader.conf
which will returns:
accf_data_load=”NO” # Wait for data accept filter
accf_http_load=”NO” # Wait for full HTTP request accept filter
oct 01
【现象】
Limiting open port RST response from 28 to 10 packets/sec
Limiting open port RST response from 28 to 10 packets/sec
Limiting open port RST response from 27 to 10 packets/sec
Limiting open port RST response from 29 to 10 packets/sec
Limiting open port RST response from 18 to 10 packets/sec
Limiting open port RST response from 84 to 10 packets/sec
【说明】
FreeBSD 中 sysctl 有个 icmplim 变量,缺省值为200。还有个 icmplim_output 控制它是否输出。如果为1,就输出你看到的信息,为0,就没有输出。
在sysctl中如下:
net.inet.icmp.icmplim: 200
net.inet.icmp.icmplim_output: 1
icmplim 的含义好像是规定内核每秒接受 ICMP 包的最大数量。你看到的信息是由内核中的一个函数通过测试每秒接受 ICMP 包的实际最大数量所打印的。
当实际的数量大于 icmplim 时就会打印你看到的信息。84表示当前实际接受的数量,10就是你设置的上限数量。
这种信息只是让你知道系统曾经的状态。你这里的信息意思是:曾经有个时候,你机器中的ICMP不可达包的数量每秒达到了84。
涉及具体的代码如下:
Read more...»dirk 发表于 2009-10-01 Thursdayfreebsd sep 04
我现在的工作和生活变得非常依赖网络,一直考虑自己托管一台服务器到机房,一来作为开发用 SVN + Trac 服务器,二来作为数据备份用,恩,三来可以部署开发中的测试站点。但碍于国内的种种限制,多少不太放心,而且,也确实舍不得花那么多钱买个专门的服务器。
前段时间,家里的 ADSL 宽带升级到了 2M,我就开始考虑能不能在家里架一个 Home Server。这样,就可以极大降低成本。
先说说网络出口。我家的 ADSL 是 2M 包月,上行 1Mbps,下行 2Mbps,换算下来,就是下行 256K,上行 128K。对于一般的应用来说,带宽足够了。
再来确定机器。我自己从中关村攒了一台 Intel E5200 + 4G RAM + 1T SATA HD 的小机器,集成显卡(安装 FreeBSD 作软路由,对显卡要求非常低),配了一个爱国者小机箱,然后从淘宝上购买了一块 Intel 双口千兆网卡,一共花了不到 3000 元。双口千兆网卡做软路由真的是非常棒,配合我 D-Link DIR-655 无线路由(也带千兆口,但我只将它作为无限 AP,只有我在家时才开启)真的太爽了。
再说说动态 DNS。我个人有自己的域名,也在国外有一台 DNS 服务器(FreeBSD VPS),所以,我只需要在系统重新拨号更换 IP 之后将相应记录更新到我的 DNS 服务器即可,然后将相应 TTL 设置为 5 分钟,能达到足够的可用性。(国外那台服务器因为配置较低,而且网速不够理想,所以无法替代此 Home Server 地位。)
在持续开了一段时间之后,发现隔几天的下午就无法联网,反复检查后发现是因为天气太热,连续的大数据量传输致使拨号猫太热而失效。本来想学学网上介绍的那样自己买个风扇来 DIY 一个散热设备,但发现电源不好解决,此外 DIY 的外盒(不能太丑)也不好找。后来搜了搜笔记本散热器,发现一款不错的小型散热器: 九州风神的 Walkpad 2.0T ,USB 供电,银白色铝壳,相当满意。从 新蛋 上买了一个(39 一个,超值,可惜新蛋每单限购一个),垫在 ADSL 猫下面,跑了几天,非常之凉快。哈。
最后,再来说说电费吧,平时白天我只需要开启如下设备:ADSL 猫 + Home Server + Walkpad 散热器,测试下来总功耗在 70W 左右,峰值(编译内核时) 90W 左右,这样下来,一年电费不到 500 元。
这样,就兼顾了外网小服务器 + 软路由 + DHCP + 内网文件服务器,绝对是超值的解决方案。哈!
P.S.
- 如果有人问为啥放弃 D-Link 无线路由器再额外搭建软路由,事实是, FreeBSD + Intel 千兆网卡可以最大程度的实现抢包任务,标称的 2M ADSL 下行应该是 256K,而我这个解决方案,下行往往稳定在 310K,这就是抢包的优势。
- 曾经考虑过用 Atom 平台做这台机器,虽然功耗更低,但 Atom 平台配置相对还是有点低,如果只做软路由还不错,但拿来做一个常用的家用服务器,还是有点吃力。
Update@2009-09-08 20:57
新蛋上的 Walkpad 2.0T 在我买完第三块后,就撤柜了,哈,看来我秒了尾货啊。铝表面,做工相当不错。现在这个东西,在淘宝上都拿不到那么低的价格。幸啊。
aug 14
FreeBSD 7.2 下 BIND 在启动的时候系统日志会报告以下错误:
Jul 29 11:58:49 cvsup kernel: Jul 29 11:58:49 \
cvsup named[51307]: the working directory is not writable
这是由于 /etc/rc.d/named 在启动的时候会根据 /etc/mtree/BIND.chroot.dist 的配置信息进行目录结构和相关属性检查。
上面那个错误是由于 7.2 版本中的 /etc/mtree/BIND.chroot.dist 文件有一个目录所有者错误:
/set type=dir uname=root gname=wheel mode=0755
修改为:
/set type=dir uname=bind gname=wheel mode=0755
jul 31
当你要管理的服务器不只是一、两台的时候,你会希望能够统一、便捷的管理系统配置文件,对此,可以使用 CVS + CVSup 来实现统一管理和同步。但这种方法只是简单的将文件更新到服务器指定位置,如果你在服务器上做出了实验性修改(没有通过 CVS),或者其他系统管理员修改了配置文件(也没有使用CVS),那么你可能很难处理 CVS 库和实际配置文件的差别。FreeBSD 下有一个 mergemaster(8) 的命令,本身是用于整合更新 FreeBSD 系统升级所需的配置文件的,我们完全可以利用 mergemaster 来实现我们 CVS 库配置文件的整合、更新。
mergemaster(8) 默认是通过 Makefile 来获取需要对比、更新的文件清单,但可以通过直接指定某个目录来确定源文件目录,而源文件目录的结构需要和目的目录结构相同。比如你的配置文件可能包含以下文件:
/etc/rc.conf
/etc/hosts
/etc/ipf.rules
/etc/make.conf
/usr/local/etc/lighttpd.conf
/usr/local/etc/php.ini
那么你需要在源目录中创建相同的目录结构,假设我们使用 /var/run/tmp_root 作为源文件目录,则应该存在以下目录结构:
/var/run/tmp_root/etc/rc.conf
/var/run/tmp_root/etc/hosts
/var/run/tmp_root/etc/ipf.rules
/var/run/tmp_root/etc/make.conf
/var/run/tmp_root/usr/local/etc/lighttpd.conf
/var/run/tmp_root/usr/local/etc/php.ini
然后,使用以下命令进行比对和更新:
mergemaster -r -m /var/run/tmp_root -t /var/run/tmp_root
就此,mergemaster 会自动检查源文件目录中的文件与系统实际目录中的配置文件是否存在不同,如果存在不相同的文件,mergemaster 会将不同部分显示,并让你决定是安装新文件、整合新旧文件或者直接放弃更新。你可以直观的看到你更新了哪些文件,这些文件和实际环境的配置文件又有哪些不同。
注意:
- 实际操作中,由于 mergemaster 将删除类似 /var/run/tmp_root 的源文件目录,所以你应该使用 shell 脚本根据 CVS 库文件生成一个临时目录,将此目录作为源文件目录传递给 mergemaster;
- 如果你熟悉 mergemaster 和 Makefile 命令,你可以考虑直接使用 Makefile 指定你需要更新的文件源;
- 因为 mergemaster 需要进行文件的比对(diff),所以只能处理文本文件,对于二进制文件,这种方法没有意义;
Recent Comments