You have mail. 查看 Linux 登录邮件提示

Linux 登录时如果在此次登录和上次登录之间有对当前用户的个人邮件或者系统邮件,比如 smartd 提示磁盘有坏道,crond 提示计划任务错误等等,都会通过 “You have mail.” 来进行提示。

查看方法,

# cat /var/mail/用户名

/var/mail/ 是用于存放邮件的目录。

VPS 选择指南

国际的做站环境一日不如一日,很多人滥觞脱离自己的祖国,将网站放到了异邦的空间大概办事器下面。有这么一大量的网站移民族曾经在他国发展的很杰出的,正如小石头自己的博客一样是放在了美国 Dreamhost 的虚拟主机上面,美国的东西就是低廉甜头实惠啊,不限制流量不限制空间不限制网站数量,仅仅只须要每年花 500 多元国民币。可还是有很多站长在持观望态度,对美国的服务器或者 VPS 的完全情景也不是出格了解,结果哪个机房的 ping 值较量低,哪个机房的流量限制比较充裕还不是十昭彰白。那么本日小石头就受累一下给人人注意的先容下美国 vps 主机的目前市场情况吧。

国内网络环境日益阴毒,众多站长将站“移民”国外。采用一款优良高速的主机十分紧要。由于虚拟主机的主机资源、帮助环境等种种的限制,很多站长选择 VPS(Visual Private Server),这篇文章,我们就来一起说说如何选择国外 VPS。

~ 本文只筹商 Linux VPS ,Windows 的不在讨论周围内。
~ 本文不会告诉你选哪家的 VPS,只会告诉你从 VPS 哪些方面来衡量他的性能。

  • 选择哪国的VPS?

除去像 dota 吧小同伙这样追求 firefox 那个小旗子癖之外呢,大局部同窗追求的不过是有两点,一点是速度,另一点便是安稳。周边向个国度和地域的速度都不错,但是由于代价过高以及措辞上沟壑,买的人并不多。其中日本和香港服务器是购置的比最多的,其它都比较少了。

我国周边速度一般来说是:日本 > 韩国 > 香港 > 台湾 > 新加坡 > 马来西亚,不是万万的,距离有远近,速度有不同。除去我国周边的国家,速度还不错的,首选的就是美国了。08 年投入行使的 TPE 光缆,带宽达 5T 多,使美国的主机不再慢。再除去美国,加拿大的西部的主机也是不妨思索的。

速度说完了,该说下价格,我国及我国周边的 VPS 都是差不多,就一个字——“贵”。美国 vps 主机。美国的是全球互联网的核心,主机业务十分兴旺发财,机房超多,VPS 商更是多如牛毛,价格天然是很便宜了。最便宜的每月 $5 左右就可以拿下,这也是众多站长“移民”美国的重要来源。

  • 怎样选择 VPS 商?

看口碑

选主机商,首先看口碑(down 机频次、ticket 解决能否及时、是否丧失过客户数据等等),这个我不多说,人肉下主机商即可,有个住址可以去看看,那就是 WHT(WebHostingTalk),一个超级热烈的地方,Kangzj 就不多说了。

一 ping,二 whois,三测试下载

很多 VPS 商会提供测试 IP,首先 ping 下,看延迟怎样样。一般说来,美国主机ping都在 160ms 以上,最最极品 160ms 多一点的算是极品了。下表简单地说了下,并不无误:

延迟 (ms) 位置(美国)
160-220 西岸(以 LA 为代表)
220-240 中部(以 Dallas 为代表)
250 以上东岸(以 WDC 为代表)

ping 值并不能代表什么,只能注解服务器反映速度,几十毫秒人类根蒂发现不到。ping 并不是选择服务器的第一圭臬。香港的 ping 可以说是全盘国外主机当中最好的,可以在 10ms 以内(广东),但是香港的国际入口小得不幸,有的时期 ping 再好,带宽太小,也不能买。
始末 IPWhois 可以查到 IP 是哪个机房的,那个机房的速度、稳定性等的评价,在网上评论必然比那个 VPS 商要多。通过这种举措还可以找到测试下载,假使 VPS 商没有提供测试下载,也能体验下载的速度怎么样。

  • 选何种虚拟技术的 VPS ?

虚拟技术用得最多的是 Xen 和 OpenVZ 。据 Rashost 讲“基于 XEN 的 Linux VPS (Para-virtualized VPS,半虚拟化VPS)的机能要优于其他虚拟化技术”,而在一些论坛上也听到过 OpenVZ 比 Xen 性能好的讲法,一时分不清谁对谁错。美国月付 vps。
但是,就我使用体味来看,Xen 性能一般来说要比 OpenVZ 的好。至于最主要的原因,我想,并不是由于 Xen 自身的性能有多好,而是 Xen 不容易超卖(基于 Xen 的 VPS 会像真机器一样用内存、磁盘,而 OpenVZ 的 VPS 不会)。
还有一点要注意的是,Xen 的 VPS 一般来说可以间接开 pptpd 和 OpenVPN 的VPN,而 OpenVZ 的 VPS 只能开 OpenVPN 的 VPN(要是默许没开,需相干客服打开 tap/tun 和 IPtable)。

Virtuozzo、VMWare 是两种收费的虚拟技术,性能上不好评价,价格上多是比前两种贵。还有一种新兴的虚拟技术叫做 KVM,传闻 VPS 之阻隔离做得特别好,性能也很不错,不过尚不很幼稚。

  • 什么 VPS 担任面板好用?

这里说的控制面板可不是主机的控制面板,而是控制 VPS 的面板,用来重装、重启和举办一些初级设置的面板。在 Kangzj 看来,面板有就行,VePortal、SolusVM、Parallel 等等或者 VPS 商自己设备的,效力也就那么几种而已,不会太出奇(Linode 的控制面板除外,做得太好了,功能超级超级强盛)。但是话说回来,这面板没有的话,还真是不行,连死机重启都要发 ticket,太不利便。

  • 若干好多内存够用?

这个很不好说,就以一个 PHP 网站为例。可以按 PV 来预算需要内存的大小。你看花样男子韩国版。一般说来,每天几百IP的网站,128M内存就可以委曲周旋。

  • 多少带宽够用?

说真话,只须内存够用,配置的流量一般够用。不要去贪什么不限流量,那都是幻影。万一遇上一个流量大户(很有可能,因为不限流量最吸收大户的眼力见识),总是攻克带宽,就等着愁闷死吧。一句话,流量不在多,够用就行。

  • 月付还是年付?

固然一般来说年付会有优惠,但是仍十分发起月付。为什么,原因有三:

~ 通常国外主机,IP 总有被封的危境。如果被封,加 IP 又是一笔费用,如果不能加IP,那这VPS基本上就废了(我用过一家的 VPS,就是不答应加或者换 IP)。
~ 当今速度快,一年之中不一定都快。Linode Fremont 机房就是活生生的例子,当然 Linode 可以收费换机房倒还好说。
~ VPS 商携款叛逃也说不定。这样的事情也不是没有先例,虽然是极端多数,但不是没有的,万一人品就到那个份上了……
总之,一句话,这一年之中可能产生很多你想不到的事,你有可能消费损这笔钱。一个月一个月的用,感受满意意了即速换,多舒坦。

  • VPS 的 CPU 限制方式?

虽然末了一个提,但这并不说明这一项不重要,CPU 是最容易马虎,但是十分重要的方面。
据我窥察,大约有两种CPU的共享方式,一种是 Equal Share,按字面兴味,就是大家平分使用(当然也生活可能遇到大户的危险);另一种,限制核数和频率。

限制频率有两种方式,一种是限制单核,给一个频率(譬喻 500MHz );另一种是给多个核,每个核给一个频率,然后相加(比如,给 5 个核,每个给 100MHz ),轮廓上说起来是一样的。
孰好孰赖,不是很好比较,大家各自想清楚就 OK 了。

Windows 下读取 Linux ext2/ext3 文件系统

非常喜欢这个工具,不仅仅能读取硬盘上的 ext2/ext3 分区内容,而且也能够读取带分区信息的 img 文件。这对读取某些厂商制作的 Linux 驱动盘十分有用。这个工具的作者还制作了很多有趣的工具,比如鼎鼎大名的 dd for windows

安装这个之后能够在 Windows 的资源管理器(Windows Explorer)中直接访问所需要查看的分区。就是不喜欢需要安装。

非常类似 Linux Reader,也能够在资源管理器中进行 ext2/ext3 文件系统的读写。不过它也提供 mount 工具进行操作,需要安装配合的驱动。有 Windows 7 i386 和 amd64 驱动支持。

Compile pciutils (lspci, setpci) in Windows x86,在 Windows x86 平台下编译 pciutils (lspci, setpci)

pciutils 是 Linux 下查看 PCI/PCIe 设备的利器。可以用来 dump PCI configuration space,可惜在 Windows 平台下类似功能的工具寥寥无几。在 pcituils 的官网(http://mj.ucw.cz/pciutils.html)说明中提到了可以在 Windows 平台下工作。那下面来介绍 Windows 下编译 pciutils 的经验。遗憾的是在 x86_64/amd64 下没有成功,如果各位有成功的经验希望留言来描述下,谢谢。

  1. 下载 pciutils source code。在 ftp://atrey.karlin.mff.cuni.cz/pub/linux/pci/ 可以下载到最新的版本。
  2. 然后需要找到编译环境,这里推荐使用 mingw 来编译。mingw 也有许多版本,我是用的是 mplayer 项目的压缩包。(http://nchc.dl.sourceforge.net/project/mplayer-win32/MinGW/MinGW%20BE%20gcc%204.2.5/MinGW-full-gcc-4.2.5-Dec-2010.7z
  3. 再者由于 pciutils 原生是在 Linux 下运用的,在 Windows 下需要提供能够访问 kernel space 的接口,pciutils 使用了 WinIO 来实现这个。所以还要去下载 WinIO,地址在这里 http://www.internals.com/utilities/WinIo.zip
  4. 好了解压好三个包后,运行 mingw 下的 msys.bat。看到的命令行就是操作的环境。其中已经包含了所要使用的 gcc 编译器。需要提的是,由于 pciutils 中的 configure 在 Windows 是没办法使用的。所以要使用预先编制好的 config.h 和 config.mk。这两个文件存放在 pciutils 目录的 win32目录中。将他们拷贝到 lib 目录下。
  5. 然后修改 lib/i386-io-windows.h 文件,找到 lib = LoadLibrary("WinIo.dll");(3.17版本中在第39行),将 WinIo.dll 替换成 WinIo32.dll(当然 64 位系统应该替换成 WinIo64.dll)。保存下。将 WinIo 压缩包中 Binaries 目录下的 WinIo 相对应的 dll 和 sys 文件拷贝到 pciutils 的更目录下。
  6. 接下来就开始正式编译工作了。非常简单,进入到 pciutils 的根目录下,打入 make 稍等片刻,lspci 和 setpci 就生成好了。

Windows 下的 lspci 和 setpci 的使用方法完全和 Linux 中一摸一样。使用 -t 查看 tree view,使用 -xxx 来 dump configuration space, 使用 -vvv 查看具体功能描述,这些都不再赘述。呵呵。

 

pciutils-3.1.7-x86 下载:Download

Linux 上安装 PPTP VPN

之前也在 VPS 上安装过 VPN,可是重启后总会无法使用。今天静下心来在一台 YardVPS 的 TREE1 上重新尝试了下(Linode 主机还是拿来做 Web Server 吧),仔细研究了每一步所做的操作。总算明白到底哪里出了问题。

系统上我选用了 Ubuntu 10.10 32bit,其实任何 Linux 系统都是一样的。

  • VPS 必须是 XEN 的。此外支持 MPPE,linux 2.6.15-rc1 以上内核均已安装,执行命令看 MPPE 是否安装了:
# modprobe ppp-compress-18 && echo success
  • 安装 PPTP

在 Ubuntu 上一条命令就能安装上 PPTP:

# apt-get install pptp

安装后可以通过下面的命令来启动,停止,重启和查看 PPTP 服务

# /etc/init.d/pptpd start
# /etc/init.d/pptpd stop
# /etc/init.d/pptpd restart
# /etc/init.d/pptpd status
  • PPTP 安装完成后,编辑 /etc/pptpd.conf 文件,去掉下面两行的注释或者直接添加这两行(在文件的最后)。这一步是配置 IP 地址的范围。

后者 remoteip 是设置客户端连接到这个 VPN 获得的 IP 地址,如果想增加连接,可扩大地址范围同时注意 MAX_CONNECTIONS 的值,保证它足够大。完成后重启 pptp。

注:如果完成后连接时出现 619 错误,请尝试将 pptp.conf 中的 logwtmp 一行注释掉,即前面加上 #。

  • 用户名和密码放在 /etc/ppp/chap-secrets 中,可直接编辑,如添加用户username,密码password,在 /etc/ppp/chap-secrets添加:
username pptpd password *

添加删除用户后不需要重启pptp,用户登录时pptp会验证生效。

  • 为了让你的用户连上 VPN 后能够正常地解析域名,我们需要手动设置 DNS。编辑 /etc/ppp/options,找到 ms-dns 这一项,设置你的 DNS。这里我推荐的是 Google 最近发布的 Public DNS,原因是因为好记,速度也不错。
ms-dns 8.8.8.8
ms-dns 8.8.4.4
  • 编辑 /etc/sysctl.conf 文件,找到 "net.ipv4.ip_forward=1" 这一行,去掉前面的注释。
net.ipv4.ip_forward=1
  • 运行下面的命令让配置生效,重启 PPTP 服务
sysctl -p
/etc/init.d/pptpd restart
  • 最后开启iptables转发
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

其中eth0是网卡名,然后重启pptp,再连接就可以上外网了。之前我的问题就出现在这里。可以将这个设置放到 rc.local 或者 iptables 的设置中。

  • 到这里就可以了。但是如果碰到奇怪的问题,查看和调试的方法是这样的。

配置 PPTP 会遇到挺多问题的,像中国移动的 cmnet 就用不了 PPTP,出现 619 错误。可以打开 /etc/ppp/pptpd-options 中的 debug 和 dump 选项,然后在 /var/log/debug 和 /var/log/messages 中查看出错信息。

Linux Kernel Loglevel 和 Linux Runlevel

Linux Kernel 有 8 个级别的 loglevel:

  • #define KERN_EMERG    "<0>"  /* system is unusable,系统不可用 */
  • #define KERN_ALERT    "<1>"  /* action must be taken immediately,立即执行 */
  • #define KERN_CRIT     "<2>"  /* critical conditions,紧急情况 */
  • #define KERN_ERR      "<3>"  /* error conditions,错误情况 */
  • #define KERN_WARNING  "<4>"  /* warning conditions,警告情况 */
  • #define KERN_NOTICE   "<5>"  /* normal but significant condition,常规但重要的情况 */
  • #define KERN_INFO     "<6>"  /* informational,消息类 */
  • #define KERN_DEBUG    "<7>"  /* debug-level messages,调试信息 */

设置为高级别的 loglevel 将会显示本身和低于他本身的所有信息。

 

Linux  有 7 种不同的运行级别(run level,或者说操作模式):

  • rc0 – System Halted,系统关机
  • rc1 – Single User Mode,单用户模式
  • rc2 – Single User Mode with Networking,单用户模式,网络功能启用
  • rc3 – Multi-User Mode – boot up in text mode,多用户模式,启动进入文本模式
  • rc4 – Not yet Defined,未定义
  • rc5 – Multi-User Mode – boot up in X Window,多用户模式,启动进入 X window
  • rc6 – Shutdown & Reboot,关机或重启

将 VirtualBox 硬盘镜像 vdi 转换为 KVM 的 qcow2

KVM (Kernel-based Virtual Machine)目前发展的如火如荼,Kernel 也加入了支持还有硬件虚拟,蛮有前途的家伙。其实我们可以使用很简单的几个步骤,就能将原来 VirtualBox 的虚拟机转换到 KVM 平台下边。主要也就是将原始硬盘镜像 (VirtualBox 使用 “vdi”)转换为 KVM 所兼容的格式(qcow2)。然后你就可以使用命令行或者 virt-manager 来启动 qcow2 的镜像的 KVM 虚拟机了。

虽然说步骤很简单,但是转换中需要占用大量硬盘空间,真的很大(需要先将 VirtualBox 的 .vdi 转换为原始硬盘镜像 raw)。

vdi 和 qcow2 都是经过压缩的,所以一个 10 GB 的 .vdi 或者 .qcow2 会使用比较少的空间。
不过,经过第一步转换,原始硬盘镜像 raw 将占用 10 GB(容量等同与你的虚拟机硬盘大小),
所以请准备同等大小的空间。

转换步骤(假设你有一个 VirtualBox 镜像,”ubuntu.vdi”):

Step 1. 将 VirtualBox 的 vdi 转换为 raw 原始硬盘镜像

VBoxManage clonehd --format RAW ubuntu.vdi ubuntu.img

Step 2. 转换 raw 原始硬盘镜像为 qcow2 镜像

qemu-img convert -f raw ubuntu.img -O qcow2 ubuntu.qcow2

好了一切完成了,简单吧。现在你就可以用 ubuntu.qcow2 来启动你的 KVM 虚拟机了。

测试下新的硬盘镜像(ubuntu.qcow2):

kvm -m 512 -usbdevice tablet -hda ubuntu.qcow

测试成功的话,你可以删除 raw 原始硬盘镜像了。至于 ubuntu.vdi 可以删了,也可以作为存档。

欢迎来到 KVM 的世界:)

 

Additional:

转换 vdi 到 vmdk 的方法:

VBoxManage.exe clonehd ubuntu.vdi ubuntu.vmdk  --format vmdk --variant standard

 

Linode Linux VPS 入门手册

选择数据中心

开始时,请登录 Linode 管理器,会有一个让你选择 VPS 所在地的界面。
你可以选择我们 4 个数据中心的任何一处。在决定选择一个数据中心的之前,为了提供给你的用户一个更好的速度体验,你会发现我们的下载测试数据中心非常有用。欧盟用户经常发现纽华克(Newark)的数据中心能提供最好的 ping 值,亚洲/澳大利亚的用户往往选择弗里蒙特(Fremont)的数据中心。你可以用测试页中的每个主机的 MTR 报告选择相对于你的特定区域能提供最好延迟的数据中心。之后不能轻易修改(可通过客服更改)。

部署一个 Linux 发行版

一旦你的 Linode 指定了一个数据中心,你将看到 Linode 面板,点击 "Distro Wizard" 链接开始部署 Linux。
你选择的 Linux 发行版应该基于你的需要,初学者可能以 Ubuntu 开始,Debian 是最流行的 Linux 发行,你可以在我们 About Us 页面的 "Interesting Statistics" 部分看到各种发行版的使用情况。
从可用的 Linux 发行版中选择一种,并决定你的这个 Linode 需要多大的磁盘空间,输入一个 root 密码(不要忘了,你以后需要它)然后点击 "Create Profile" 继续。
你不必把所有的磁盘空间都分配给你的 Linode,你可能想保留一些空间用于克隆一个磁盘镜像或整个配置档案。我们强烈的建议你保留缺省的 swap 空间大小,否则它可能会导致你的 Linode 在磁盘 IO 被多个虚拟主机共享的环境中陷入严重的 swap,从而导致严重的性能下降。

引导你的 Linode

一旦你的 Linode 部署了一个 Linux 发行,你可以点击 "Boot" 按钮启动它。
一个主机任务发出用于启动你的 Linode,这将需要几秒钟,但一旦你的任务开始执行,你的 Linode 会迅速启动。

获取你的 IP 地址

当你的 Linode 第一次启动,点击 Linode 管理器界面中的 "Network" 标签可以找到你的 Linode IP 地址。

运行安全更新

一旦你登录,你将想立即运行安全更新,这样做有助于抵挡因为在包中未解决的安全漏洞而对你 Linode 未经授权的访问。

# Debian
apt-get update
apt-get upgrade --show-upgraded
# Ubuntu
sudo apt-get update
sudo apt-get upgrade --show-upgraded
# CentOS/Fedora
yum update

设置主机名

现在你将为你的系统设置主机名,你可以选择任何你喜欢的名字,但是一些独特的有描述性的可能更好些,主机名是你机器的自称,你可以选择任何你想的,比如在这个例子中,我们叫它 "laughter"。

echo "laughter" > /etc/hostname
hostname -F /etc/hostname

KVM (Kernel-based Virtual Machine) 主机客户机互相访问方法总结

最近在做固态存储加速产品对 KVM 虚拟技术在云环境的测试,单节点时时常会遇到客户机需要访问主机资源的问题。最简单的方法是在主机 Linux 端建立网桥 Bridge,将真实网卡与虚拟客户端网卡进行桥接。这样客户端和主机可以平等的存在于网段中,相当于相互独立的不同主机。通过网络共享,SCP 等方法都可以相互访问。总结如下:

资源共享

  • 将虚拟机网卡与主机网卡进行桥接。推荐
    但这有个前提,就是主机所在网段需要有 DHCP 服务器为其分配 IP。如果没有的话,可以手动分配各自的 IP 地址进行访问。虚拟机与主机之间就可以平等的相互访问了。
auto br0
iface br0 inet dhcp
        bridge_ports eth0
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
  • 使用 RDP (Remote Desktop Protocol) 进行共享。
    Linux 下,可以使用 rdesktop 来实现 RDP 访问,Windows 下可以使用图形化的 Remote Desktop Connection (mstsc.exe)。
rdesktop 10.83.108.150:3389 -r disk:share_folder=/mnt/share
  • 通过加载主机硬盘分区共享
    这个方法需要在主机上建立硬盘分区并使用文件系统对其进行格式化,然后客户机在启动时同时加载上格式化好的分区,这样客户机和主机就能同时访问这个分区系统了。有一点需要注意,所使用的文件系统需要主机与客户机同时支持。这个方法我只在客户端与主机都是 Linux 系统中尝试成果过。对于 Linux 与 Windows 使用 VFAT 尝试失败了。
fdisk /dev/sdb
mkfs.ext3 /dev/sdb1
mount /dev/sdb1 /mnt/share_lun
kvm -m 1024 -boot c -drive file=/image_lun/VM_HDDs/centos32_install_01.qcow2,if=ide,index=0,boot=on -drive file=/dev/sdb1,if=virtio,aio=native

 

 

图形界面访问

  • VNC 共享
-vnc :0  # 指定虚拟桌面
-vnc 192.168.1.5:0  # 指定 IP + 桌面
-vnc 0.0.0.0:5  # 指定其他桌面
-vnc 0.0.0.0:1 -k en-us  # 指定字符集
####  带密码验证的访问 ####
-vnc 0.0.0.0:1,password -k en-us

下边的启动代码将虚拟机桌面映射入 VNC 1 号端口。

kvm -vnc :1 -m 1024 -boot c -drive file=/image_lun/VM_HDDs/centos32_install_01.qcow2,if=ide,index=0,boot=on -drive file=/dev/sdb,if=virtio,aio=native -drive file=/dev/sdc,if=virtio,index=2
  • RDP 共享

-redir 参数可以将虚拟桌面使用 RDP 映射到 TCP 的不同端口上。如下:

kvm -redir tcp:3389::3389 -m 1024 -boot c -drive file=/image_lun/VM_HDDs/centos32_install_01.qcow2,if=ide,index=0,boot=on -drive file=/dev/sdb,if=virtio,aio=native -drive file=/dev/sdc,if=virtio,index=2

这样就可以在 Windows 和 Linux 中通过 RDP 客户端访问了。Windows:使用图形化的 Remote Desktop Connection;Linux:rdesktop <IP地址>:<端口>


 

以上只是我使用 KVM 实现客户虚拟机与主机资源共享的方法。还有其他方法,希望大家补充。