Debian VPS 设置中文显示

244 views 八月 14, 11 by Timothy

最近看到YuchBerry出了新版,于是又打算把我的BB9000拿来折腾一下。不过第一步呢,就是需要在VPS上搭建YuchBerry的服务端,由于推送和发送的邮件中会用到中文,所以需要先给VPS设置中文环境,避免出现乱码。本教程将记录一下如何在Linux VPS中设置中文字体和显示中文,VPS的系统为Debian。 Read More

自动监控VPS负载并重启Web服务的脚本

483 views 五月 14, 11 by Timothy

VPS其实和一般的独立Linux服务器,在使用上基本没有区别,因为现在的虚拟化技术以及很成熟了,不过VPS和独服还是有一个很大的差异,那就是系统资源和性能上。通常,VPS都是由一个独立服务器划分出来的,所以在资源和性能优势上,远比不上独服。

就拿前段时间本VPS受到的DDOS攻击来说,其实DDOS也是利用大量发起的请求,导致被攻击VPS(或服务器)内存资源被耗尽,系统负载过高,而导致80端口的Http服务无响应,从而达到最终的攻击目的。DDOS虽然防不胜防,不过总还是有一些办法,能把DDOS的影响减小的。比如定时监控系统状态,然后自动重启Web服务,这也是本文要介绍的一种方法。 Read More

Linux下的SSH连接管理利器–PAC Manager

715 views 一月 06, 11 by Timothy

不知道拥有多个VPS的童鞋,平时是怎样来管理VPS的?在Windows下,我一般用SecureCRT来对VPS进行管理,原因是SecureCRT提供Tab标签管理的方式,多个VPS可以同时进行连接,并通过标签页进行快速切换,非常方便。至于在Linux下,我就只好老老实实的开个Console来连接VPS了。不过,今天发现一个很不错的开源软件,试用了一下,果然是Linux下管理多个VPS的利器,而且还有很多功能非常实用。

Pac Manager的官方地址,在SourceForge上:http://sourceforge.net/projects/pacmanager/
Linux下,可以直接下载发布的deb安装包进行安装。安装Pac Manager,还需要依赖另外一个安装包:libgnome2-vte-perl_0.09-1_i386.deb (64位系统,需要安装这个 libgnome2-vte-perl_0.09-1_amd64.deb),需要先安装依赖的安装包,再安装Pac Manager,否则会提示错误,找不到依赖的安装包,无法进行安装。

安装好后,就可以在主菜单的Internet子菜单中,找到Pac了。点击,即可启动。 Read More

Linux中随机密码的生成

275 views 七月 16, 10 by Timothy

Linux中提供方便的让我们生成随机密码的功能,并且生成的密码有一定的复杂度,符合密码规范。下面是Linux中生成随机密码的两种常用的方式:

1.用mkpasswd命令:

使用mkpasswd命令,需要事先安装expect模块,以CentOS为例:

1
yum -y install expect

安装好后,直接运行mkpasswd,就能生成随机密码了。并且命令还有参数,比如设置生成的随机密码的最小长度,等等,看看help就知道了。

2.用passwdgen命令:

和mkpasswd大致一致,需事先安装passwdgen模块:

1
yum -y install passwdgen

安装好后,直接运行passwdgen,即可得到随机密码,同样passwdgen命令也有参数,可以参考help。

Ubuntu 10.04 LTS 安装手记及体验

735 views 五月 02, 10 by Timothy

从Ubuntu的官网发布开始倒计时的时候,我就掰着手指,等着新版Ubuntu的最终发布。在临近发布的时候,还有爆料说Ubuntu发现重大bug,导致安装后引导程序会出现问题,不过这个BUG在最终发布的时候还是修复了。正式发布的第二天,俺就迫不及待的从官网拖了一个Ubuntu 10.04 64bit的Desktop版本,准备装在笔记本上,原因是笔记本是4G内存(嘿嘿……)。 继续按照老的套路,从U盘安装Ubuntu,这样可以不用刻光盘,避免浪费,且安装速度快,绿色,环保。整个安装过程很简洁,而且不到10分钟,就搞定了,这速度,比起安装Windows,实在有点出乎意料。而且比起自家大哥Ubuntu 9系列还要快,因为Ubuntu 9在安装时还要在线下载一些东西,会耽误一定的时间。

安装完毕,第一次进入Ubuntu 10,给人比较耳目一新的感觉,特比是菜单栏上多出的一个聊天帐号设置,包括众多兼容的实时聊天软件,这也是Ubuntu 10主打的一特色:加强的社区交互功能。另外值得一提的是Ubuntu One,Ubuntu的云集算服务功能,相当不错。目前Ubuntu对硬件的识别更加友好了,在ThinkPad的机器上,根本不用安装任何驱动,Ubuntu已经能自动识别包括:声卡/无线网卡/以太网卡/声音调整按钮/蓝牙/亮度调节 等等驱动,非常人性化。而且发现Ubuntu本身已经自带了非常流行的iBus输入法,只需要再在机器的语言支持中,装上中文和一些其他附带的东东,就可以方便的用iBus输入中文了,这又算是个亮点。

作为一款粉丝众多的Linux发行版本,Ubuntu在用户易用性和UI上花了不少的功夫,并且自带的一系列软件,足以满足用户一般的上网/图片处理/文字处理等需求,看来国内用户要逐步脱离Win的束缚,迁移到Linux的日子不远了……

本文纯属自己使用Ubuntu Linux的一些流水帐和感受,欢迎各位同学交流。

PS:本文发自 Ubuntu 10.04 LTS 64bit Desktop Edition ,小小纪念一下。

VPS SSH故障及解决

463 views 三月 16, 10 by Timothy

这两天加班,没时间顾及VPS。晚上没事用SecureCRT,通过SSH连接VPS,发现VPS拒绝连接。奇怪了,VPS的站点能访问,iptables也没限制SSH端口,除非是sshd服务挂了。登陆VPS的web管理界面一看,果然sshd这进程从列表中消失了。直接运行/etc/init.d/ssh start,系统返回异常:ssh 无法启动, /dev/null is not a character device 这错误提示看得我一头雾水,难道sshd服务,还跟那个/dev/null设备有关系?带着疑问去请教了下google老师,原来别人也有遇到这样的问题。sshd确实和这设备有关,如果/dev/null被损坏,ssh启动,就会有如此提示。既然问题找到了,是/dev/null损坏,我们需要重建一个,用下面的命令即可修复:

1
2
3
rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null

待/dev/null重建好后,直接在VPS的web管理页面中,运行 /etc/init.d/ssh start,久违的sshd服务就回来了。回忆了下,前两天打开了corn服务,有个每天定时执行的和日志关的脚本,会去修改/dev/null,立马屏蔽之,重启cron服务后,一切正常。

vps中的iptables规则设置范例

1,037 views 二月 26, 10 by Timothy

忙乎了一两天,俺的VPS算是上线了,基于Ubuntu Linux的,512MB内存,20G硬盘,1TB月流量,赠送2个IP,还不错。不过,现在还没有把博客迁移过去的打算,此VPS仅作为练手而用,只是建了一些ssh账号,供自己和同事跨栏用,还简单的搭建了基于Nginx+MySql+PHP+FastCGI的WordPress环境,并成功拉过来俺的一位同事在上面安了个blog,嘿嘿。
提到VPS,最重要的还是安全,毕竟你的系统是直接面向公网,如果不加强防范,很容易成为别人手里的肉鸡。Linux中的iptables,用过的同学都知道,是一个基于Linux内核的防火墙,功能比较强大,下面是iptable的一些常用的规则设置:

1
2
3
4
5
6
7
8
9
10
11
12
        /sbin/iptables -P INPUT DROP              #禁止掉服务器所有入口请求,后面的规则只允许部分常用的服务端口
        /sbin/iptables -P OUTPUT ACCEPT          #允许服务器访问出口请求
        /sbin/iptables -A INPUT -i lo -j ACCEPT    #允许本地接口访问
        /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP #禁止ping,因为ping是基于icmp协议的
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT    #允许部分常用端口入口请求访问
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
        /sbin/iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
        /sbin/iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT  #允许所有已经连接端口请求
        /sbin/iptables -A INPUT -p all -m state --state INVALID,NEW -j DROP              #DROP掉所有失效或者新的请求

可以把上述脚本保存起来,执行,然后用命令/sbin/iptables -L -n查看规则是否生效

把上述脚本再完善一下:

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:~/bin
export PATH
 
case "$1" in
start)
        echo -n "Staring to write your Iptbales:..."
        /sbin/iptables -P INPUT DROP
        /sbin/iptables -P OUTPUT ACCEPT
        /sbin/iptables -A INPUT -i lo -j ACCEPT
        /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
        /sbin/iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
        /sbin/iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
        /sbin/iptables -A INPUT -p all -m state --state INVALID,NEW -j DROP
        echo "Ok"
 
;;
stop)
        echo -n "Cleaning your Iptables:..."
        /sbin/iptables -F
        /sbin/iptables -X
        /sbin/iptables -Z
	/sbin/iptables -P INPUT ACCEPT
	/sbin/iptables -P OUTPUT ACCEPT
        echo "Ok"
;;
restart)
        echo -n "Cleaning your Iptables:..."
        /sbin/iptables -F
        /sbin/iptables -X
        /sbin/iptables -Z
        echo "Ok"
        echo -n "Staring to write your Iptbales:..."
        /sbin/iptables -P INPUT DROP
        /sbin/iptables -P OUTPUT ACCEPT
        /sbin/iptables -A INPUT -i lo -j ACCEPT
        /sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
        /sbin/iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT       
        /sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
        /sbin/iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
        /sbin/iptables -A INPUT -p all -m state --state INVALID,NEW -j DROP
        echo "Ok"
;;
*)
        echo "Usage: $0          {start|stop|restart}"
esac
 
exit 0

这样,我们就可以用start/stop/restart的参数来启用、禁止iptables防护了,很方便。另外,可以把此脚本放入/etc/init.d,让它像系统服务一样,在VPS启动的时候自动运行。

PS:
1.此脚本参考自网上,并作了部分修改
2.搜狗云输入法,也有郁闷的时候,在写文章的时候,候选词半天不出来,很卡,囧rz 是我打字速度太快,还是网速很慢?……

台式机换上了Ubuntu

797 views 二月 21, 10 by Timothy

这段时间对Linux相当痴迷,玩了下CentOS,现在又看上了Ubuntu。对Ubuntu偶早有所闻了,以前也在虚拟机上装过,那漂亮的UI是各个Linux版本中相当出众的,安装、维护的简单和方便,也是至今都Ubuntu拥有众多追随者的原因。正好,俺家中有一台老牛机(以前大学时候用的台式机),这机器历史算长久了,从大二一直跟随俺到现在,有7、8年历史了。毕业后把这台机器略升级了一下,到现在都一直闲置在书房中,完全成了摆设。自从用上了笔记本,老婆也用上了上网本,这台台式机更是没人用了。昨天突然心血来潮,决定在老牛机上装个Ubuntu玩玩,没事了还可以开着下下高清BT,充分利用下闲置资源。

老牛机配置如下: 
CPU:  Athlon 1700+ 
内存:  KingSton 1.5GB(1G*1+256*2)
硬盘:  希捷80G IDE接口
显卡:  Geforce 6200
主板:  nForce2

开始行动

说干就干,首先在Ubuntu的老家拖了个最新的Ubuntu 9.10 32bit Desktop Edition的ISO。老牛机的光驱,经久失修,已经是个残废了。本来想扔掉的,但机箱面板那个挡板也被我搞掉了,扔掉光驱就有个缺口,不美观,只有留下了。主板支持4个USB接口,两个坏掉了,剩下两个还可用,刚好偶又有个2G的U盘(捡来的),所以打算通过U盘来安装系统。用U盘装系统好处多多,不用刻盘,并且速度比光驱快,嘿嘿。

用Ultra ISO利器,把安装镜像写入到U盘:

ubuntu
写完后的U盘驱动器图标:
ubuntu2 

安装系统

拔下U盘,插上老牛机器,一步一步安装,Ubuntu从此跑在了老牛机上,发现比以前的XP快不少。并且Ubuntu支持大部分硬件,无须驱动,显卡驱动可以用Ubuntu默认的,也可以自己单独安装。安装界面也相当的友好,即使是第一次使用的用户,也能根据向导来完成安装。

一点使用体验

1.5G的内存,运行Linux当然会快很多,从开机和系统加载的速度就可以感受到,比以前的XP快不少。装上显卡驱动后,能打开一些可视化特效,比较炫。
由于Ubuntu自带Firefox浏览器,于是立马装上了AutoProxy插件,再用Linux自带的ssh命令,加上一个国外的SSH帐号,立马实现了跨栏的效果……为了以后方便,做了个简单的shell脚本:

1
2
echo "ssh -N -D 127.0.0.1:7070 ssh-account@server-address" > connect.sh
chmod +x connect.sh

-N: 不需要shell登陆

-D: 建立本地端口映射,这里使用的7070端口,把这端口配置到AutoProxy里面去,就OK了

后面是ssh-username@server-ip

控制台运行此脚本后,会提示输入ssh密码,输入后,连接完毕,可以打开Firefox畅游了

关于BT下载工具,偶用Transmission,貌似Ubuntu已经自带了,没有的也可以单独安装。

关于中文输入法,偶一般是在浏览网页时输入中文,Firefox可以装一个搜狗的云输入插件,方便、绿色、环保,强烈推荐下。

小结一下

老牛机器装上Linux感觉挺赞,如同重新焕发了活力一般。家有闲置老牛机的同学不妨试一试。