Linux下服务管理和网的络配置
文/ heiyeluren
本节稍微讲解一下Linux下的服务和网络的简单管理配置,也给自己一个说明问题的机会。(以下操作基于Redhat9)
一、服务管理
winnt操作系统的服务管理是比较强的,它内置有一个服务管理器,能够非常方便的管理操作系统内的服务。Linux也同样有管理服务的特有方式。
Linux的服务都是以脚本的方式来运行的,存在于 /etc/rc.d/init.d目录下所有的脚本就是我们的服务脚本,它具有两项作用,一项是能够在系统启动的时候自动启动那些脚本中所要求启动的程序,另外,我们还能够通过该脚本来对服务进行控制,比如启动,停止等。
我们先看看下面有那些服务:
# ls /etc/rc.d/init.d
anacron cups iptables killall nfslock random single ypbind
apmd firstboot irda kudzu nscd rawdevices sshd
atd functions isdn netfs ntpd rhnsd syslog
autofs gpm kdcrotate network pcmcia saslauthd xfs
crond halt keytable nfs portmap sendmail xinetd
里面列出的就是我们目前系统中所有的服务脚本,每次系统启动的时候就会启动。
我们打开一个脚本来看看:
# cat /etc/rc.d/init.d/smb
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status rpc.mountd
status nfsd
;;
restart)
$0 stop
$0 start
;;
reload)
/usr/sbin/exportfs -r
touch /var/lock/subsys/nfs
;;
*)
echo $"Usage: nfs {start|stop|status|restart|reload}"
exit 1
esac
exit 0
我们可以看出里面基本上有几个服务,启动、停止、重启、状态等等,我们看看下面的表:
服务脚本操作
--------------------------------------------------------------------------
操作 作用
--------------------------------------------------------------------------
start 启动服务,等价于服务脚本里的start命令
stop 停止服务,等价于副外长脚本stop命令
restart 关闭服务,然后重新启动,等价于脚本restart命令
reload 使服不重新启动而重读配置文件,等价与服务脚本的reload命令
status 提供服务的当前状态,等价于服务脚本的status命令
condrestart 如果服务锁定,则这个来关闭服务,然后再次启动,等价于condrestart命令
--------------------------------------------------------------------------
比如,我们要重新启动Samba,则可以用root用户运行下面两个命令,效果一样:
# /etc/rc.d/init.d/smb restart
# service smb restart
那么到这里就明白了,假如我们要把那个服务让它系统启动的时候自动启动,那么就配置好一个服务脚本,放到/etc/rc.d/init.d里面就OK了,相应的,如果你要删除那个服务,把脚本移走就可以了.
二、网络配置
1、配置IP地址
配置本机的IP等有N个方法,使用GUI界面配置的,在安装的时候配置,修改配置文件配置,使用控制台图形界面的方法:
# setup
就能够配置IP了
然后是用ifconfig命令来配之IP,使用ifconfig能够指定IP地址,硬件端口、网络掩码等,当然这个命令最主要的功能是查看当前的网络配置。
# ifconfig
eth0 Link encap:Ethernet HWaddr 00:E0:4C:3A:AA:34
inet addr:192.168.5.140 Bcast:192.168.5.255 Mask:255.255.254.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1172088 errors:0 dropped:0 overruns:0 frame:0
TX packets:3799 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:821967132 (783.8 Mb) TX bytes:392720 (383.5 Kb)
Interrupt:11 Base address:0x9000
eth1 Link encap:Ethernet HWaddr 00:E0:4D:01:3B:87
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1168522 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:821556337 (783.4 Mb) TX bytes:180 (180.0 b)
Interrupt:5 Base address:0xb000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:82 errors:0 dropped:0 overruns:0 frame:0
TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:11547 (11.2 Kb) TX bytes:11547 (11.2 Kb)
我们看到上面的资料,eth0和eth1是网卡,有两块网卡,lo是环路。
我们给网卡指定新的IP地址。下面命令给eth1指定新的IPv4地址:
# ifconfig eth1 219.238.215.36
那么以前它是一个内网的IP,现在我们给它一个外网IP,我们也能够同时指定子网掩码:
# ifconfig eth1 netmask 255.255.254.0 219.238.215.36
在以前,有时侯指定的网卡的IRQ端口和I/O地址会遇到冲突什么的,我们可以通过下面的命令来改变IRQ和IO地址:
# ifconfig eth1 irq 9
# ifconfig eth1 io_addr 0x300
同时,我们能够对网卡进行冻结和激活,跟windows中禁用和启用网差不多,这里要注意的时候,如果你是远程连接到Linux,不要随便冻结网卡,否则你就会被“锁在外面”,一定要小心,这个操作只适合本地。
/* 冻结网卡(禁用) */
# ifconfig eht1 down
/* 激活网卡 */
# ifconfig eth1 up
2、主机配置命令
在Linux下有许多命令能够列出网络中的计算机名,比如hostname能够显示计算机名,也能够修改计算机名。
主机名命令
-------------------------------------------------------------
命令 功能
-------------------------------------------------------------
hostname 列出或设置本地计算机上的主机名
domainname 列出或设置NIS域名
dnsdomainname 列出网络上的DNS服务器的完全限定域名
nisdomainname 跟domainname一样
ypdomianname 跟domainname一样
--------------------------------------------------------------
3、网络配置文件
Redhat下有很多配置文件,包括/etc/host/、/etc/resolv.conf、/etc/host.conf等等,但是从redhat9以后,都把大部分的配置文件放到/etc/sysconfig目录下。
(1) 静态主机名 --- /etc/hosts
/etc/hosts是为了早期Unix下保存网络上计算机的IP地址和计算机名的文件。尽管目前已经用的比较少了,但是小型网络仍然是能够满足要求的。
这个文件比较简单,每一行有一个IP地址、一个完全限定域名和一个主机名,如果你要添加修改也简单:
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 rh_test localhost.localdomain localhost
(2) DNS服务器 --- /etc/resolv.conf
如果不用/etc/hosts,那么就使用域名服务器,在Linux中,是通过通过/etc/resolv.conf来保存域名服务器的:
nameserver 202.112.112.100
如果要添加修改也很方便,可以添加多个域名服务器来帮助我们解析网址。
(3) 搜索顺序 --- /etc/host.conf
如果有两个主机名和IP地址的数据库,/etc/hosts和DNS服务器,顺序是由/etc/host.conf来确定的。通常,这个文件只有一行:
order hosts,bind
(4) 基本网络设置 --- /etc/sysconfig/network
基本网络设置的数据放在/etc/sysconfig/network中。如果网络遇到问题,则可以检查这个文件。文件开头可以看到NETWORKING=yes,其他变量如下表显示。并不是所有这些变量都要在这个配置中出现,如果使用DHCP服务器,则有些变量是不必要的,有些变化量可能位于/etc/sysconfig/networking/devices目录中网络适配器特定文件中。
/etc/sysconfig/network变量
--------------------------------------------------------------------------------
变量 描述
--------------------------------------------------------------------------------
NETWORKING 取值为yes/no,要让Redhat运行网络,就要取yes
HOSTNAME 计算机的主机名
GATEWAY 计算机的网关IP地址
GATEWAYDEV 用网关连接网络的网络设备,如eth1,如果计算机
上有多个网卡,则需要这个网络设备
NISDOMAIN NIS系统的域名,如有的话
--------------------------------------------------------------------------------
我们来看看我这个计算机的配置:
# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=dou
GATEWAY=192.168.5.1
恩,如果要改配置就修改相应的值就行了,但是要注意没事别乱改。
WriteTime: 2004-12-16 中午 13:00