声明:该文章来自:http://blog.csdn.net/danforn/archive/2006/05/18/744753.aspx
ifconfig
常用来显示和设置网络设备,它可以用来设置网卡的状态,或显示当前的设置。
下面是一些常用的命令组合:
1)、将第一块网卡的IP地址设置为192.168.0.1:
ifconfig eth0 192.168.0.1 (格式:ifconfig 网络设备名 IP地址)
2)、暂时关闭或启用网卡:
关闭第一块网卡: ifconfig eth0 down
启用第一块网卡: ifconfig eth0 up
3)、将第一块网卡的子网掩码设置为255.255.255.0:
ifconfig eth0 netmask 255.255.255.0(格式:ifconfig 网络设备名 netmask 子网掩码)
我们也可以同时设置IP地址和子网掩码:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
4)、将第一块网卡的广播地址设置为192.168.0.255
ifconfig eth0 -broadcast 192.168.0.255
5)、将第一块网卡设置为不接收多播数据包:
ifconfig eth0 allmulti
如果让其接收,则使用命令:ifconfig eth0 -allmulti
6)、查看第一块网卡的状态:
ifconfig eth0
如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可。
ifconfig输出的状态信息十分有用,下面是一些简单说明:
有几个状态比较重要:
?up/DOWN:网卡是否启动了,如果是DOWN的话,那肯定无法用的
?RX packets中的errors包的数量如果过大说明网卡在接收时有问题;
?TX packets中的errors包的数量如果过大说明网卡在发送时有问题;
route
route命令是用来查看和设置Linux系统的路由信息,以实现与其他网络是通讯。要实现两个不同的子网之间的网络通讯,需要一台连接两个网络的路由器或者同时位于两个网络的网关来实现。
在Linux系统中,我们通常设置路由是为了解决以下问题:该Linux机器在一个局域网,局域网中有一个网关,能够让你的机器访问Internet,那么我们就需要将这台机器的IP地址设置为Linux机器的默认路由。
1)、增加一个默认路由:
route add 0.0.0.0 gw 网关地址
2)、删除一个默认路由:
route del 0.0.0.0 gw 网关地址
3)、显示出当前路由表
route
ping
ping检测是否能够与远端机器建立网络通讯连接。它是通过Internet控制报文协议ICMP来实现的。而现在有些主机对ICMP进行过滤,在这种特殊情况下,有可能使得一些主机ping不通,但能过建立网络连接。这是一种特例。
下面通过一些实例来说明一些常用的组合,若需更详细地了解,可以通过www.linuxaid.com.cn网站在线培训的命令查询工具获得。
1)、检测与某机器的连接是否正常:
ping 192.168.0.1
ping www.google.com.hk
即:我们可以用IP地址或域名来指定机器。
2)、指定ping回应次数为4:
在Linux下,如果你不指定回应次数,ping命令将一直不断地向远方机器发送ICMP信息。我们可以通过-c参数来限定:
ping -c 4 192.168.0.1
3)、通过特定的网卡进行ping:
有时,我们需要检测某块网卡(系统中有多块)能够ping通远方机器。我们需要在执行ping命令时指出:
ping -I eth0 192.168.0.1
traceroute
如果ping不通远方的机器,想知道是在什么地方出的问题;或者你想知道你的信息到远方机器都经过了哪些路由器,可以使用traceroute命令。顾名思义:trace是跟踪,route是路由,也就是跟踪路由。
使用这个命令很简单:
traceroute 远程主机IP地址或域名
这个命令的输出类似:
1 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3
2 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3
...........................
1)最前面的数字代表“经过第几站”;
2)路由器(网关)的IP地址就是“该站”的IP地址
3) 访问所需时间1、2、3是指访问到这个路由器(网关)需要的时间。
netstat
在Linux系统中,提供了一个功能十分强大的查看网络状态的工具:netstat。他可以让您知道整个Linux系统的网络情况。
1)、统计出各网络设备传送、接受数据包的情况:
这个命令将输出一张表,其中包括:
Iface:网络接口名MTU:最大传输单元
RX-OK:共成功接收多少个包 RX-ERR:接收的包中共有多少个错误包
RX-DRP:接收时共丢失多少个包 RX-OVR:共接收了多少个碰撞包
TX-OK:共成功发送多少个包 TX-ERR:发送的包中共有多少个错误包
TX-DRP:发送时共丢失多少个包 TX-OVR:共接受了多少个碰撞包
2)、显示网络的统计信息
使用命令: netstat -s
使用这个命令,将会以摘要的形式统计出IP、ICMP、TCP、UDP、TCPEXT形式的通信信息。
3)、显示出TCP传输协议的网络连接情况:
使用命令:netstat -t
这个命令的输出也是一张表,包括:
Local Address: 本地地址,格式是IP地址:端口号
Foreign Address:远程地址,格式也是IP地址:端口号
State:连接状态,包括LISTEN、ESTABLISHED、TIME_WAIT等。
4)、只显示使用UDP的网络连接情况:
使用命令:netstat -p udp
输出格式也是一样的
5)、显示路由表:
使用命令:netstat -r
这个命令的输出与route命令的输出相同。
网络配置
在RedHat Linux 7.1中有一些用于存放网络配置的文件:
1)、/etc/hosts
在该文件中存放的是一组IP地址与主机名的列表,如果在该列表中指出某台主机的IP地址,那么访问该主机时将无需进行DNS解析
2)、/etc/host.cof
该文件用来指定域名解析方法的顺序,如:
order,hosts,bind
它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP地址的对应关系,再通过域名服务器bind进行解析。
3)、/etc/resolv.conf
在该文件中存放域名服务器的IP地址
4)、/etc/protocols
Red Hat Linux 7.1系统使用该文件辨别本主机使用的,并通过它完成协议和协议号之间的映射,用户不应该修改该文件
5)、/etc/services
该用户用于定义现有的网络服务,用户无需修改它,它通常由安装网络服务的程序来维护。该文件包括网络服务名、网络端口号和使用的协议类型,其中网络端口号和使用的协议类型之间有一个斜杠分开,在设置行的最后还可以添加一些服务的别名。
6)、/etc/xinetd.d目录
在Linux系统中有一个超级服务程序inetd,大部分的网络服务都是由它启动的,如chargen、echo、finger、talk、telnet、wu-ftpd等...,在7.0之间的版本它的设置在/etc/inetd.conf中配置的,在Red Hat 7.0后,他就改成一个xinetd.d目录。
在xinetd.d目录中,每一个服务都有一个相应的配置文件,我们以telnet为例,说明一下各个配置行的含义:
service telnet
{
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.telnetd
log_on_failure+=USERID
disable=yes
}
第一行:说明该配置用来设置telnet服务
第二行:说明Socket连接类型是stream, 也就是TCP
第三行:指不等待到启动完成
第四行:是指以root用户启动服务进程
第五行:指服务进程是/usr/sbin/in.telnetd
第六行:用于做一些出错日志
第七行:禁止远方telnet,如果需要开放则将该配置改为:disable=no
修改了xinetd的配置,需要重启xinetd才能生效,有两种方法可以实现:
1)执行如下命令:
/etc/rc.d/init.d/xinetd restart
2) 执行如下命令:
killall -HUP xinetd
网络服务访问限制
在Red Hat Linux 7.1中加强了网络安全的防范,如果你安装时安全等级不是在最低一级的话,那么本机之外的所有访问都可能被拒绝。这是因为在Red Hat 7.1中做了一些默认的ipchains设置,这是Linux内置的防火墙机制,它可以使用一些规则来允许或禁止某种访问。
它的规则存放在/etc/sysconfig/ipchains文件中,如果你想让它暂时不生效,那你可以运行/etc/rc.d/init.d/ipchains stop,那么所有的规则都被取消,所有的网络访问都将被允许。
你可以运行/etc/rc.d/init.d/ipchains status 来获知现在对网络访问的限制。关于这方面的知识,有兴趣的读者可参考《Linux防火墙》一书.
web服务器
在Linux系统中最适合与做服务器的当属Apache, Rea Hat Linux 7.1中集成了Apche 1.3.19版,你只要在安装时选中WEB服务器,那么系统将自动完成Apache服务器的安装,在默认情况下,WWW服务就已经启动了。
如果你在安装时没有选择WEB服务包,那也没关系,你只要执行下面的命令就行:
1)将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令:
#mount /mnt/cdrom
2)转到apache安装文件所在目录:
#cd /mnt/cdrom/RedHat/RPMS
3)只用rpm完成安装
#rpm -ivh apache-1.3.19-5.i386.rpm
现在,你就已经拥有了一个基于Linux的WEB服务器了,它的配置文件位于/etc/httpd/conf目录下,你可根据需要进行相应的修改,修改完成后执行:/etc/rc.d/httpd restart即可。而WEB服务的主目录则在/var/www/html目录下,你可以将你的WEB页传到这里就可以更新了。
而如果每一个用户都想要拥有一个自己的主页的话,则:
1)而如果在自己的用户主目录下建一个public_html目录:
#cd
#mkdir public_html
2)然后将自己的用户主目录的权限改为大家可读
#chmod 755 用户主目录
3)这样你就可以使用“localhost/~用户名/”访问每一个用户的主页了。
FTP服务器
在Red Hat Linux 7.1中集成了Wu-FTP 2.6.1做为FTP服务器,在你安装时只要选择了FTP包的话,那么你的Linux服务器就是一台FTP服务器了,如果当时没有安装的话,也没有关系,跟安装apache一样:
1)将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令:
#mount /mnt/chrom
2)转到wu-ftp安装文件所在目录:
#cd /mnt/cdrom/RedHat/RPMS
3)使用RPM完成安装:
#rpm -ivh wu-ftp-2.6.16.i386.rpm
由于FTP服务时有xinetd超级服务器创建的,所以关于FTP服务器的配置在/etc/xinetd.h目录下的wu-ftpd文件中:
service ftp
{
socket_type=stream
wait=no
user=root
server=/usr/sbin/in.ftpd
server_args=-l -a
log_on_success+=DURATION USERID
log_on_failure+=USERID
nice=10
disable=no
}
下面,介绍一些关于FTP服务器的管理方法:
1、暂时关闭FTP服务
有两种方法可以使FTP服务暂停:
1)以root用户身份执行 :
#ftpshut now
这样就会在/etc目录下生成一个shutmsg的文件,这时FTP服务器将无法使用,直到你删掉这个文件。
2)修改配置文件/etc/xinetd.d/wu-ftp,将disable=no改为disable=yes, 然后重启xinetd.
2、禁止某用户使用FTP服务
有两种方法可以禁止某用户使用FTP服务器:
1)在/etc/ftpuser中写入该用户账号名
2)在/etc/ftpaccess中写入一行配置:
deny-gid用户名
用这种方法还可以禁止一个组的用户使用
deny-gid 组名
3、禁止匿名用户(anonymous)登陆FTP服务器
有许多种方法可以实现,但我觉得最简单有效的方法就是将anonymous写入配置文件:/etc/ftpuser中,就可以了。
文件服务器
我们还可以使用Red Hat Linux 7.1内置的Samba为局域网内的Windows主机做文件服务器。如果在安装系统时选择了SMB服务器软件包的话,那么装完以后,Samba服务就已经Ready了。
不过为了方便配置,建议安装一下swat,它提供了一个WEB界面的配置工具。它的安装包是第二张光盘的/RedHat/RPMS/samba-swat-2.0.7-36.i386.rpm
安装完以后,它会在xinetd.d目录中新建一个swat文件,其内容为:
service swat
{
port=901
socket_type=stream
wait=no
only_from=127.0.0.1
server=/usr/sbin/swat
log_on_failure+=USERID
disable=yes
}
我们看到disable的值是yes,也就是说,现在swat还没与启用,因此,我们需要将其改为disable=no,然后重启xinted。另外,由于这里有一句:only_from=127.0.0.1
说明只能在本机使用swat,而如果你想在Windows中用IE来配置的话,请将这句注释掉或删掉。
下面,我们以设置一个大家都可以访问的homes目录为例,说明SWAT的设置方法:
1)打开IE浏览器,在地址栏上输入Linux的主机名或Ip以及“:901”,例如:
http://192.168.0.0:901
2) 如果连接正常,将出一个登陆提示窗,要求输入用户名与密码,在此以root为用户名,并输入root用户的密码,再单击确定;
3)如果输入无误,将出现Samba的配置界面:Swat的首页;
我们可以看到在Swat界面中,最上面有7个图标,分别是:HOME(首页)、GLOBALS(全局设置)、SHARES(共享设置)、PRINTERS(打印机)、STATUS(状态)、VIEW(查看)、PASSWORD(密码)
4)首先,我们单击GLOBALS图标,将出现GLOBALS设置页面,其中我们对以下几项进行设置:
?BaseOption a Workgroup:在这输入工作组名(如NetBIOS中的工作组名)
?BaseOption a Netbios name:主机名
?SecurityOprion a Security: 选择安全等级,在些选择“SHARE”
?SecurityOption a hosts allow: 允许的主机,通常写入你的网络号,如192.168.0.
?SecurityOption a hosts deny:如果你不想让某台机器使用,则写入它的IP地址
修改完后,点击“Commit Changes”按钮(在7个图标的下边以下),保存设置。
5)然后,点击SHARES图标,进行共享设置:
第一步: 在Create Share按钮的右边文本框中输入要设置的共享名
第二步:单击“Create Share”按钮;
第三步:确认“BaseOPtion a Path”的值为你想共享的目录,例如/home/smb/test(注意:这个目录必须是已经存在的)
第四步:将“SecurityOption a writeable”的值设置为Yes,使该目录共享为可写;
第五步:将“SecutiryOption a guest ok”的值设置为Yes,使该目录无需秘密访问;
第六步:在“SecurityOprtion a hosts allow、hosts deny”中设置相应的主机IP;
第七步:将“BrowseOption a browseable”设置为Yes,使其便于使用
最后,我们就可以在Window 9x上通过网络邻居访问到这台Samba服务器,并且有一个可读,可写的共享目录。
在平时使用的时候,系统管理员可以点击“STATUS”按钮,切换到状态页面对其进行检测,在这个页面上,你可以:
1)启动(Start smbd按钮)、停止Samba(Stop Smbd按钮)服务,以及重启服务(Restart smbd按钮);
2)另外,你可以看到当前与Samba服务器建立的连接(Active Connections),并且可以按下“X”按钮,中止它的访问;
3)同时你还可以检测到郑州访问的文件夹(Active Shares),正在打开的文件(Open FIles)。
Samba服务还可以对用户进行认证,与window NT域进行集成等强大的功能,在些限于篇幅就不详细介绍,有兴趣的读者可以参考《实战Samba》一书
配置IP的方法:
1、这种方法立即生效,但是重启将不会保存。(除了这个方法,其他方法都可以保存下来)
ifconfig eth0 1.1.1.1 netmask 255.0.0.0 up
ifconfig eth0:1.1.1.3 up//设置一个网卡多个IP的方法(在设置虚拟机主机时有用到)
激活网卡:ifconfig eth0 up
关闭网卡:ifconfig eth0 down
动态获取IP:ifconfig eth0 -dynamic
dhclient
修改Mac值:先关闭网卡:ifconfig eth0 down
再修改MAC值:ifconfig eth0 hw ether 112233445566
再激活网卡:ifconfig eth0 up
B、netconfig或者setp,但只能设置eth0网卡
C、neat:打开图形窗口进行设置
D、配置文件设置:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
注意:配置完后重启网卡service network restart,用第四种方法检查配置文件中的bootup是否为none,如果是DHCP一般会出错的。
配置网关:
查看网关:route
添加默认路由:
route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
删除默认路由:
route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1
Linux路由配置:
1、首先开启路由功能
echo 1>/proc/sys/net/ipv4/ip_forward(1为打开路由功能,0为关闭路由功能)
(在这个实验中只要开启路由功能就OK了)
2、其他路由设置:
A、添加路由信息:
route add -net 10.0.0.1 netmask 255.0.0.0 gw 192.168.0.1
或者route add -net 10.0.0.1 netmask 255.0.0.0 dev eth0(通过本机的第一个网卡出去)
删除路由条目:只要把上面的Add改为Del就可以了
B、用Zebra配置路由(配置就跟Ciso的是一样的命令):
1)设置登录密码:
vi /etc/zebra/zebra.conf
password abc #设置连接时的密码
enable password 123 #设置特权密码
2)开启服务
service zebra start
3)建立要配置的路由协议文件
如用Rip协议: touch /etc/zebra/ripd.conf
4) 开启Rip协议:service ripd start
5)进入Zebra:
方法一、Telnet 127.0.0.1 2601 ##记得端口是2601
如果没有设置密码,默认情况下是不允许连接的,适合于远程登录
方法二、Vthsh
##不用密码也可以进入,如果有密码还会显示出来,但只适用于本地登录
traceroute
traceroute命令也是用于检查网络是否能够正常通信,与ping不同的是,ping命令只能检测出本机到目的host是否能够通信,二traceroute命令则能检测出本机经过了哪些路由器或主机道道目的主机,如果不能到达,其故障具体是出在什么地方。所以我们常常在ping不通是用该命令再进一步查找原因所在。
netstat
netstat命令用于显示网络状态信息,其用途很广泛,可以用来察看网络连接状态、接口配置、路由表等,并取得一些统计信息。该命令的主要参数和用途如下:
-a: 显示所有配置的接口
-i:显示接口的统计信息
-n:以数字的形式显示ip地址
-r:显示内核的路由表
-s:显示计数器的值
ifconfig
前面讲过,ifconfig命令用来察看网络接口的配置情况,也用于调试网络设备是否已经正确安装配置,后者用该命令来重新配置网络,只是用ifconfig命令配置的网络不是永久性的,系统一旦重新启动,先前用ifconfig配置的各种参数便不复存在。
telnet
telnet命令用于远程登录,其命令格式为:telnet主机名(或ip地址)。通过telnet命令登录远程计算机,就像登录到本机上执行操作一样。当然,要想远程登录到一台计算机上,必须知道该机合法的用户名和密码。要提醒大家一点的是,当用telnet命令登录并结束了远程会话后,一定要使用logout命令退出远程系统,以免造成意想不到的问题。
rlogin
rlogin是remote login(远程登录的缩写),与telnet命令很相似,最常用的格式为:
rlogin host
rlogin命令还带有一些参数,常用的有:
-8:始终允许8位输入数据管道,允许发送格式化ANSI字符和其他特殊代码。
-E:禁止把任何字符当成转义字符。当该参数与-8一起使用时,便提供一个完全的透明连接。
-L:允许rlogin会话在litout模式下允许
-x:为所有通过rlogin会话交互的数据进行DES加密,从而提供安全性。
ftp
ftp命令是标准的文件传输协议的用户接口,命令格式为:ftp 主机名或ip地址,用于在TCP/IP网络上进行文件传输。ftp命令可以用来传输ASCII文件和二进制文件。同样,要想实现ftp文件传输,你必须知道远程计算机上合法的用户名和口令,并且该用户名具有所要传输的文件的存取权限
rcp
rcp代表“remote file copy”(远程文件拷贝)。该命令用于在计算机之间拷贝文件。
rcp命令有两种格式,第一种格式用于文件到文件的拷贝;第二种格式用于把文件或目录拷贝到另一个目录中
rcp命令的一般格式是:
rcp [-px] [-k realm] file1 file2
rcp [-px] [-r] [-k realm] file
directory 每个文件或目录参数既可以是远程文件名也可以是本地文件名。远程文件名具有如下形式:rname@rhost:path,其中rname是远程用户名,rhost是远程计算机名,path是这个文件的路径。
rcp命令的各项含义如下:
-r 递归把源目录中的所有内容拷贝到目的目录中。要使用这个选项,目的必须是一个目录
-p 试图保留源文件的修改时间和模式,忽略umask
-k 请求rcp获得在制定区域内的远程主机的Kerberos许可,而不是获得由krb——relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可
-x 为传送的所有数据打开DES加密。这会影响响应时间和cpu利用率,但是可以提高安全性。如果在文件名中制定的路径不是完整的路径名,那么这个路径被解释为相对远程机上同名用户的主目录。如果没有给出远程用户名,就使用当前用户名。如果远程机上的路径包含特殊shell字符,需要用反斜线(//)、双引号(“)或单引号(‘)括起来,使所有的shell元字符都能被远程地解释。需要说明的是,rcp不是提示输入口令,它通过rsh命令来执行拷贝。