Headless Server
无头服务器?很黄很暴力!
Headless Server是指没有物理控制台的服务器,即没有键盘、鼠标和显示器的服务器。BIOS和操作系统必须都支持Headless Mode才可以运行Headless Server。
无头服务器?很黄很暴力!
Headless Server是指没有物理控制台的服务器,即没有键盘、鼠标和显示器的服务器。BIOS和操作系统必须都支持Headless Mode才可以运行Headless Server。
刚购买的VPS默认安装的系统是CentOS,没想到CentOS现在这么火,很多VPS默认安装这个。但是我只用Debian或FreeBSD,重新安装了一下Debian lenny AMD64,几分钟就完成了。sudo apt-get upgrade时出现错误提示:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
原来是默认没有设置locale
用这个命令dpkg-reconfigure locales配置一下,选个lcoale就好了,我用en_US.UTF-8。
route -n 时你总能看到这样一条路由
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
由RFC3330 可知 169.254.0.0/16 为本地链路地址
“169.254.0.0/16 - This is the “link local” block. It is allocated for
communication between hosts on a single link. Hosts obtain these
addresses by auto-configuration, such as when a DHCP server may not
be found.”
当系统配置为使用动态地址,而找不到DHCP服务器时,系统会为本机设置一个169.254.X.X的地址。
这个路由表项是有zeroconf 协议Daemon 程序添加的,我们一般是用不到的
只是注释掉/etc/networks 里面的link-local 项是无法去掉该路由表项的,/etc/networks 与/etc/hosts
文件的作用差不多,是用来关联网络号(数字格式)和网络名(字符格式)的,注释掉该条目后,只是169.254.0.0
无法解析为网络名link-local了.
可以用以下命令来删除zeroconf 相关的程序包
sudo apt-get remove avahi-autoipd –purge
下次启动机器后这条路由就不会自动出现了.
世界是普遍联系的。
上个月,CCAV曝光了手机色情,本来这种事情和我们这些安分守己的P民是没有什么牵扯的。做梦也不会梦到和我们有什么瓜葛。但就在上个月末的某一天,美梦中醒来发现博客无法访问了,其他几个站点也都无法访问了。心中暗自惴惴,不知道这次又错在哪里了。traceroute发现到ip的路由出现了问题,也就是ip被封了,闷。记得前几日那备案核查的打过电话,核实的信息都是无误的,而且对方也说没问题,怎么这就又给下线了呢。电话打到接入商那里才明白,原来也是拜手机色情所赐,先强制下线再说,给我的理由是“网页语言为英文,无法进行核实。” 诸位,这也能算是理由吗?是的,那个ip上面是有英文站,难道你们看不懂反要来怪我吗?是不是色情难道还需要看懂英文吗?这种作风实在太彪悍了,无语。这种环境下和谁去讲理呢。我们是鱼肉,人家是刀俎,哪天想切就切呗。
没几天,这cn域名也开始整治了,据说就算你跑到国外注册域名也逃不过censorship,生猛啊。幸亏原来的com域名都转移到name.com了,看来这cn域名也用不了几天了,先有心理准备吧。
如果互联网、IT是先进生产力的话,是不是这先进的生产力和落后的生产关系之间很矛盾呢?不然怎么理解呢,让我们拭目以待吧。
这几天购买了diahosting的Xen VPS,开始折腾nginx了,apache实在太占用资源了。
实在是受够了这些烦心事,从备案开始就没消停过,从此以后就在国外流浪吧,天知道哪天那些阴魂不散的东西会搞出什么新花样来。
不过,就算你跑到国外,说不定也要被墙的,随它去吧。
backport的含义是“向后移植”,就是将软件新版本的某些功能移植到旧版本上来,这种行为就称为backport。
Debian向来以稳定性著称,所以就存在一个问题,官方源分发的软件版本比软件本身的版本总是要慢一拍,所以就有了backports源。backports主要从testing源,部分安全更新从unstable源重新编译包,使这些包不依赖于新版本的库就可以在debian的stable发行版上面运行。所以backports是stable和testing的一个折衷。
backports源的使用方法如下:
在/etc/apt/sources.list增加下面的行
deb http://www.backports.org/debian/ lenny-backports main contrib non-free
deb-src http://www.backports.org/debian/ lenny-backports main contrib non-free
然后安装backports源的GnuPG archive key
sudo apt-get update
sudo apt-get install debian-backports-keyring
就可以正常的使用backports源了。
static可以用来修饰变量(variant)和函数(function)。但static作用于普通变量/函数与类(calss)变量/函数的语义是不一样的。
static有两种基本的语义,第一种是存储方式(storage),这种语义只作用于变量,不适用于函数,第二种是访问控制(Access Control)。
用static修饰一个普通变量有两层含义。其一是表示该变量的值在超出作用域范围后仍然有效,一般编译器将static变量放置到全局静态存储区,比如.data或.bss(Block Started by Symbol)节,这就是存储方式语义。其二是表示该变量只在声明的作用域范围内可以被访问,比如, 声明在一个文件作用域内的变量不能被其他文件访问,这就是访问控制语义。
用static来修饰普通函数的时候则只有一种语义,即访问控制,因为无论如何,函数总是要被编译器放置到.text节的。也就是说用static修饰的普通函数不能被其他文件内的代码访问。
C++中用static来修饰成员变量和函数的语义稍有不同,其含义表示这些变量或函数是属于整个类(class)而不特定于任何一个该类的对象(object),即使该类没有一个对象产生,仍然可用使用类来访问这些变量和函数。这是C++对C static语义的扩展。
先说一下主机和客户机配置
主机:4颗双核AMD 8218HE CPU,16G内存,windows 2003 R2 server x86
客户机:单颗CPU,1500MB内存,debian lenny amd64
最近经常能遇到客户机运行迟缓(lag),无法正常提供服务的情况,客户机的控制台一般有这样的提示:
end_request: I/O error,dev hda,sector xxxxxxxx(扇区号)
Buffer I/O error on device hda6,logical block xxx(块号)
…
日志文件/var/log/messages中有这样的消息:
Nov 16 10:54:06 debian kernel: [255938.816139] hda: dma_timer_expiry: dma status == 0x21
Nov 16 10:54:16 debian kernel: [255948.816121] hda: DMA timeout error
Nov 16 10:54:16 debian kernel: [255948.816174] hda: dma timeout error: status=0x48 { DriveReady DataRequest }
Nov 16 10:54:16 debian kernel: [255948.816183] ide: failed opcode was: unknown
Nov 16 10:54:16 debian kernel: [255948.816199] hda: DMA disabled
Nov 16 10:54:16 debian kernel: [255948.965023] ide0: reset: master: error (0x00?)
如果任何一个启动文件存在,但不能读取,Bash会报告一个错误。
ubuntu 9.10(karmic koala)AMD64系统下,设置好ADSL PPPoE拨号后,出现一种情况,部分网站可以正常访问,而有些网站则没有响应,无法正常访问。比如google.cn是正常的,而sina.com.cn则无法访问。
出现这个问题的原因是PPPoE默认设置的MTU1492字节有问题。MTU是链路层的一个特性,叫做最大传输单元(Maximum Transfer Unit)。如果网络层(IP层)要发送的数据比链路层的MTU还要大,那么IP层必须对数据进行分片(fragmentation)。PPPoE的MTU是一种逻辑MTU,因为PPPoE并没有一个实体的链路层存在。通常情况下以太网(ethernet)的MTU为1500字节,所以PPPoE设置其MTU为1492字节,加上PPPoE 8个字节的头部,刚好达到以太网的MTU,从而可以提高网络的利用率。但实际上很多ADSL接入方式的MTU并不是1500字节,比如我的ADSL链路使用traceroute实测的路径MTU(PMTU)是1492字节。那么这种情况下,PPPoE设置其MTU为1492就存在问题了,加上8个字节的PPPoE头部后,就超过了以太网的MTU大小。
deb http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse