??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品一区电影,日本欧美久久久久免费播放网,福利网站在线观看http://www.aygfsteel.com/RomKK/category/24385.htmlxjava技?zh-cnTue, 24 Jul 2007 20:27:32 GMTTue, 24 Jul 2007 20:27:32 GMT60linux redhat9.0/fedora4.0下adsl上网和配|全q程http://www.aygfsteel.com/RomKK/archive/2007/07/24/132167.htmlRomKKRomKKTue, 24 Jul 2007 14:49:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132167.htmlhttp://www.aygfsteel.com/RomKK/comments/132167.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132167.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132167.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132167.html

linux联盟原创www.xxlinux.com www.linuxunion.org转脓h明出?作者上上智

看了q么久的blog,我自写一炚w|哈
现在有很多想学习linux的h, 是因ؓ不能配置上网,所以不惛_习现在我从adsl配置到nat全过E如?
1)安装rp-pppoe-3.5-2?br>在安装系l时,Ҏ用户一般选择全部安装?那就安装?以后rpm, 或者tarball?q很方便,对初学?
eg:
rpm -ivh rp-pppoe-3.5-2.rpm
tarball 安装:
tar zxvf rp-pppoe-3.5-2.tar.gz
cd rp-pppoe-3.5-2
./configure
make
make install
2)rp-pppoe-3.5-2配置
步骤:
a) adsl-setup
出现:
Welcome to the ADSL client setup. First, I will run some checks on
your system to make sure the PPPoE client is installed properly...
                                                   
The following DSL config was found on your system:
                                                   
Device:     Name:
ppp0
                                                   
Please enter the device if you want to configure the present DSL config
(default ppp0) or enter 'n' if you want to create a new one:
//q是我已l安装过?主要是写文档:选择默认按回?br>LOGIN NAME
                                                   
Enter your Login Name (default lanlgn409ldj@zgcnc):
//q是我已l安装过?:没有安装是输入adsl用户?br>INTERFACE
                                                   
Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethX, where 'X' is a number.
(default eth0):
//选择默认按回?br>Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some problems with demand-activated links.
Enter the demand value (default no):
//选择默认按回?br>DNS
Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here:
// 输入server自动得到dns,server的ip
PASSWORD
Please enter your Password:

USERCTRL
Please enter 'yes' (two letters, lower-case.) if you want to allow
normal user to start or stop DSL connection (default yes):
//选择默认按回车问你是否连?br>Please choose the firewall rules to use. Note that these rules are
very basic. You are strongly encouraged to use a more sophisticated
firewall setup; however, these will provide basic security. If you
are running any servers on your machine, you must choose 'NONE' and
set up firewalling yourself. Otherwise, the firewall rules will deny
access to all standard servers like Web, e-mail, ftp, etc. If you
are using SSH, the rules will block outgoing SSH connections which
allocate a privileged source port.
The firewall choices are:
0 - NONE: This script will not set any firewall rules. You are responsible
      for ensuring the security of your machine. You are STRONGLY
      recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
          for a LAN
Choose a type of firewall (0-2):
//是否讄firwall
Do you want to start this connection at boot time?
Please enter no or yes (default no):
//启动时是否连?br>Do you want to start this connection at boot time?
Please enter no or yes (default no):
** Summary of what you entered **
Ethernet Interface: eth0
User name:       lanlgn409ldj@zgcnc
Activate-on-demand: No
DNS:           Do not adjust
Firewalling:     NONE
User Control:     yes
Accept these settings and adjust configuration files (y/n)?
//是否写入配置文g?选择 y
3)假如你是用别人的macq接
1 redhat9.0改mac:
ifconfig eth0 down
ifconfig eth0 hw ether 5254ab323d51
ifconfig eth0 up
ifup ppp0
2 fedora 4.0改mac:
ifdown eth0
ifconfig eth0 hw ether 5254ab323d51
ifup eth0
ifup ppp0 & adsl-start
4)试一?br>ping modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT   ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT     ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE//不是adsl也可以把ppp0Ҏeth0 ,
1一般网卡nat:
[root@test root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
[root@test root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168..255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168..0
ONBOOT=yes
2 两块|卡nat:
只是那?eth0:0 Ҏ?eth1 而已?其它都是一L讄
6)dns 讄
在里?etc/resolv.conf
把你的ip写入里面?br>nameserver 192.168.0.1
然后重启要不?客户Z能上|?/p>



RomKK 2007-07-24 22:49 发表评论
]]>
linux中的压羃文ghttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132166.htmlRomKKRomKKTue, 24 Jul 2007 14:47:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132166.htmlhttp://www.aygfsteel.com/RomKK/comments/132166.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132166.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132166.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132166.html
问题引发:
 服务器每天生大量的pȝ日志,查询日志,目前日志q块没有Z门拿出来做分?处理q些日志.随着旉以及服务器访问量的与日俱?不小心就会出现硬盘被日志文g占满的现?如果删除q些日志,以后日志分析也许要用?不删现有服务会受到媄?以后可能会专门有一台服务器来处理这些日?分析日志,估算出性能瓉,以及得出相应的有价值的商业信息.所以只能时处理一?
看了一下linux的压~格式好多种,忽然一看有些晕,发一关于linux压羃文g的详l文?摘自:Unix爱好者家园unix-cd.com  ,以下是原?br> 
对于刚刚接触 Linux 的h来说Q一定会l?Linux 下一大堆各式各样的文件名l搞晕。别个不_单单压~文件ؓ例,我们知道?Windows 下最常见的压~文件就只有两种Q一?.zipQ另一个是 .rar。可?Linux ׃同了Q它?gz?tar.gz、tgz、bz2?Z?tar {众多的压羃文g名,此外 windows 下的 .zip ?.rar 也可以在 Linux 下用,不过?Linux 使用 .zip ?.rar 的h太了?br>   在具体ȝ各类压羃文g之前呢,首先要弄清两个概念:打包和压~。打包是指将一大堆文g或目录什么的变成一个ȝ文gQ压~则是将一个大的文仉过一些压~算法变成一个小文g。ؓ什么要区分q两个概念呢Q其实这源于 Linux 中的很多压羃E序只能针对一个文件进行压~,q样当你惌压羃一大堆文gӞ你就得先借助另它的工具将q一大堆文g先打成一个包Q然后再原来的压羃E序q行压羃?br>  Linux下最常用的打包程序就?tar 了,使用 tar E序打出来的包我们常UCؓ tar 包,tar 包文件的命o通常都是?.tar l尾的。生?tar 包后Q就可以用其它的E序来进行压~了Q所以我们先了解一?tar 命o的基本用法:
tar 命o的选项有很?用man tar可以查看?Q但我们通常需要的是那么几个Q?br>  # tar -cf all.tar *.jpg
  q条命o是将所?.jpg 的文件打成一个名?all.tar 的包?c 是表CZ生新的包Q?f 指定包的文g名?br>  # tar -rf all.tar *.gif
  q条命o是将所?gif的文件增加到 all.tar 的包里面厅R?r 是表C增加文件的意思?br>  # tar -uf all.tar logo.gif
  q条命o是更新原?tar ?all.tar ?logo.gif 文gQ?u是表C更新文件的意思?br>  # tar -tf all.tar
  q条命o是列?all.tar 包中所有文Ӟ-t 是列出文件的意?br>  # tar -xf all.tar
  q条命o是解?all.tar 包中所有文Ӟ-t 是解开的意?br>  以上是 tar 的最基本的用法。ؓ了方便用户在打包解包的同时可以压~或解压文gQtar 提供了一U特D的功能。这是 tar 可以在打包或解包的同时调用其它的压羃E序Q比如调?gzip、bzip2 {?br>Q一Q?tar 调用 gzip
  gzip ?GNU l织开发的一个压~程序,.gz l尾的文件就?gzip 压羃的结果。与 gzip 相对的解压程序是 gunzip。tar 中?-z q个参数来调?gzip。下面来举例说明一下:
  # tar -czf all.tar.gz *.jpg
  q条命o是将所?.jpg 的文件打成一?tar 包,q且其?gzip 压羃Q生成一?gzip 压羃q的包,包名?all.tar.gz?br>  # tar -xzf all.tar.gz
  q条命o是将上面产生的包解开?br>Q二Q?tar 调用 bzip2
  bzip2 是一个压~能力更强的压羃E序Q?bz2 l尾的文件就?bzip2 压羃的结果。与 bzip2 相对的解压程序是 bunzip2。tar 中?jq个参数来调?gzip。下面来举例说明一下:
  # tar -cjf all.tar.bz2 *.jpg
  q条命o是将所?.jpg 的文件打成一?tar 包,q且其?bzip2 压羃Q生成一?bzip2 压羃q的包,包名?all.tar.bz2?br>  # tar -xjf all.tar.bz2
  q条命o是将上面产生的包解开?br>Q三Q?tar 调用 compress
  compress 也是一个压~程序,但是好象使用 compress 的h不如 gzip ?bzip2 的h多?Z l尾的文件就?bzip2 压羃的结果。与 compres s相对的解压程序是 uncompress。tar 中?-Z q个参数来调?gzip。下面来举例说明一下:
  # tar -cZf all.tar.Z *.jpg
  q条命o是将所?.jpg 的文件打成一?tar 包,q且其?compress 压羃Q生成一?uncompress 压羃q的包,包名?all.tar.Z
  # tar -xZf all.tar.Z
  q条命o是将上面产生的包解开
有了上面的知识,你应该可以解开多种压羃文g了,下面对于 tar pd的压~文件作一个小l:
Q一Q、对?.tar l尾的文?br>  tar -xf all.tar
Q二Q、对?.gz l尾的文?br>  gzip -d all.gz
  gunzip all.gz
Q三Q、对?.tgz ?.tar.gz l尾的文?br>  tar -xzf all.tar.gz
  tar -xzf all.tgz
Q四Q、对?.bz2 l尾的文?br>  bzip2 -d all.bz2
  bunzip2 all.bz2
Q五Q、对?tar.bz2 l尾的文?br>  tar -xjf all.tar.bz2
Q六Q、对?.Z l尾的文?br>  uncompress all.Z
Q七Q、对?tar.Zl尾的文?br>  tar -xZf all.tar.z
  另外对于 Window 下的常见压羃文g .zip ?.rarQLinux 也有相应的方法来解压它们Q?br>Q1Q对?.zip
  linux 下提供了 zip ?unzip E序Qzip 是压~程序,unzip 是解压程序。它们的参数选项很多Q这里只做简单介l,依旧举例说明一下其用法Q?br>  # zip all.zip *.jpg
  q条命o是将所?.jpg 的文件压~成一?zip ?br>  # unzip all.zip
  q条命o是将 all.zip 中的所有文件解压出?br>Q2Q对?.rar
  要在 linux 下处?.rar 文gQ需要安?RAR for LinuxQ可以从|上下蝲Q但要记住,RAR for Linux
不是免费的;可从 http://www.rarsoft.com/download.htm 下蝲 RAR for Linux 3.2.0Q然后安装:
  # tar -xzpvf rarlinux-3.2.0.tar.gz
  # cd rar
  # make
  q样安装好了,安装后就有了 rar ?unrar q两个程序,rar 是压~程序,unrar 是解压程序。它们的参数选项很多Q这里只做简单介l,依旧举例说明一下其用法Q?br>  # rar a all *.jpg
  q条命o是将所?.jpg 的文件压~成一?rar 包,名ؓ all.rarQ该E序会将 .rar 扩展名将自动附加到包名后?br>  # unrar e all.rar
  q条命o是将 all.rar 中的所有文件解压出?br>  到此Q我们已l介l过 linux 下的 tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar {程式,你应该已l能够用它们对 .tar?gz?tar.gz?tgz?bz2?tar.bz2?Z?tar.Z?zip?rar q?10 U压~文件进行解压了Q以后应该不需要ؓ下蝲了一个Y件而不知道如何?Linux 下解开而烦g。而且以上Ҏ对于 Unix 也基本有效?br>  本文介绍?linux 下的压羃E式 tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar {程式,以及如何使用它们?.tar?gz?tar.gz?tgz?bz2?tar.bz2?Z?tar.Z?zip?rar q?10 U压~文件进行操作?/br>

RomKK 2007-07-24 22:47 发表评论
]]>
完整RedHat9.0-vsftp配置大全http://www.aygfsteel.com/RomKK/archive/2007/07/24/132165.htmlRomKKRomKKTue, 24 Jul 2007 14:45:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132165.htmlhttp://www.aygfsteel.com/RomKK/comments/132165.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132165.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132165.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132165.html

3.2 VSFTP 安全与效能兼备的ftp 服务?
3.2.1 VSFTP 概述
FTPQfile transfer protocolQ这是档案传输的通讯协议Q也是一般最常用来传送档案的方式。读者在使用RedHat9 的时候,可能会感受到ftp server 有一些改变:W一Q就是ftp server 只剩下vsftpQ原有的wuftp {都没放?W二Q就是vsftp 从XINETD 中独立出来,q将讑֮档从/etc/vsftpd.conf 之中Ud/etc/vsftpd/vsftpd.conf?
Z么做q样的改变?可以惌的是vsftp 已有独立q作的能力,不需要XINETD 来做更进一步的控Qƈ且类似sendmail、httpd、ssh、samba {,设定文件的攑օ/etc 下独立的目录?
FTP 分ؓ两类Q一UؓPORT FTPQ也是一般的FTP 另一cLPASVFTPQ分q如下:
PORT FTP
q是一般Ş式的FTPQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,由FTP server 端会建立数据传输频道Q默认gؓ20Q也是跟port 20 建立联机Qƈ透过port 20 作数据的传输?
PASV FTP
跟PORT FTP cMQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,会由client 端做出数据传输的hQ包括数据传输port 的数字?
q两者的差异ZQPORT FTP 当中的数据传输port 是由FTP server 指定Q而PASV FTP 的数据传输port 是由FTP client 军_。通常我们使用PASV FTPQ是在有防火墙的环境之下Q透过client 与server 的沟通,军_数据传输的port?br>3.2.2 范例
3.2.1. 直接启动VSFTP 服务
q个范例是套用RedHat 的预设范?直接启动vsftp?
[root@relay vsftpd]# /sbin/service vsftpd start
Starting vsftpd for vsftpd: OK ]
3.2.2. 更换port 提供服务Q将预设的port 21 更换?121
Z安全Q或是以port 来区隔不同的ftp 服务Q我们可能会ftp port 改ؓ21 之外的portQ那么,可参考以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
listen_port=2121
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.3. 特定使用者peter、john 不得变更目录
使用者的预设目录?home/usernameQ若是我们不希望使用者在ftp 时能?
切换C一层目?homeQ则可参考以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
底下三?
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改ؓ
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
Step2. 新增一个档? /etc/vsftpd/chroot_list
内容增加两行Q?
peter
john
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
若是peter Ʋ切换到根目录以外的目录Q则会出C下警告:
ftp> cd /home
550 Failed to change directory.
3.2.4. 取消anonymous d
若是读者的L不希望用者匿名登入,则可参考以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf
?
anonymous_enable=YES
改ؓ
anonymous_enable=NO
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.5. 安排Ƣ迎话语
若是我们希望使用者在dӞ能够看到Ƣ迎话语Q可能包括对该主机的说明Q或是目录的介绍Q可参考以下步骤?br>首先定?etc/vsftpd/vsftpd.conf 当中是否有底下这一?
dirmessage_enable=YES
RedHat9 的默认值是有上面这行的?
接着Q在各目录之中,新增名ؓ.message 的档案,再这边假设有一个用者test1Q且此用者的根目录下有个目录名ؓabcQ那首先我们?home/test1
之下新增.messageQ内容如下:
Hello~ Welcome to the home directory
This is for test only...
接着Q在/home/test1/abc 的目录下新增.messageQ内容如下:
Welcome to abc's directory
This is subdir...
那么Q当使用者test1 dӞ会看C下讯息:
230- Hello~ Welcome to the home directory
230-
230- This is for test only...
230-
若是切换到abc 的目录,则会出现以下讯息Q?
250- Welcome to abc's directory
250-
250- This is subdir ...
3.2.6. 对于每一个联机,以独立的process 来运?br>一般启动vsftp Ӟ我们只会看到一个名为vsftpd 的process 在运作,但若是读者希望每一个联机,都能以独立的process 来呈玎ͼ则可执行以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
setproctitle_enable=YES
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
使用ps -ef 的指令,可以看告不同使用者联机的情ŞQ如下图所C:
[root@home vsftpd]# ps -ef|grep ftp
root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244:
connected
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1:
IDLE
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244:
connected
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2:
IDLE
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp
[root@home vsftpd]#
3.2.7. 限制传输档案的速度Q?br>本机的用者最高速度?00KBytes/sQ匿名登入者所能用的最高速度?0KBytes/s
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下两行
anon_max_rate=50000
local_max_rate=200000
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这辚w度的单位ؓBytes/sQ其中anon_max_rate 所限制的是匿名d?
使用者,而local_max_rate 所限制的是本机的用者。VSFTPD 对于速度的限
Ӟ范围大概?0%?20%之间Q也是我们限制最高速度?00KBytes/sQ?
但实际的速度可能?0KBytes/s ?20KBytes/s 之间Q当Ӟ若是频宽不
Ӟ数g低于此限制?br>3.2.8. 针对不同的用者限制不同的速度Q?br>假设test1 所能用的最高速度?50KBytes/sQtest2 所能用的最高速度?00KBytes/s?
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
user_config_dir=/etc/vsftpd/userconf
Step2. 新增一个目录:/etc/vsftpd/userconf
mkdir /etc/vsftpd/userconf
Step3. ?etc/vsftpd/userconf 之下新增一个名为test1 的档?
内容增加一行:
local_max_rate=250000
Step4. ?etc/vsftpd/userconf 之下新增一个名为test2 的档?
内容增加一行:
local_max_rate=500000
Step5. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.9-1. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>预设的ftp port:21 以及ftp data port:20
启动VSFTPD 之后执行以下两行指oQ只允许port 21 以及port 20 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
3.2.9-2. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>ftp port:2121 以及ftp data port:2020
Step1. 执行以下两行指oQ只允许port 2121 以及port 2020 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
Step2. 修改/etc/vsftpd/vsftpd.conf
新增底下两行
listen_port=2121
ftp_data_port=2020
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这边要注意Q?? 两个例子中,ftp clientQ如cuteftpQ的联机方式不能够选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp
serverQ但是执行ls、get {等的指令时Q便无法q作?br>3.2.10. 建置一个防火墙下的ftp serverQ用PASS FTP modeQ?br>ftp port:2121 以及ftp data port ?981 ?986?
Step1. 执行以下两行指oQ只允许port 2121 以及port 9981-9990 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
Step2. 修改/etc/vsftpd/vsftpd.conf
新增底下四行
listen_port=2121
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这边要注意Q在10 q个例子中,ftp clientQ如cuteftpQ的联机方式必须选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp serverQ但是执行ls,get {等的指令时Q便无法q作?br>3.2.11. vsftpd 与TCP_wrapper l合
若是读者希望直接在/etc/hosts.allow 之中定义允许或是拒绝的来源地址Q可执行以下步骤。这是简易的防火墙设定?
Step1. 定/etc/vsftpd/vsftpd.conf 之中tcp_wrappers 的设定ؓYESQ如下图所
C:
tcp_wrappers=YES
q是RedHat9 的默认|基本上不需修改?
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
Step3. 讑֮/etc/hosts.allowQ譬如提?11.22.33.4 以及10.1.1.1 ?0.1.1.254 q?
U,则可做下图之讑֮Q?
vsftpd : 111.22.33.4 10.1.1. : allow
ALL : ALL : DENY
3.2.12. vsftpd q入XINETD
若是读者希望将vsftpd q入XINETD 之中Q也是7.x 版的预设讑֮Q那
么读者可以执行以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
?
listen=YES
改ؓ
listen=NO
Step2. 新增一个档案: /etc/xinetd.d/vsftpd
内容如下Q?
service vsftpd
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
port = 21
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
Step3. 重新启动xinetd
[root@home vsftpd]# /sbin/service xinetd restart
Stopping xinetd: OK ]
Starting xinetd: OK ]
3.2.3 讑֮档说?br>在范例中Q有些省略的讑֮可以在这Ҏ刎ͼ譬如联机的L、同一个位址的联机数、显C档案拥有者的名称{等Q希望读者细dQ可以做出最适合自己的设定?br>格式
vsftpd.conf 的内定w常单U,每一行即Z设定。若是空白行或是开头ؓ#的一行,会被忽略。内容的格式只有一U,如下所C?
option=value
要注意的是,{号两边不能加空白,不然是不正确的设定?
Q=Qascii 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
ascii_download_enable
控是否可用ASCII 模式下蝲。默认gؓNO?
ascii_upload_enable
控是否可用ASCII 模式上传。默认gؓNO?
Q=Q个别用者设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=
chroot_list_enable
如果启动q项功能Q则所有的本机使用者登入均可进到根目录之外的数据夹Q除了列
?etc/vsftpd.chroot_list 之中的用者之外。默认gؓNO?
userlist_enable
用法QYES/NO
若是启动此功能,则会d/etc/vsftpd.user_list 当中的用者名U。此功能可以在询问密码前就出现p|讯息Q而不需要检验密码的E序。默认gؓ关闭?
userlist_deny
用法QYES/NO
q个选项只有在userlist_enable 启动时才会被验。如果将q个选项设ؓYESQ则?etc/vsftpd.user_list 中的使用者将无法d 若设为NO Q?则只有在
/etc/vsftpd.user_list 中的使用者才能登入。而且此项功能可以在询问密码前出现错误讯息,而不需要检验密码的E序?
user_config_dir
定义个别使用者设定文件所在的目录Q例如定义user_config_dir=/etc/vsftpd/userconfQ且L上有使用者test1,test2Q那我们可以在user_config_dir 的目录新增文件名为test1 以及test2。若是test1 dQ则会读取user_config_dir 下的test1 q个档案内的讑֮。默认gؓ无?
Q=Q欢q语讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
dirmessage_enable
如果启动q个选项Q用者第一ơ进入一个目录时Q会查该目录下是否有.messageq个档案Q若是有Q则会出现此档案的内容,通常q个档案会放|欢q话语,或是对该目录的说明。默认gؓ开启?
banner_file
当用者登入时Q会昄此设定所在的档案内容Q通常为欢q话语或是说明。默认gؓ无?
ftpd_banner
q边可定义欢q话语的字符Ԍ相较于banner_file 是档案的形式Q而ftpd_banner 是字串的格式。预设ؓ无?
Q=Q特D安全设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
chroot_local_user
如果讑֮为YESQ那么所有的本机的用者都可以切换到根目录以外的数据夹。预讑րgؓNO?
hide_ids
如果启动q项功能Q所有档案的拥有者与组都ؓftpQ也是使用者登入用ls -al之类的指令,所看到的档案拥有者跟组均ؓftp。默认gؓ关闭?
ls_recurse_enable
若是启动此功能,则允许登入者用ls -R q个指o。默认gؓNO?
write_enable
用法QYES/NO
q个选项可以控制FTP 的指令是否允许更改file systemQ譬如STOR、DELE?
RNFR、RNTO、MKD、RMD、APPE 以及SITE。预设是关闭?
setproctitle_enable
用法QYES/NO
启动q项功能Qvsftpd 会将所有联机的状况已不同的process 呈现出来Q换句话_使用ps -ef q类的指令就可以看到联机的状态。默认gؓ关闭?
tcp_wrappers
用法QYES/NO
如果启动Q则会将vsftpd 与tcp wrapper l合Q也是可以?etc/hosts.allow ?etc/hosts.deny 中定义可联机或是拒绝的来源地址?
pam_service_name
q边定义PAM 所使用的名Uͼ预设为vsftpd?
secure_chroot_dir
q个选项必须指定一个空的数据夹且Q何登入者都不能有写入的权限Q当vsftpd 不需要file system 的权限时Q就会将使用者限制在此数据夹中。默认gؓ/usr/share/empty
Q=Q纪录文件设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
xferlog_enable
用法QYES/NO
如果启动Q上传与下蝲的信息将被完整纪录在底下xferlog_file 所定义的档案中。预设ؓ开启?
xferlog_file
q个选项可设定纪录文件所在的位置Q默认gؓ/var/log/vsftpd.log?
xferlog_std_format
如果启动Q则U录文g会写ؓxferlog 的标准格式,如同wu-ftpd 一般。默认gؓ关闭?
Q=Q逾时讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
accept_timeout
接受建立联机的逾时讑֮Q单位ؓU。默认gؓ60?
connect_timeout
响应PORT 方式的数据联机的逾时讑֮Q单位ؓU。默认gؓ60?
data_connection_timeout
建立数据联机的逾时讑֮。默认gؓ300 U?
idle_session_timeout
发呆的逾时讑֮Q若是超旉没有数据的传送或是指令的输入Q则会强q断U,单位为秒。默认gؓ300?
Q=Q速率限制Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
anon_max_rate
匿名d所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。默认gؓ0?
local_max_rate
本机使用者所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。预讑րgؓ0?
Q=Q新增档案权限设定=Q=Q=Q=Q=Q=Q=Q=Q=Q?
anon_umask
匿名d者新增档案时的umask 数倹{默认gؓ077?
file_open_mode
上传档案的权限,与chmod 所使用的数值相同。默认gؓ0666?
local_umask
本机d者新增档案时的umask 数倹{默认gؓ077?
Q=Qport 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
connect_from_port_20
用法QYES/NO
若设为YESQ则ftp-data 的数据传送用port 20。默认gؓYES?
ftp_data_port
讑֮ftp 数据联机所使用的port。默认gؓ20?
listen_port
FTP server 所使用的port。默认gؓ21?
pasv_max_port
建立资料联机所可以使用port 范围的上界,0 表示L。默认gؓ0?
pasv_min_port
建立资料联机所可以使用port 范围的下界,0 表示L。默认gؓ0?
Q=Q其它=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
anon_root
使用匿名dӞ所d的目录。默认gؓ无?
local_enable
用法QYES/NO
启动此功能则允许本机使用者登入。默认gؓYES?
local_root
本机使用者登入时Q将被更换到定义的目录下。默认gؓ无?
text_userdb_names
用法QYES/NO
当用者登入后使用ls -al 之类的指令查询该档案的管理权Ӟ预设会出现拥有者的UIDQ而不是该档案拥有者的名称。若是希望出现拥有者的名称Q则此功能开启。默认gؓNO?
pasv_enable
若是设ؓNOQ则不允怋用PASV 的模式徏立数据的联机。默认gؓ开启?
Q=Q更换档案所有权Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
chown_uploads
用法QYES/NO
若是启动Q所有匿名上传数据的拥有者将被更换ؓchown_username 当中所讑֮的用者。这L选项对于安全及管理,是很有用的。默认gؓNO?
chown_username
q里可以定义当匿名登入者上传档案时Q该档案的拥有者将被置换的使用者名U。预讑րgؓroot?
Q=Qguest 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
guest_enable
用法QYES/NO
若是启动q项功能Q所有的非匿名登入者都视ؓguest。默认gؓ关闭?
guest_username
q里定义guest 的用者名U。默认gؓftp?
Q=Qanonymous 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=
anonymous_enable
用法QYES/NO
控使否允许匿名dQYES 为允许匿名登入,NO Z允许。默认gؓYES?
no_anon_password
若是启动q项功能Q则使用匿名dӞ不会询问密码。默认gؓNO?
anon_mkdir_write_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允许新增目录,当然Q匿名用者必要有对上层目录的写入权。默认gؓNO?
anon_other_write_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允许更多于上传与徏立目录之外的权限Q譬如删除或是更名。默认gؓNO?
anon_upload_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允怸传目录的权限Q当Ӟ匿名使用者必要有对上层目录的写入权。默认gؓNO?
anon_world_readable_only
用法QYES/NO
如果设ؓYESQ匿名登入者会被允怸载可阅读的档案。默认gؓYES?
ftp_username
定义匿名d的用者名U。默认gؓftp?
deny_email_enable
若是启动q项功能Q则必须提供一个档?etc/vsftpd.banner_emailsQ内容ؓemail
address。若是用匿名登入,则会要求输入email addressQ若输入的email address 在此档案内,则不允许联机。默认gؓNO?
Q=QStandalone 选项Q=Q=Q=Q=Q=Q=Q=Q=Q=
listen
用法QYES/NO
若是启动Q则vsftpd 会以独立运作的方式执行Q若是vsftpd 独立执行Q如RedHat9的默认|则必d?若是vsftpd 包含在xinetd 之中Q则必须关闭此功能,如RedHat8。在RedHat9 的默认gؓYES?
listen_address
若是vsftpd 使用standalone 的模式,可用这个参数定义用哪个IP address 提供q项服务Q若是主Z只有定义一个IP addressQ则此选项不需使用Q若是有多个IP addressQ可定义在哪个IP address 上提供ftp 服务。若是不讑֮Q则所有的IP address均会提供此服务。默认gؓ无?
max_clients
若是vsftpd 使用standalone 的模式,可用这个参数定义最大的总联机数。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?
max_per_ip
若是vsftpd 使用standalone 的模式,可用这个参数定义每个ip address 所可以联机的数目。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?
Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
3.2.4 FTP 数字代码的意?
110 重新启动标记应答?
120 服务在多久时间内ready?
125 数据链\埠开启,准备传送?
150 文g状态正常,开启数据连接端口?
200 命o执行成功?
202 命o执行p|?
211 pȝ状态或是系l求助响应?
212 目录的状态?
213 文g的状态?
214 求助的讯息?
215 名称pȝcd?
220 新的联机服务ready?
221 服务的控制连接埠关闭Q可以注销?
225 数据q结开启,但无传输动作?
226 关闭数据q接端口Q请求的文g操作成功?
227 q入passive mode?
230 使用者登入?
250 h的文件操作完成?
257 昄目前的\径名U?
331 用户名称正确Q需要密码?
332 d旉要̎号信息?
350 h的操作需要进一部的命o?
421 无法提供服务Q关闭控制连l?
425 无法开启数据链路?
426 关闭联机Q终止传输?
450 h的操作未执行?
451 命ol止Q有本地的错误?
452 未执行命令:盘I间不?
500 格式错误Q无法识别命令?
501 参数语法错误?
502 命o执行p|?
503 命o序错误?
504 命o所接的参数不正?
530 未登入?
532 储存文g需要̎L入?
550 未执行请求的操作?
551 h的命令终止,cd未知?
552 h的文件终止,储存位溢出?
553 未执行请求的的命令,名称不正?/p>


RomKK 2007-07-24 22:45 发表评论
]]>
GRUB多重启动理?/title><link>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132164.html</link><dc:creator>RomKK</dc:creator><author>RomKK</author><pubDate>Tue, 24 Jul 2007 14:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132164.html</guid><wfw:comment>http://www.aygfsteel.com/RomKK/comments/132164.html</wfw:comment><comments>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132164.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/RomKK/comments/commentRss/132164.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/RomKK/services/trackbacks/132164.html</trackback:ping><description><![CDATA[<!-- Begin #sidebar --> <div class="wmqeeuq" id="sidebar"><div class="wmqeeuq" id="sidebar2"> <script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div></div></br><p>1. 什么是grub    <br>grub 是一个多重启动管理器。grub是GRand Unified Bootloader的羃写,它可以在多个操作pȝ共存旉择引导哪个pȝ。它可以引导的操作系包括linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。它可以载入操作pȝ的内核和初始化操作系l(如Linux,FreeBSDQ,或者把引导权交l操作系l(如Windows 98Q来完成引导?<br>2. grub的特?   <br>grub可以代替lilo来完成对Linux的引|特别适用于linux与其它操作系l共存情况,与lilo相比Q它有以下特点: <br>支持大硬?   <br>现在大多数Linux发行版本的lilo都有同样的一个问题:根分?/boot分区)不能分在过1024柱面的地方,一般是?.4G左右的地方,否则lilo不能安装Q或者安装后不能正确引导pȝ。而grub׃会出现这U情况,只要安装时你的大盘是在LBA模式下,grub可以引导根分区?G以外的操作系l?<br>支持开机画?   <br>grub支持在引导开机的同时昄一个开机画面。对于玩家来_q样可以制作自己的个性化开机画面;对于PC厂商Q这样可以在开机时昄电脑的一些信息和厂商的标志等。grub支持640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测选择最x式,与Windows?20x400的开机画面不可同日而语?<br>两种执行模式 <br>  grub不但可以通过配置文gq行例行的引|q可以在选择引导前动态改变引导时的参敎ͼq可以动态加载各U设备。例如你在Linux下编译了一个新的核心,但不能确定它能不能工作,你就可以在引导时动态改变grub的参敎ͼ试装蝲q个新的核心q行使用。Grub的命令行有非常强大的功能Q而且支持如bash或doskey一L历史功能Q你可以用上下键来寻找以前的命o?<br>菜单式选择    <br>在lilo下,你需要手工输入操作系l的名字来引g同的操作pȝ。而grub使用一个菜单来选择不同的系l进行引对{你q可以自己配|各U参敎ͼ如gq时_默认操作pȝ{?<br>分区位置改变后不必重新配|?   <br>lilo是通过d盘上的l对扇区来装入操作系l,因此每次分区改变都必重新配|liloQ例如你用PQ magic调整了分区的大小Q那lilo在你重新配置好之前就不能引导q个分区的操作系l了。而grub是通过文gpȝ直接把核心读取到内存Q因此只要操作系l核心的路径没有改变Qgrub可以引导系l?除此之外QGrubq有许多非常强大的功能。例如支持多U外部设备,动态装载操作系l内核,甚至可以通过|络装蝲操作pȝ核心。Grub支持多种文gpȝQ支持多U可执行文g格式Q支持自动解压,可以引导不支持多重引导的操作pȝ{?<br>3. grub的?<br>安装grub    <br>如果已经安装了蓝点Linux2.0则grub是默认安装的。要把grub重新安装C引导扇区上,只需要简单打入makebootable命o可以了?<br>制作grub启动?<br>  首先定grub已经安装Q然后进入grub的目录,键入Q?   <br>#cd /boot/grub    <br>攑օ一张Y盘,然后敲入命oQ?   <br>#dd if=stage1 of=/dev/fd0 bs=512 count=1    <br>#dd if=/stage2 of=/dev/fd0 bs512 seek=1    <br>q样可以做好一张启动盘了?<br>开?   <br>安装了grub开机后会出C个菜单,列出所有的启动选项。如果设|了启动画面则会昄启动画面Q按Esc键则可以取消启动画面昄菜单选项。蓝点Linux所带的grub的命令提C是全中文的Q在菜单下面详细列出如按e是编辑启动命令,按c是用命令行{。用上下键可以选择菜单,按回车启动所选项。按e键可以编辑所选项的启动命令,你可以用q个功能临时改变你的pȝ的启动参敎ͼ参见配置grub一节。按c键则q入命o行模式?      <br>在命令行模式下可以打入命令直接执行,例如你可以敲入poweroff关闭计算机。按Tab键可以列出所有支持的命o。蓝点Linux已经把grub汉化了,其中一部分命o敲入名字后会l出中文提示Q显C命令的用法和参数?<br>4. 配置grub    <br>grub启动时会?boot/grub/中寻找一个名字ؓmenu.lst的配|文Ӟ如果找不到此文g则不q入菜单模式而直接进入命令行模式?   <br>menu.lst 是一个文本文Ӟ你可以用M一个文本编辑器来打开它。每一行代表一个配|命令,如果一行的W一个字Wؓ井号"#"则这一行ؓ注释Q你可以单地用增加或减少注释行来改变配置?<br>~辑menu.lstQ一般会有以下各?<br>timeout second <br>讑֮在secondU之后引导默认的操作pȝ?<br>蓝点Linux默认是timeout 5Q就?U没有其他指令就引导pȝQ如果设?1Q则grub会一直等待直到用户选择一个选项为止?<br>default num <br>默认启动Wnum+1行选项Q也pdefault=0则默认启动菜单第一行的操作pȝQdefault=1则启动第2行的pȝQ如此类推?<br>splash pathname/filename <br>指出开机画面的文g所存放的\径和文g名,?splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800x600.img文g作ؓ开机画?<br>title OSname title <br>后面的字W就是你在菜单项上所看见的选项Q你可以写上操作pȝ的名字和描述Q如?<br>title BluePoint Linux, Single Mode 代表q一选项是引D点Linux的单用户模式?<br>下面l合两个pȝ引导描述来解释几个引导选项的意?<br>title BluePoint Linux, Default Mode <br>root (hd0,1) <br>kernel /boot/vmlinuz vga=auto root=/dev/hda2 <br>hd0是指W一个硬?ȝ? (hd0,1)是指W一个硬盘的W二个分区?kernel /boot/vmlinuz 是指出Linux核心的\径在/boot/vmlinuz中。vga=auto 是设定显C模式,root=/dev/hda2是指把第一个硬盘的W二个分Z为根挂蝲点("/"Q?<br>title Microsoft Windows <br>root (hd1,0) <br>chainloader (hd1,0)+1 root (hd1,0)q是指第二个盘(从硬?上第一个分?<br>chainloader (hd1,0)+1 装入一个扇区的数据然后把引导权交给它?<br>5. 从Y盘启动grub    <br>制作启动盘后可以用Y盘启动引导硬盘上的操作系l?插入制作好的启动软盘Q进入BIOS讑֮软盘启动。Y盘启动成功后׃q入grub的命令行模式 <br>grub&gt;    <br>要启动一个操作系l,首先指定引导哪个分区上的pȝQ例如要引导指第一个硬盘上的第一个分区的操作pȝQ先键入 <br>grub&gt;root (hd0,0)    <br>接着如果要启动的是WindowspȝQ键?grub&gt;chainloader (hd0,0)+1    <br>注意(hd0,0)要随着盘和分区的不同而改变数字?如果要引导Linux或其他系l,应键?<br>grub&gt;kernel Qhd0,0Q?boot/vmlinuz root=/dev/hda1    <br>注意hda1参数也要随着盘和分区的不同而改变,如从W二个硬盘的W一个分区引导则用hdb1?  最后敲入boot可以启动系l了?   <br>在Q何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可以获得命令的历史记录?其实q些命o是menu.lst的启动描qͼ您也可以Ҏ那些描述来自己键入启动命令,最后敲入boot可以引导系l了?/p> </br> <!-- Begin #sidebar --> <div class="wmqeeuq" id=sidebar> <div class="wmqeeuq" id=sidebar2><script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "image"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script></div> </div><img src ="http://www.aygfsteel.com/RomKK/aggbug/132164.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/RomKK/" target="_blank">RomKK</a> 2007-07-24 22:44 <a href="http://www.aygfsteel.com/RomKK/archive/2007/07/24/132164.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>RedHat linux inittab详解http://www.aygfsteel.com/RomKK/archive/2007/07/24/132163.htmlRomKKRomKKTue, 24 Jul 2007 14:43:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132163.htmlhttp://www.aygfsteel.com/RomKK/comments/132163.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132163.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132163.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132163.html
一、什么是init
    init是Linuxpȝ操作中不可缺的E序之一?是一个由内核启动的用Lq程?
内核启动Q已l被载入内存Q开始运行,q已初始化所有的讑֤驱动E序和数据结构等Q之后,通过启动一个用LE序init的方式来启动其他用户U的q程或服务。所?init始终是第一个进E(其PID始终?Q?
内核会在q去曾用过init的几个地Ҏ扑֮Q它的正位|(对Linuxpȝ来说Q是/sbin/init。如果内核找不到initQ它׃试着q行/bin/shQ如果运行失败,pȝ的启动也会失败?
二、运行?
    q行U就是操作系l当前正在运行的功能U别。这个别从1?Q具有不同的功能。其功能U别如下Q?br># 0 - 停机Q千万不能把initdefault 讄? Q?br># 1 - 单用h?
# 2 - 多用P没有 NFS
# 3 - 完全多用h?标准的运行)
# 4 - 没有用到
# 5 - X11 Qxwindow)
# 6 - 重新启动 Q千万不要把initdefault 讄?——把被你黑掉的linux的initdefault讄??也算是拒l服务攻dQ)
除此之外q有ABC三个q行U别Q但在RHLinux中都没有意义?br>q些U别?etc/inittab 文g里指定。这个文件是init E序L的主要文Ӟ最先运行的服务是放?etc/rc.d 目录下的文g。在大多数的Linux 发行版本中,启动脚本都是位于 /etc/rc.d/init.d中的。这些脚本被用ln 命oq接?/etc/rc.d/rcn.d 目录?q里的n 是q行U?-6)
三、运行别的配置
    q行U别的配|是?etc/inittab行内q行的,如下所C:
12 : 2 : wait : / etc / init.d / rc 2
各字D解释如下:
id:runlevels:action:process
  idQ是一个Q意指定的四个字符以内的序列标P在本文g内必d一Q用老版本的libc5Q低?.2.18Q或a.out库编译出来的 sysvinit限制?字符。注意:像getty之类的登陆进E必Mid字段与tty~号一_如tty1需要id=1Q许多老版本的登陆q程都遵循这U规则?br>  runlevelsQ表C一行适用于运行那?些别(q里?Q可以有多个Q表C在相应的运行均需要运行)Q另外sysinit、boot、bootwaitq三个进E会忽略q个讄倹{?br>  actionQ表C入对应的runlevelsӞinit应该q行process字段的命令的方式Q常用的字段值及解释在附录内。例子中的wait表示需要运行这个进E一ơƈ{待其结束?br>  processQ具体应该执行的命o。例子中?etc/init.d/rc命o启动q行U别2中应该运行的q程/命oQƈ负责在退行时将其终止(当然在进入的runlevel中仍要运行的E序除外。)
当运行别改变,q且正在q行的程序ƈ没有在新的运行别中指定需要运行,那么init会先发送一个SIGTERM 信号l止Q然后是SIGKILL?br>有效的action值如下:
  respawnQ表Cinit应该监视q个q程Q即使其l束后也应该被重新启动?br>  waitQ?nbsp;  init应该q行q个q程一ơ,q等待其l束后再q行下一步操作?br>  onceQ?nbsp;  init需要运行这个进E一ơ?br>  bootQ?nbsp;  随系l启动运行,所以runlevel值对其无效?br>  bootwaitQ随pȝ启动q行Qƈ且init应该{待其结束?br>  offQ?nbsp;    没有M意义?br>  initdefaultQ系l启动后的默认运行别;׃q入相应的运行别会Ȁzd应别的q程Q所以对其指定process字段没有M意义。如果inittab文g内不存在q一条记录,pȝ启动时在控制C询问q入的运行?br>  sysinitQ?nbsp; pȝ启动时准备运行的命o。比如说Q这个命令将清除/tmp。可以查?etc/rc.d/rc.sysinit脚本了解其运行了那些操作?br>  powerwaitQ允许init在电源被切断Ӟ关闭pȝ。当然前提是有U P S和监视U P Sq知init甉|已被切断的Y件。RH linux默认没有列出该选项?br>  powerfailQ?nbsp; 同powerwaitQ但init不会{待正在q行的进E结束。RH linux默认没有列出该选项?br>  powerokwaitQ当甉|监视软g报告“甉|恢复”Ӟinit要执行的操作?br>  powerfailnowQ检到ups甉|卛_耗尽Ӟinit要执行的操作Q和powerwait/powerfail不同的哟?br>  ctrlaltdelQ允许init在用户于控制台键盘上按下C t r l + A l t + D e ll合键时Q重新启动系l。注意,如果该系l放在一个公共场所Q系l管理员可将C t r l + A l t + D e ll合键配|ؓ别的行ؓQ比如忽略等。我是设|成打印一句骂人的话了^o^?br>  kbrequestQ监视到特定的键盘组合键被按下时采取的动作,现在q不完善?br>  ondemandQA process marked with an ondemand runlevel will be executed whenever the specified ondemand runlevel is called.  However, no runlevel change will occur (ondemand runlevels are ‘a’, ‘b’,and ‘c’)Q(p太菜Q那个however不知道该怎么译才好。惭愧!Q?br>     补充Q?br>   1、关于进入单用户模式Q一般都是采用设|initdefault?或者在grub/lilo中指定一?#8220;single”?#8220;emergency” 命o行参数来实现。其实另外还有一个更q净的方法,~辑Q?br>kernel /vmlinuz-2.6.9-22.EL ro root=/bin/shQ这样initq接启动一个shellQ其他Q何进E都没有启动哦,够干净吧!
   2、系l正在运行时Qtelinit命o可更改运行别。运行别发生变化时Q?init ׃?etc/inittabq行相应的命令?/br>

RomKK 2007-07-24 22:43 发表评论
]]>
配置一个安全的Linux DHCP服务?/title><link>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132162.html</link><dc:creator>RomKK</dc:creator><author>RomKK</author><pubDate>Tue, 24 Jul 2007 14:42:00 GMT</pubDate><guid>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132162.html</guid><wfw:comment>http://www.aygfsteel.com/RomKK/comments/132162.html</wfw:comment><comments>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/RomKK/comments/commentRss/132162.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/RomKK/services/trackbacks/132162.html</trackback:ping><description><![CDATA[<!-- Begin #sidebar --> <div class="wmqeeuq" id="sidebar"><div class="wmqeeuq" id="sidebar2"> <script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div></div></br><p>DHCP是动态主机配|协?q个协议用于向计机自动提供IP地址,子网掩码和\׃息。网l管理员通常会分配某个范围的 IP 地址来分发给局域网上的客户机。当讑֤接入q个局域网Ӟ它们会向 DHCP 服务器请求一?IP 地址。然?DHCP 服务器ؓ每个h的设备分配一个地址Q直到分配完该范围内的所?IP 地址为止。已l分配的 IP 地址必须定时地g长借用期。这个g期的q程UC leasingQ确保了当客h讑֤在正常地释放 IP 地址之前H然从网l断开时被分配的地址可以归还l服务器。本文以Redhat Linux 9.0ZQ介l如何徏立一个完整和安全的DHCP服务器?<br>一、徏立DHCP服务器配|文?<br>可以使用Redhat Linux 9.0自n携带rpm包安装。安装结束后, DHCP 端口监督E序 dhcpd 配置文g?/etc 目录中的名ؓ dhcpd.conf 的文件。下面手工徏?etc/dhcpd.conf文g?etc/dhcpd.conf通常包括三部分:parameters、declarations 、option?<br>1. DHCP配置文g中的parametersQ参敎ͼQ表明如何执行Q务,是否要执行Q务,或将哪些|络配置选项发送给客户。主要内容见?Q?<br>参数 解释 <br>ddns-update-style 配置DHCP-DNS 互动更新模式?<br>default-lease-time 指定省U赁旉的长度,单位是秒?<br>max-lease-time 指定最大租赁时间长度,单位是秒?<br>hardware 指定|卡接口cd和MAC地址?<br>server-name 通知DHCP客户服务器名U?<br>get-lease-hostnames flag 查客L使用的IP地址?<br>fixed-address ip 分配l客L一个固定的地址?<br>authritative 拒绝不正的IP地址的要求?<br>2. DHCP配置文g中的declarations Q声明)Q用来描q网l布局、提供客LIP地址{。主要内容见?Q?<br>声明 解释 <br>shared-network 用来告知是否一些子|络分n相同|络?<br>subnet 描述一个IP地址是否属于该子|?<br>range 起始IP l止IP 提供动态分配IP 的范围?<br>host L名称 参考特别的L?<br>group Zl参数提供声明?<br>allow unknown-clients Hdeny unknown-client 是否动态分配IPl未知的使用者?<br>allow bootp;deny bootp 是否响应ȀzL询?<br>allow bootingHdeny booting 是否响应使用者查询?<br>filename 开始启动文件的名称Q应用于无盘工作站?<br>next-server 讄服务器从引导文g中装如主机名Q应用于无盘工作站?<br> <br>3. DHCP配置文g中的optionQ选项Q:用来配置DHCP可选参敎ͼ全部用option关键字作为开始,主要内容包括见表3Q?<br>选项 解释 <br>subnet-mask 为客L讑֮子网掩码?<br>domain-name 为客L指明DNS名字?<br>domain-name-servers 为客L指明DNS服务器IP地址?<br>host-name 为客L指定L名称?<br>routers 为客L讑֮默认|关?<br>broadcast-address 为客L讑֮q播地址?<br>ntp-server 为客L讑֮|络旉服务器IP地址?<br>timeQoffset 为客L讑֮和格林威L间的偏移旉Q单位是U?<br>注意Q如果客L使用的是视窗操作pȝQ不要选择“host-name”选项Q即不要为其指定L名称?<br>下面是一个笔者用的DHCP配置文gQ这是一个Ecȝl,?26个IP地址可以分配的例子。读者可以复制后使用Q注意红色部分是必须要修改的?<br>ddns-update-style interim; <br>ignore client-updates; <br>subnet 192.168.1.0 netmask 255.255.255.0 { <br>option routers 192.168.1.254; <br>option subnet-mask 255.255.255.0; <br>option broadcast-address 192.168.1.255; <br>option domain-name-servers 192.168.1.3; <br>option domain-name "<a ; QDQS名称Q?<br>option domain-name-servers 192.168.1.3; <br>option time-offset -18000; <br>range dynamic-bootp 192.168.1.128 192.168.1.255; <br>default-lease-time 21600; <br>max-lease-time 43200; <br>host ns { <br>hardware ethernet 52:54:AB:34:5B:09;Q运行DHCP的网l接口的MAC地址Q?<br>fixed-address 192.168.1.9; <br>} <br>} <br>二、徏立客LU文?<br>q行DHCP服务器还需要一个名?dhcpd.leases 的文Ӟ保持所有已l分发出ȝ IP 地址。在Redhat Linux 发行版本中,该文件位?/var/lib/dhcp/ 目录中。如果您通过 RPM 安装 ISC DHCPQ那么该目录应该已经存在。dhcpd.leases的文件格式ؓQ?<br>Leases address {statement?<br>一个典型的文g内容如下Q?<br>lease 192.168.1.255 { #DHCP服务器分配的IP地址# <br>starts 1 2005/05/02 03:02:26; # lease 开始租U时? <br>ends 1 2005/05/02 09:02:26; # lease l束U约旉# <br>binding state active; <br>next binding state free; <br>hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址# <br>uid "\001\000\000\350\240%\206"; #用来验证客户机的UID标示# <br>client-hostname "cjh1"; #客户机名U? <br>} <br>注意lease 开始租U时间和lease l束U约旉是格林威L准时_GMTQ,不是本地旉?<br>W一ơ运行DHCP服务器时dhcpd.leases是一个空文gQ也不用手工建立。如果不是通过 RPM 安装 ISC DHCPQ或?dhcpd 已经安装Q那么您应该试着定 dhcpd 其 lease 文g写到何处Qƈ保该文件存在。也可以手工建立一个空文gQ?<br>#touch /var/lib/dhcp/dhcpd.leases <br>三、启动和查DHCP服务?<br>使用命o启动DHCP服务器: <br>#service dhcpd start <br>使用ps命o查dhcpdq程Q?<br>#ps -ef | grep dhcpd <br>root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd <br>root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd <br>使用查dhcpdq行的端口: <br># netstat -nutap | grep dhcpd <br>udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd </p> <p>四、配|DHCP客户?<br>通常|管员用选择手工配置 DHCP 客户Q需要修?/etc/sysconfig/network 文g来启用联|;q修?/etc/sysconfig/network-scripts 目录中每个网l设备的配置文g。在该目录中Q每个设备都有一个叫?ifcfg-ethQ?的配|文ӞethQ是|络讑֤的名U?如eth0{。如果你惛_引导时启动联|,NETWORKING 变量必须 被设?yes?除了此处之外/etc/sysconfig/network 文g应该包含以下行: <br>NETWORKING=yes <br>DEVICE=eth0 <br>BOOTPROTO=dhcp <br>ONBOOT=yes <br>五、DHCP配置常见错误排除 <br>通常配置DHCP 服务器很ҎQ不q,在这里有一些技巧可以帮助您避免出现问题。对服务器而言Q要保|卡正常工作Qƈ具备q播功能。对客户言Q还要确保客h的网卡正常工作。最后,要考虑|络的拓扑,q考虑客户机向 DHCP 服务器发出的q播消息是否会受到阻。另外如果dhcpdq程没有启动Q那么可以浏?syslog 消息文g来确定是哪里Z问题。这个消息文仉常?/var/log/messages?<br>典型故障Q?<br>1.DHCP服务器配|完成,没有语法错误。但是网l中的客h却没办法取得IP地址?<br>通常是Linux DHCP服务器沒有办法接收來?55.255.255.255 ?DHCP 客户机的Request 包造成的。一般是Linux DHCP服务器的|卡没有讄hMULTICAST功能。ؓ了让dhcpd(dhcpE序的守护进E?能够正常的和DHCP客户机沟通,dhcpd必须传送封包到255.255.255.255q个IP地址Q但是有些Linuxpȝ?55.255.255.255q个IP地址被用来做为监听区域子|域Qlocal subnetQ广播的 IP地址Q所以需要在路由表(routing tableQ里加入255.255.255.255以激zMULTICAST功能Q?<br>使用命oQ?<br>route add -host 255.255.255.255 dev eth0 <br>如果报告错误消息Q?55.255.255.255QUnkown host <br>那么请先修改/etc/hosts加入一行: <br>255.255.255.255 dhcp <br>2. DHCP客户端程序和DHCP服务器不兼容 <br>׃Linux有许多发现版本,不同版本使用DHCP客户端程序和DHCP服务器也不相同。Linux提供了四UDHCP客户端程序:pump, dhclient, dhcpxd, 和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。笔者曾l遇到过使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户Z兼容的情c此时就必须更换客户端程序。方法是先停止客h的网l服务,卸蝲原程序,安装和服务器端兼容程序。附表:主要Linux发行版用的DHCP客户端?<br>发行版本 <br>~省 DHCP客户?可?DHCP 客户?DHCP客户端启?<br>脚本 附加配置文g <br>Red Hat Linux 9.0 dhclient ?/sbin/ifup /etc/sysconfig/network, <br>/etc/sysconfig/network-scripts/ifcfg-eth0 <br>Debian Linux 3.0 dhclient ?/sbin/ifup /etc/network/interfaces, <br>/etc/dhclient.conf <br>Mandrake Linux 9.1 dhclient dhcpcd, dhcpxd, pump /sbin/ifup /etc/sysconfig/network, <br>/etc/sysconfig/network-scripts/ifcfg-eth0, <br>/etc/dhclient-eth0.conf <br>SuSE Linux 9.1 dhcpcd dhclient /sbin/ifup-dhcp /etc/sysconfig/network/dhcp, <br>/etc/sysconfig/network/ifcfg-eth0 <br>六、DHCP服务器的安全 <br>1. 在指定网l接口启动DHCP服务?<br>如果你的Linuxpȝq接了不止一个网l界面,但是你只惌 DHCP 服务器启动其中之一Q你可以配置 DHCP 服务器只在那个设备上启动。在 /etc/sysconfig/dhcpd 中,把界面的名称d?DHCPDARGS 的列表中Q?<br>DHCPDARGS=eth0 <br>或者直接用命令: <br>Echo “DHCPDARGS=eth0”>> /etc/ sysconfig/dhcpd <br>q样对于带有两个|卡的防火墙机器Q更加安全:一个网卡可以被配置?DHCP 客户来从互联|上?IP 地址Q另一个网卡可以被用作防火墙之后的内部|络?DHCP 服务器。仅指定q接到内部网l的|卡使系l更加安全,因ؓ用户无法通过互联|来q接它的守护q程?<br>2. 让DHCP服务器在监牢中运?<br>所?#8220;监牢”是指通过chroot机制来更Ҏ个Y件运行时所能看到的根目录,卛_某Y件运行限制在指定目录中,保证该Y件只能对该目录及其子目录的文件有所动作Q从而保证整个服务器的安全。这样即使出现被破壞或被侵入Q所受的損傷也较?<br>Y件chroot化的一个问题是该Y件运行时需要的所有程序、配|文件和库文仉必须事先安装到chroot目录中,通常U这个目录ؓchroot jailQchroot“监牢”Q。如果要?#8220;监牢”中运行dhcpdQ而事实上Ҏ看不到文件系l中那个真正的目录。因此需要事先创建目录,q将dhcpd复制到其中。同时dhcpd需要几个库文gQ可以用lddQlibrary Dependency Display~写Q命令,ldd作用是显CZ个可执行E序必须使用的共享库?<br>ldd dhcpd <br>libc.so.6 => /lib/tls/libc.so.6 (0x42000000) <br>/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) <br>q意味着q需要在“监牢”中创建lib目录Qƈ库文g复制到其中。手工完成这一工作是非帔R烦的Q此时可以用jail软g包来帮助化chroot“监牢”建立的过E?<br>Q?QJail软g的编译和安装 <br>Jail官方|站是:<a >http://www.jmcresearch.com/</a> Q最新版本:1.9a?<br>#Wget <a >http://www.jmcresearch.com/static/dwn/projects/jail/jail_1.9a.tar.gz</a> <br>#tar xzvf jail.tar.gz Qcd jail/src <br>#makeQ?make install <br>Q?Q用jail创徏监牢 <br>jail软g包提供了几个Perl脚本作ؓ其核心命令,包括mkjailenv、addjailuser和addjailsw?<br>mkjailenvQ创建chroot“监牢”目录Qƈ且从真实文gpȝ中拷贝基本的软g环境。addjailswQ从真实文gpȝ中拷贝二q制可执行文件及其相关的其它文gQ包括库文g、辅助性文件和讑֤文gQ到?#8220;监牢”中。addjailuserQ创建新的chroot“监牢”用户?<br>首先停止目前dhcpd服务Q然后徏立chroot目录Q?<br>#/sbin/service dhcpd start <br>#mkjailenv /chroot/ <br>mkjailenv <br>A component of Jail (version 1.9 for linux) <br><a >http://www.gsyc.inf.uc3m.es/~assman/jail/</a> <br>Juan M. Casillas <br>Making chrooted environment into /chroot <br>Doing preinstall() <br>Doing special_devices() <br>Doing gen_template_password() <br>Doing postinstall() <br>Done. <br>下面的例子展CZؓ“监牢”ddhcpdE序的过E?<br># addjailsw /chroot/ -P /usr/sbin/dhcpd <br>addjailsw <br>A component of Jail (version 1.9 for linux) <br><a >http://www.gsyc.inf.uc3m.es/~assman/jail/</a> <br>Juan M. Casillas <br>Guessing dhcpd args(0) <br>Warning: file /chroot//lib/tls/libc.so.6 exists. Overwritting it <br>Warning: file /chroot//lib/ld-linux.so.2 exists. Overwritting it <br>……… <br>Done. <br>不用在意那些警告信息Q因为jail会调用ldd查dhcpd用到的库文g。而几乎所有基于共享库的二q制可执行文仉需要上q的几个库文件。接下来dhcpd的相x件拷贝到“监牢”中: <br># mkdir -p /chroot/dhcp/etc <br># cp /etc/dhcpd.conf /chroot/dhcp/etc/ <br># mkdir -p /chroot/dhcp/var/state/dhcp <br># touch /chroot/dhcp/var/state/dhcp/dhcp.leases <br>此时?#8220;监牢”目录l构见图1?<br>? “监牢”目录l构 <br>重新启动dhcpdQ?<br>[root@www root]# /chroot/usr/sbin/dhcpd <br>使用ps命o查dhcpdq程Q?<br>#ps -ef | grep dhcpd <br>root 2402 1 0 14:25 ? 00:00:00 /chroot/usr/sbin/dhcpd <br>root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd <br>注意此时q程名称已经改变Q用检查dhcpdq行的端口: <br># netstat -nutap | grep dhcpd <br>udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd <br>端口h有改变。现在dhcpd已经成功q行?#8220;监牢”中?<br>到此为止一个这P一个完整和安全?DHCP服务器就完成了?br></p></br> <!-- Begin #sidebar --> <div class="wmqeeuq" id=sidebar><div class="wmqeeuq" id=sidebar2> <script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "image"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </div></div> <img src ="http://www.aygfsteel.com/RomKK/aggbug/132162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/RomKK/" target="_blank">RomKK</a> 2007-07-24 22:42 <a href="http://www.aygfsteel.com/RomKK/archive/2007/07/24/132162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux快速构建apache web服务?/title><link>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132161.html</link><dc:creator>RomKK</dc:creator><author>RomKK</author><pubDate>Tue, 24 Jul 2007 14:41:00 GMT</pubDate><guid>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132161.html</guid><wfw:comment>http://www.aygfsteel.com/RomKK/comments/132161.html</wfw:comment><comments>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/RomKK/comments/commentRss/132161.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/RomKK/services/trackbacks/132161.html</trackback:ping><description><![CDATA[<script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><br>Apache服务器的最新稳定发布版本是httpd-2.2..0,官方下蝲地址是:<a >http://httpd.apache.org/download.cgi</a>。我们通过下面的步骤来快速的搭徏一个web服务器?br>1?nbsp;   下蝲源码文ghttpd-2.2.0.tar.gz 到linux服务器的某个目录?br>2?nbsp;   解压文g # tar zxvf httpd-2.2.0.tar.gz .<br>3?nbsp;   配置 # ./configure –refix=/usr/local/apache //指定安装目录Q以后要删除安装只需删除q个目录?br>4?nbsp;   ~译和安装?# make ; make install .<br>5?nbsp;   ~写启动脚本Q把它放到目?/etc/rc.d/init.d/里,q里取名为httpd,其内容如下:<br>  #!/bin/bash<br>#description:http server<br>#chkconfig: 235 98 98<br>case "$1" in<br>  start)<br>      echo "Starting Apache daemon..."<br>      /usr/local/apache2/bin/apachectl -k start<br>      ;;<br>  stop)<br>      echo "Stopping Apache daemon..."<br>      /usr/local/apache2/bin/apachectl -k stop<br>      ;;<br>  restart)<br>      echo "Restarting Apache daemon..."<br>      /usr/local/apache2/bin/apachectl -k restart<br>      ;;<br>  status)<br>      statusproc /usr/local/apache2/bin/httpd<br>      ;;<br>      <br>  *)<br>      echo "Usage: $0 {start|stop|restart|status}"<br>      exit 1<br>      ;;<br>Esac<br>注意Q?description:http server q一行必d上,否则在执行命?# chkconfig –add httpd 时会出现“service apache does not support chkconfig”的错误报告?chkconfig: 2345 98 98 表示在执行命?# chkconfig –add httpd 时会在目?/etc/rc2.d/ ?etc/rc3.d/ /etc/rc5.d 分别生成文g S98httpd?K98httpd。这个数字可以是别的?br>6?nbsp;   执行命o # chkconfig –add httpd Q进入目?etc/rc3.d/查是否生成文?S98httpd及K98httpd.<br>7?nbsp;   启动服务 # service httpd start . <br><script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "image"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img src ="http://www.aygfsteel.com/RomKK/aggbug/132161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/RomKK/" target="_blank">RomKK</a> 2007-07-24 22:41 <a href="http://www.aygfsteel.com/RomKK/archive/2007/07/24/132161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux内核~译q程详解(kernel2.6.7)http://www.aygfsteel.com/RomKK/archive/2007/07/24/132160.htmlRomKKRomKKTue, 24 Jul 2007 14:40:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132160.htmlhttp://www.aygfsteel.com/RomKK/comments/132160.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/132160.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132160.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132160.html
׃几天才编译成功kernel2.6.7,其过E真可谓艰辛.古语有云:"苦尽甘来!"现在l于可以乐上一阵了.׃许多朋友Ҏ作的序及某些重要的配置知之甚少或知之不?往往病急ؕ投医.加之|上的信息多且烦?使得~译内核成功率不?甚至造成原来的系l崩溃的也不在少?我就是其中一个?br>  
  其实,~译内核q不是一仉?如果能按照正的Ҏ来操?最多花上一个半时p搞定.是不是很受鼓舞呀!
  
  废话说,现在我们马上开?我原来的pȝ是redhat9.0,内核2.4.20-8,~译的内?.6.7,仅供参?
  
  共分为四部分:~译前准?>~译配置->~译q程->q行内核的常见问?br>  
  一 ~译前准?br>  
  1)下蝲一份内核源代码,我下的是linux-2.6.7.tar.bz2,你可在如下地址下蝲它或者是更新的版?
  
  http://kernel.org/pub/linux/kernel/v2.6/
  
  2) 下蝲最新版本的module-init-tools( "module-init-tools-3.0.tar.gz" and "modutils-2.4.21-23.src.rpm")
  
  http://www.kernel.org/pub/linux/kernel/people/rusty/modules/module-init-tools-3.0.tar.gz
  
  http://www.kernel.org/pub/linux/kernel/people/rusty/modules/modutils-2.4.21-23.src.rpm
  
  3)安装module-init-tools. 它会替代depmod [/sbin/depmod]和其他工?
  
  tar -zxvf module-init-tools-3.0.tar.gz
  
  cd module-init-tools-3.0
  
  ./configure --prefix=/sbin
  
  make
  
  make install
  
  ./generate-modprobe.conf /etc/modprobe.conf
  
  4)安装modutils-2.4.21-23.src.rpm. 你可能会看到"user rusty and group rusty not existing"的警? 没关p?你只需强制安装是?如果你不对Redhat 9和Redhat 8做这几步, 你将会在"make modules_install"q一步时出现问题.
  
  rpm -i modutils-2.4.21-23.src.rpm
  
  rpmbuild -bb /usr/src/redhat/SPECS/modutils.spec
  
  rpm -Fi /usr/src/redhat/RPMS/i386/modutils-2.4.21-23.i386.rpm
  
  5)解压~内核源代码.把下载的源代码包攑ֈ目录/usr/src?然后
  
  cd /usr/src
  
  tar xvfj linux-2.6.7.tar.bz2
  
  cd linux-2.6.7
  
  ?~译配置
  
  在这一部分涉及几个重要模块的配|请,特别注意.一般用"make menuconfig"命o来配|内?
  
  输入以上命o后出C个菜单界?用户可以寚w要的模块.下面着重讲几个重要的配|?br>  
  1)文gpȝ
  
  请务必要选中ext3文gpȝ,
  
  File systems--->
  
  
•  Ext3 journalling file system support
  
  
•  Ext3 Security Labels
  
  
•  JBD (ext3) debugging support
  
  以上三项一定要选上,而且要内?x*). q个非常重要,在配|完后一定要查一?config文g有没?CONFIG_EXT3_FS=y"q一? 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在q行内核时就会遇上以下错? pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed
  
  2)|卡驱动
  
  请务必把自己|卡对应的驱动编译进内核,比较普遍的网卡是realtek 8139,以下是q种|卡的配|?以供参?br>  
  Device Drivers--->
  
  Networking support--->
  
  Ethernet (10 or 100Mbit) --->
  
  <*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)
  
  <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support
  
  3)声卡驱动
  
  也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是i810_audio,以下是q种声卡的配|?以供参?br>  
  Device Drivers --->
  
  Sound --->
  
  <*> Sound card support
  
  Advanced Linux Sound Architecture --->
  
  <*> Advanced Linux Sound Architecture
  
  <*> Sequencer support
  
  < > Sequencer dummy client
  
  <*> OSS Mixer API
  
  <*> OSS PCM (digital audio) API
•  OSS Sequencer API
  
  <*> RTC Timer support
  
  PCI devices --->
  
  <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111
  
  Open Sound System --->
  
  < > Open Sound System (DEPRECATED)
  
  以上三项配置关系到新内核能否正常q行,请备加注?其他的配|如果不是很了解,大可以按默认的选择.
  
  ?~译
  
  按如下命令编?大概需要一个多时,大可以好好放松一?br>  
  make bzImage
  
  make modules
  
  make modules_install
  
  make install
  
  q行新内怹?h查一?boot/grub/grub.conf的内?下面的配|可作参?br>  
  # grub.conf generated by anaconda
  
  #
  
  # Note that you do not have to rerun grub after making changes to this file
  
  # NOTICE: You have a /boot partition. This means that
  
  # all kernel and initrd paths are relative to /boot/, eg.
  
  # root (hd0,0)
  
  # kernel /vmlinuz-version ro root=/dev/hdc3
  
  # initrd /initrd-version.img
  
  #boot=/dev/hdc
  
  default=1
  
  timeout=10
  
  splashimage=(hd0,0)/grub/splash.xpm.gz
  
  title Red Hat Linux (2.6.7)
  
  root (hd0,0)
  
  kernel /vmlinuz-2.6.7 ro root=LABEL=/
  
  initrd /initrd-2.6.7.img
  
  title Red Hat Linux
  
  root (hd0,0)
  
  kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
  
  initrd /initrd-2.4.20-8.img
  
  ?q行内核的常见问?br>  
  1)RPM问题
  
  q入~译好的内核后,与RPM相关的命令有些不能用,q出C列错误:
  
  rpmdb: unable to join the environment
  
  error: db4 error(11) from dbenv->open: Resource temporarily unavailable
  
  error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
  
  error: cannot open Packages database in /var/lib/rpm
  
  no packages
  
  解决Ҏ是执?#8220;export LD_ASSUME_KERNEL =2.2.25”命oQ也可以其写入/etc/bashrc?br>  
  2)Sound问题
  
  声音部分的模块名也改变了。我的笔记本原来的声卡驱动是i810_audioQ现在已改ؓsnd-intel8x0。因此需要把下面的内Ҏ加到/etc/modprobe.conf中:
  
  alias char-major-14 soundcore
  
  alias sound snd-intel8x0
  
  alias sound-slot-0 snd-intel8x0
  
  alias snd-card-0 snd-intel8x0
  
  alias sound-service-0-0 snd-mixer-oss
  
  alias sound-service-0-1 snd-seq-oss
  
  alias sound-service-0-3 snd-pcm-oss
  
  alias sound-service-0-8 snd-seq-oss
  
  alias sound-service-0-12 snd-pcm-oss
  
  install snd-intel8x0 /sbin/modprobe --ignore-install sound-slot-0 &&
  
  { /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1; /bin/true; }
  
  remove snd-intel8x0
  
  { /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1; /bin/true; };
  
  /sbin/modprobe -r --ignore-remove sound-slot-0
  
  然后执行“modprobe sound”加蝲声音模块Qƈ使用下列命o验声卡驱动:
  
  #cat /proc/asound/cards
  
  昄l果如下Q?br>  
  0 [SI7012]: ICH - SiS SI7012
  
  SiS SI7012 at 0xdc00, irq 11
  
  3)VMware问题
  
  解决Ҏ是:
  
  ??usr/bin/vmware-config.pl中所有的“/proc/ksyms”替换?#8220;/proc/kallsyms”。?#8220;sed”命o可以辑ֈq个目的?br>  
  ?重新q行该脚本,使用内核头文件编译新的内核模块。在~译q程中如发生错误Q应该进?usr/lib/vmware/modules/sourceQ用下面的命ovmnet.tar解包Q?br>  
  #tar xvf vmnet.tar
  
  ?q入vmnet-only目录修改bridge.c文g。将“atomic_add(skb->truesize, &sk->wmem_alloc);”修改?#8220;atomic_add(skb->truesize, &sk->sk_wmem_alloc);”Qƈ用类似的方式?#8220;protinfo”改ؓ“sk_protinfo”?br>  
  ?再次把vmnet-only目录用下面的命o重新打包为vmmon.tarQ?br>  
  #tar cvf vmmon.tar v


RomKK 2007-07-24 22:40 发表评论
]]>
Linuxpȝ中集及光|实?/title><link>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132159.html</link><dc:creator>RomKK</dc:creator><author>RomKK</author><pubDate>Tue, 24 Jul 2007 14:39:00 GMT</pubDate><guid>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132159.html</guid><wfw:comment>http://www.aygfsteel.com/RomKK/comments/132159.html</wfw:comment><comments>http://www.aygfsteel.com/RomKK/archive/2007/07/24/132159.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/RomKK/comments/commentRss/132159.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/RomKK/services/trackbacks/132159.html</trackback:ping><description><![CDATA[<script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> </br>集群pȝ(Cluster)主要解决下面几个问题Q?br>高可靠性(HAQ。利用集管理YӞ当主服务器故障时Q备份服务器能够自动接管L务器的工作,q及时切换过去,以实现对用户的不间断服务?<br>高性能计算QHPQ。即充分利用集群中的每一台计机的资源,实现复杂q算的ƈ行处理,通常用于U学计算领域Q比如基因分析,化学分析{?<br>负蝲q。即把负载压力根据某U算法合理分配到集群中的每一台计机上,以减M服务器的压力Q降低对L务器的硬件和软g要求?<br>在实际应用中Q最常见的情冉|利用集群解决负蝲q问题Q比如用于提供WWW服务。在q里主要展示如何使用LVS(Linux Virtial Server)来实现实用的WWW负蝲q集群pȝ?br>LVS?br>LVS是章文嵩博士发v和领导的优秀的集解x案,许多商业的集品,比如RedHat的PiranhaQTurboLinux公司的Turbo Cluster{,都是ZLVS的核心代码的。在现实的应用中QLVS得到了大量的部vQ请参考http: //www.linuxvirtualserver.org/deployment.html<br>关于Linux LVS的工作原理和更详l的信息Q请参?a >http://www.linuxvirtualserver.org</a>?br>LVS配置实例<br>通过Linux LVSQ实现WWWQTelnet服务的负载^衡。这里实现Telnet集群服务仅ؓ了测试上的方ѝ?br>LVS有三U负载^衡方式,NATQNetwork Address TranslationQ,DRQDirect RoutingQ,IP Tunneling。其中,最为常用的是DR方式Q因此这里只说明DR(Direct Routing)方式的LVS负蝲q?br>1、网l拓扑结构?<br> <br>如图1所C,为测试方便,4台机器处于同一|段内,通过一交换机或者集U器相连。实际的应用中,最好能够将虚拟服务器vs1和真实服务器rs1, rs2|于于不同的|段上,x高了性能Q也加强了整个集系l的安全性?br>2、服务器的Yg配置 <br>首先说明Q虽然本文的试环境中用的是3台相同配|的服务器,但LVSq不要求集群中的服务器规格划一Q相反,可以Ҏ服务器的不同配置和负载情况,调整负蝲分配{略Q充分利用集环境中的每一台服务器?br>q?台服务器中,vs1作ؓ虚拟服务器(卌载^衡服务器Q,负责用L讉Kh转发到集内部的rs1,rs2Q然后由rs1,rs2分别处理?br>client为客L试机器Q可以ؓL操作pȝ?br>4台服务器的操作系l和|络配置分别为:<br>vs1: RedHat 6.2, Kernel 2.2.19<br>vs1: eth0 192.168.0.1<br>vs1: eth0:101 192.168.0.101<br>rs1: RedHat 6.2, Kernel 2.2.14<br>rs1: eth0 192.168.0.3<br>rs1: dummy0 192.168.0.101<br>rs2: RedHat 6.2, Kernel 2.2.14<br>rs2: eth0 192.168.0.4<br>rs2: dummy0 192.168.0.101<br>client: Windows 2000<br>client: eth0 192.168.0.200<br>其中Q?92.168.0.101是允许用戯问的IP?br>虚拟服务器的集群配置 <br>大部分的集群配置工作都在虚拟服务器vs1上面Q需要下面的几个步骤Q?br>重新~译内核?<br>首先Q下载最新的Linux内核Q版本号?.2.19Q下载地址为:<a >http://www.kernel.org/</a>Q解压羃后置?usr/src/linux目录下?br>其次需要下载LVS的内核补丁,地址为:<a >http://www.linuxvirtualserver.org/software/ipvs</a>- 1.0.6-2.2.19.tar.gz。这里注意,如果你用的Linux内核不是2.2.19版本的,请下载相应版本的LVS内核补丁。将ipvs- 1.0.6-2.2.19.tar.gz解压~后|于/usr/src/linux目录下?<br>然后Q对内核打补丁,如下操作Q?<br>[root@vs2 /root]# cd /usr/src/linux<br>[root@vs2 linux]# patch -p1 < ipvs-1.0.6-2.2.19/ipvs-1.0.6-2.2.19.patch<br>下面是重新配置和编译Linux的内核。特别注意以下选项Q?br>1 Code maturity level options---><br>*  [*]Prompt for development and/or incomplete code/drivers<br>2 Networking部分Q?br> [*] Kernel/User netlink socket<br>  [*] Routing messages<br>  <*> Netlink device emulation<br>* [*] Network firewalls<br>  [*] Socket Filtering<br>  <*> Unix domain sockets<br>* [*] TCP/IP networking<br>  [*] IP: multicasting<br>  [*] IP: advanced router<br>  [ ] IP: policy routing<br>  [ ] IP: equal cost multipath<br>  [ ] IP: use TOS value as routing key<br>  [ ] IP: verbose route monitoring<br>  [ ] IP: large routing tables<br>  [ ] IP: kernel level autoconfiguration<br>* [*] IP: firewalling<br>  [ ] IP: firewall packet netlink device<br>* [*] IP: transparent proxy support<br>* [*] IP: masquerading<br>  --- Protocol-specific masquerading support will be built as modules.<br>* [*] IP: ICMP masquerading<br>  --- Protocol-specific masquerading support will be built as modules.<br>* [*] IP: masquerading special modules support<br>*  IP: ipautofw masq support (EXPERIMENTAL)(NEW)<br>*  IP: ipportfw masq support (EXPERIMENTAL)(NEW)<br>*  IP: ip fwmark masq-forwarding support (EXPERIMENTAL)(NEW)<br>* [*] IP: masquerading virtual server support (EXPERIMENTAL)(NEW)<br>  [*] IP Virtual Server debugging (NEW) <--最好选择此项Q以便观察LVS的调试信?br>* (12) IP masquerading VS table size (the Nth power of 2) (NEW)<br>*  IPVS: round-robin scheduling (NEW)<br>*  IPVS: weighted round-robin scheduling (NEW)<br>*  IPVS: least-connection scheduling (NEW)<br>*  IPVS: weighted least-connection scheduling (NEW)<br>*  IPVS: locality-based least-connection scheduling (NEW)<br>*  IPVS: locality-based least-connection with replication scheduling (NEW)<br>* [*] IP: optimize as router not host<br>*  IP: tunneling<br>  IP: GRE tunnels over IP<br>  [*] IP: broadcast GRE over IP<br>  [*] IP: multicast routing<br>  [*] IP: PIM-SM version 1 support<br>  [*] IP: PIM-SM version 2 support<br>* [*] IP: aliasing support<br>  [ ] IP: ARP daemon support (EXPERIMENTAL)<br>* [*] IP: TCP syncookie support (not enabled per default)<br>  --- (it is safe to leave these untouched)<br>  < > IP: Reverse ARP<br>  [*] IP: Allow large windows (not recommended if <16Mb of memory)<br>  < > The IPv6 protocol (EXPERIMENTAL)<br>上面Q带*L为必选项?br>然后是常规的编译内核过E,不再赘述Q请参考编?Linux 教程<br>在这里要注意一点:如果你用的是RedHat自带的内核或者从RedHat下蝲的内核版本,已经预先打好了LVS的补丁。这可以通过查看/usr/src/linux/net/目录下有没有几个ipvs开头的文g来判断:如果有,则说明已l打q补丁?br>~写LVS配置文gQ实例中的配|文件如下: <br>#lvs_dr.conf (C) Joseph Mack <a href="mailto:mack@ncifcrf.gov">mack@ncifcrf.gov</a><br>LVS_TYPE=VS_DR<br>INITIAL_STATE=on <br>VIP=eth0:101 192.168.0.101 255.255.255.0 192.168.0.0<br>DIRECTOR_INSIDEIP=eth0 192.168.0.1 192.168.0.0 255.255.255.0 192.168.0.255 <br>SERVICE=t telnet rr rs1:telnet rs2:telnet<br>SERVICE=t www rr rs1:www rs2:www<br>SERVER_VIP_DEVICE=dummy0<br>SERVER_NET_DEVICE=eth0<br>#----------end lvs_dr.conf------------------------------------<br>该文g|于/etc/lvs目录下?br>使用LVS的配|脚本生lvs.conf文g。该配置脚本可以从http: //www.linuxvirtualserver.org/Joseph.Mack/configure-lvs_0.8.tar.gz 单独下蝲Q在ipvs-1.0.6-2.2.19.tar.gz包中也有包含?<br>脚本configure的用方法:<br>[root@vs2 lvs]# configure lvs.conf<br>q样会生几个配|文Ӟq里我们只用其中的rc.lvs_dr文g?br>修改/etc/rc.d/init.d/rc.localQ增加如下几行: <br>echo 1 > /proc/sys/net/ipv4/ip_forward<br>echo 1 > /proc/sys/net/ipv4/ip_always_defrag<br># 昄最多调试信?br>echo 10 > /proc/sys/net/ipv4/vs/debug_level<br>配置NFS服务。这一步仅仅是Z方便理Q不是必ȝ步骤。假N|文件lvs.conf文g攑֜/etc/lvs目录下,?etc/exports文g的内容ؓQ?br>/etc/lvs ro(rs1,rs2)<br>然后使用exportfs命o输出q个目录:<br>[root@vs2 lvs]# exportfs<br>如果遇到什么麻烦,可以试Q?br>[root@vs2 lvs]# /etc/rc.d/init.d/nfs restart<br>[root@vs2 lvs]# exportfs<br>q样Q各个real server可以通过NFS获得rc.lvs_dr文gQ方便了集群的配|?你每ơ修改lvs.conf中的配置选项Q都可以卛_反映在rs1,rs2的相应目录里?br>修改/etc/syslogd.confQ增加如下一行: kern.*  /var/log/kernel_log<br>q样QLVS的一些调试信息就会写?var/log/kernel_log文g?<br>real server的配|?br>real server的配|相对简单,主要是是以下几点Q?<br>配置telnet和WWW服务。telnet服务没有需要特别注意的事项Q但是对于www服务Q需要修改httpd.conf文gQ得apache在虚拟服务器的ip地址上监听,如下所C:<br>Listen 192.168.0.101:80 <br>关闭real server上dummy0的arph响应能力。这是必ȝQ具体原因请参见ARP problem in LVS/TUN and LVS/DRQ?a >http://www.linuxvirtualserver.org/arp.html</a>Q。关闭dummy0的arp响应的方式有多种Q比较简单地Ҏ是,修改/etc/rc.d/rc.local文gQ增加如下几行: echo 1 > /proc/sys/net/ipv4/conf/all/hidden<br>ifconfig dummy0 up<br>ifconfig dummy0 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.0 up<br>echo 1 > /proc/sys/net/ipv4/conf/dummy0/hidden<br>再次修改/etc/rc.d/rc.localQ增加如下一行:Q可以和步骤2合ƈQ?br>echo 1 > /proc/sys/net/ipv4/ip_forward<br>LVS的测?br>好了Q经q了上面的配|步骤,现在可以试LVS了,步骤如下Q?br>分别在vs1Qrs1Qrs2上运?etc/lvs/rc.lvs_dr。注意,rs1,rs2上面?etc/lvs目录是vs2输出的。如果您?NFS配置没有成功Q也可以把vs1上的/etc/lvs/rc.lvs_dr复制到rs1,rs2上,然后分别q行?<br>保rs1,rs2上面的apache已经启动q且允许telnet?<br>然后从clientq行telnet 192.168.0.101Q如果登录后看到如下输出p明集已l开始工作了:Q假设以guest用户w䆾dQ?<br>[guest@rs1 guest]$-----------说明已经d到服务器rs1上?br>再开启一个telnetH口Q登录后会发现系l提C变为:<br>[guest@rs2 guest]$-----------说明已经d到服务器rs2上?br>然后在vs2上运行如下命令:<br>[root@vs2 /root]ipvsadm<br>q行l果应该为:<br>IP Virtual Server version 1.0.6 (size=4096)<br>Prot LocalAddress:Port Scheduler Flags<br>-> RemoteAddress:Port Forward Weight ActiveConn InActConn<br>TCP 192.168.0.101:telnet rr<br>-> rs2:telnet Route  1 1 0<br>-> rs1:telnet Route  1 1 0<br>TCP 192.168.0.101:www rr<br>-> rs2:wwwRoute  1 0 0<br>-> rs1:wwwRoute  1 0 0<br>x已经验证telnet的LVS正常?br>然后试一下WWW是否正常Q用你的览器查?a >http://192.168.0.101/</a>是否有什么变化?Z更明的区别响应来自那个real serverQ可以在rs1,rs2上面分别攄如下的测试页?test.html)Q?<br>我是real server #1 or #2<br>然后h几次面Q?a >http://192.168.0.101/test.html</a>Q,如果你看?#8220;我是real server #1”?#8220;我是real server #2”交替出现Q说明www的LVSpȝ已经正常工作了?br>但是׃Internet Explore 或者Netscape本n的缓存机Ӟ你也许L只能看到其中的一个。不q通过ipvsadmq是可以看出Q页面请求已l分配到两个real server上了Q如下所C: <br>IP Virtual Server version 1.0.6 (size=4096)<br>Prot LocalAddress:Port Scheduler Flags<br>-> RemoteAddress:Port Forward Weight ActiveConn InActConn<br>TCP 192.168.0.101:telnet rr<br>-> rs2:telnet Route  1 0 0<br>-> rs1:telnet Route  1 0 0<br>TCP 192.168.0.101:www rr<br>-> rs2:wwwRoute  1 0 5<br>-> rs1:wwwRoute  1 0 4<br>或者,可以采用linux的lynx作ؓ试客户端,效果更好一些。如下运行命令:<br>[root@client /root]while true; do lynx -dump <a >http://10.64.1.56/test.html</a>; sleep 1; done<br>q样Q每?U钟“我是realserver #1”?#8220;我是realserver #2”׃替出Cơ,清楚地表明响应分别来自两个不同的real server?br>调试技?br>如果您的q气不好Q在配置LVS的过E中也许会遇C些困难,下面的技巧或许有帮助Q?br>首先定|络g没有问题Q尤其是|线Qping工具p够了?<br>使用netstat查看端口的活动情c?<br>使用tcpdump查看数据包的动情况?<br>查看/var/log/kernel_log文g?/br> <script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "image"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <img src ="http://www.aygfsteel.com/RomKK/aggbug/132159.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/RomKK/" target="_blank">RomKK</a> 2007-07-24 22:39 <a href="http://www.aygfsteel.com/RomKK/archive/2007/07/24/132159.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ѿ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ܿ</a>| <a href="http://" target="_blank">߮</a>| <a href="http://" target="_blank">ϰ</a>| <a href="http://" target="_blank">Ʊ</a>| <a href="http://" target="_blank">Ӵ</a>| <a href="http://" target="_blank">˿</a>| <a href="http://" target="_blank">ƴ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽ</a>| <a href="http://" target="_blank">ػʵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ȷɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">º</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ף</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>