一.安装和配置网络设备
在安装linux时,如果你有网卡,安装程序将会提示你给出tcp/ip网络的配置参数,如本机的 ip地址,缺省网关的ip地址,DNS的ip地址等等.根据这些配置参数,安装程序将会自动把网卡(linux系统首先要支持)驱动程序编译到内核中去.但是我们一定要了解加载网卡驱动程序的过程,那么在以后改变网卡,使用多个网卡的时候我们就会很容易的操作.网卡的驱动程序是作为模块加载到内核中去的,所有linux支持的网卡驱动程序都是存放在目录/lib/moles/(linux版本号)/net/ ,例如inter的82559系列10/100M自适应的引导网卡的驱动程序是eepro100.o,3COM的3C509 ISA网卡的驱动程序是3C509.o,DLINK的pci 10网卡的驱动程序是via-rhine.o,NE2000兼容性网卡的驱动程序是ne2k-pci.o和ne.o.在了解了这些基本的驱动程序之后,我们就可以通过修改模块配置文件来更换网卡或者增加网卡.
1. 修改/etc/conf.moles 文件
这个配置文件是加载模块的重要参数文件,大家先看一个范例文件
#/etc/conf.moles
alias eth0 eepro100
alias eth1 eepro100
这个文件是一个装有两块inter 82559系列网卡的linux系统中的conf.moles中的内容.alias命令表明以太口(如eth0)所具有的驱动程序的名称,alias eth0 eepro100说明在零号以太网口所要加载的驱动程序是eepro100.o.那么在使用命令 modprobe eth0的时候,系统将自动将eepro100.o加载到内核中.对于pci的网卡来说,由于系统会自动找到网卡的io地址和中断号,所以没有必要在conf.moles中使用选项options来指定网卡的io地址和中断号.但是对应于ISA网卡,则必须要在conf.moles中指定硬件的io地址或中断号, 如下所示,表明了一块NE的ISA网卡的conf.moles文件.
alias eth0 ne
options ne io=0x300 irq=5
在修改完conf.moles文件之后,就可以使用命令来加载模块,例如要插入inter的第二块网卡:
#insmod /lib/moles/2.2.14/net/eepro100.o
这样就可以在以太口加载模块eepro100.o.同时,还可以使用命令来查看当前加载的模块信息:
[root@ice /etc]# lsmod
Mole Size Used by
eepro100 15652 2 (autoclean)
返回结果的含义是当前加载的模块是eepro100,大小是15652个字节,使用者两个,方式是自动清除.
2. 修改/etc/lilo.conf文件
在一些比较新的linux版本中,由于操作系统自动检测所有相关的硬件,所以此时不必修改/etc/lilo.conf文件.但是对于ISA网卡和老的版本,为了在系统初始化中对新加的网卡进行初始化,可以修改lilo.conf文件.在/etc/lilo.conf文件中增加如下命令:
append="ether=5,0x240,eth0 ether=7,0x300,eth1"
这条命令的含义是eth0的io地址是0x240,中断是5,eth1的io地址是0x300,中断是7.
实际上,这条语句来自在系统引导影像文件时传递的参数,
LILO: linux ether=5,0x240,eth0 ether=7,0x300,eth1
这种方法也同样能够使linux系统配置好两个网卡.类似的,在使用三个以上网卡的时候,也可以依照同样的方法.
在配置好网卡之后,就应该配置TCP/IP的参数,在一般情况下,在安装linux系统的同时就会提示你配置网络参数.但是之后如果我们想要修改网络设置,可以使用如下的命令:
#ifconfig eth0 A.B.C.D netmask E.F.G.H
A.B.C.D 是eth0的IP地址,E.F.G.H是网络掩码.
其实,在linux系统中我们可以给一块网卡设置多个ip地址,例如下面的命令:
#ifconfig eth0:1 202.112.11.218 netmask 255.255.255.192
然后,使用命令#ifconfig -a 就可以看到所有的网络接口的界面:
eth0 Link encap:Ethernet HWaddr 00:90:27:58:AF:1A
inet addr:202.112.13.204 Bcast:202.112.13.255 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:435510 errors:0 dropped:0 overruns:0 frame:2
TX packets:538988 errors:0 dropped:0 overruns:0 carrier:0
collisions:318683 txqueuelen:100
Interrupt:10 Base address:0xc000
eth0:1 Link encap:Ethernet HWaddr 00:90:27:58:AF:1A
inet addr:202.112.11.218 Bcast:202.112.11.255 Mask:255.255.255.192
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:2055 errors:0 dropped:0 overruns:0 frame:0
TX packets:2055 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
我们看到网络接口有三个,eth0 , eth0:1,lo,eth0是真实的以太网络接口,eth0:1和eth0是同一块网卡,只不过绑定了另外的一个地址,lo是会送地址。eth0和eth0:1可以使用不同网段的ip地址,这在同一个物理网段却使用不同的网络地址的时候十分有用。
另外,网卡有一种模式是混杂模式(prosimc),在这个模式下,网卡将会接收网络中所有的数据包,一些linux下的网络监听工具例如tcpmp,snort等等都是把网卡设置为混杂模式.
ifconfig命令可以在本次运行的时间内改变网卡的ip地址,但是如果系统重新启动,linux仍然按照原来的默认的设置启动网络接口。这时候,可以使用netconfig或netconf命令来重新设置默认网络参数。netconfig 命令是重新配置基本的tcp/ip参数,参数包括是否配置为动态获得ip地址(dhcpd和bootp),网卡的ip地址,网络掩码,缺省网关和首选的域名服务器地址。netconf命令可以详细的配置所有网络的参数,分为客户端任务,服务器端任务和其他的配置三个部分,在客户端的配置中,主要包括基本主机的配置(主机名,有效域名,网络别名,对应相应网卡的ip地址,网络掩码,网络设备名,网络设备的内核驱动程序),DNS地址配置,缺省网关的地址配置,NIS地址配置,ipx接口配置,ppp/slip的配置等等。在服务器端配置中,主要包括NFS的配置,DNS的配置,ApacheWebServer配置,Samba的配置和Wu-ftpd的配置。在其他的配置选项中,一个是关于/etc/hosts文件中的主机配置,一个是关于/etc/networks文件中的网络配置信息,最后是关于使用linuxconf配置的信息。
在linuxconf命令下,同样也可以配置网络信息,但是大家可以发现,linuxconf程序是调用netconf来进行网络配置的。
另外,在/etc/sysconfig/network-scripts目录下存放着系统关于网络的配置文件,范例如下:
:<br><br>
ifcfg-eth0* ifdown-post* ifup-aliases* ifup-ppp*
ifcfg-eth1* ifdown-ppp* ifup-ipx* ifup-routes*
ifcfg-lo* ifdown-sl* ifup-plip* ifup-sl*
ifdown@ ifup@ ifup-post* network-functions
ifcfg-eth0是以太口eth0的配置信息,它的内容如下:
DEVICE="eth0" /*指明网络设备名称*/
IPADDR="202.112.13.204" /*指明网络设备的ip地址*/
NETMASK="255.255.255.192" /*指明网络掩码*/
NETWORK=202.112.13.192 /*指明网络地址*/
BROADCAST=202.112.13.255 /*指明广播地址*/
ONBOOT="yes" /*指明在系统启动时是否激活网卡*/
BOOTPROTO="none" /*指明是否使用bootp协议*/
所以,我们也可以修改这个文件来进行linux下网络参数的改变。[/SIZE]
--------------------------------------------------------------------------------
二 网络服务的配置
在这一部分,我们并不是详细的介绍具体的网络服务器(DNS,FTP,WWW,SENDMAIL)的配置(那将是巨大的篇幅),而是介绍一下与linux网络服务的配置相关的文件.
1. LILO的配置文件
在linux系统中,有一个系统引导程序,那就是lilo(linux loadin),利用lilo可以实现多操作系统的选择启动.它的配置文件是/etc/lilo.conf.在这个配置文件中,lilo的配置参数主要分为两个部分,一个是全局配置参数,包括设置启动设备等等.另一个是局部配置参数,包括每个引导影像文件的配置参数.在这里我就不详细介绍每个参数,特别的仅仅说明两个重要的参数:password和restricted选项,password选项为每个引导的影像文件加入口令保护.
我们都知道,在linux系统中有一个运行模式是单用户模式,在这个模式下,用户是以超级用户的身份登录到linux系统中.人们可以通过在lilo引导的时候加入参数(linux single 或linux init 0)就可以不需要口令直接进入单用户模式的超级用户环境中,这将是十分危险的.所以在lilo.conf中增加了password的配置选项来为每个影像文件增加口令保护.
你可以在全局模式中使用password选项(对所有影像文件都加入相同的口令),或者为每个单独的影像文件加入口令.这样一来,在每次系统启动时,都会要求用户输入口令.也许你觉得每次都要输入口令很麻烦,可以使用restricted选项,它可以使lilo仅仅在linux启动时输入了参数(例如 linux single)的时候才会检验密码.这两个选项可以极大的增加系统的安全性,建议在lilo.conf文件中设置它们.
由于password在/etc/lilo.conf文件是以明文存放的,所以必须要将/etc/lilo.conf文件的属性改为仅仅root可读(0400).
另外,在lilo的早期版本中,存在着引导扇区必须存放到前1024柱面的限制,在lilo的2.51版本中已经突破了这个限制,同时引导界面也变成了图形界面更加直观.将最新版本下载解压后,使用命令make" 后,使用命令make install即可完成安装.注意: 物理安全才是最基本的安全,即使在lilo.conf中增加了口令保护,如果没有物理安全,恶意闯入者可以使用启动软盘启动linux系统.
2. 域名服务的配置文件
(1)/etc/HOSTNAME 在这个文件中保存着linux系统的主机名和域名.范例文件
ice.xanet.e.cn
这个文件表明了主机名ice,域名是xanet.e.cn
(2)/etc/hosts和/etc/networks文件 在域名服务系统中,有着主机表机制,/etc/hosts和/etc/networks就是主机表发展而来在/etc/hosts中存放着你不需要DNS系统查询而得的主机ip地址和主机名的对应,下面是一个范例文件:
# ip 地址 主机名 别名
127.0.0.1 localhosts loopback
202.117.1.13 www.xjtu.e.cn www
202.117.1.24 ftp.xjtu.e.cn ftp
在/etc/networks 中,存放着网络ip地址和网络名称的一一对应.它的文件格式和/etc/hosts是类似的
(3)/etc/resolv.conf 这个文件是DNS域名解析器的主要配置文件,它的格式十分简单,每一行由一个主关键字组成./etc/resolv.conf的关键字主要有:
domain 指明缺省的本地域名,
search 指明了一系列查找主机名的时候搜索的域名列表,
nameserver 指明了在进行域名解析时域名服务器的ip地址.下面给出一个范例文件:
#/etc/resolv.conf
domain xjtu.e.cn
search xjtu.e.cn e.cn
nameserver 202.117.0.20
nameserver 202.117.1.9
(4)/etc/host.conf 在系统中同时存在着DNS域名解析和/etc/hosts的主机表机制时,由文件/etc/host.conf来说明了解析器的查询顺序.范例文件如下:
#/etc/host.conf
order hosts,bind #解析器查询顺序是文件/etc/hosts,然后是DNS
multi on #允许主机拥有多个ip地址
nospoof on #禁止ip地址欺骗
3. DHCP的配置文件
/etc/dhcpd.conf是DHCPD的配置文件,我们可以通过在/etc/dhcpd.conf文件中的配置来实现在局域网中动态分配ip地址,一台linux主机设置为dhcpd服务器,通过鉴别网卡的MAC地址来动态的分配ip地址.范例文件如下:
option domain-name "chinapub.com";
use-host-decl-names off;
subnet 210.27.48.0 netmask 255.255.255.192
{
filename "/tmp/image";
host dial_server
{
hardware ethernet 00:02:b3:11:f2:30;
fixed-address 210.27.48.8;
filename "/tmp/image";
}
}
在这个文件中,最主要的是通过设置的硬件地址来鉴别局域网中的主机,并分配给它指定的ip地址,hardware ethernet 00:02:b3:11:f2:30指定要动态分配ip的主机得网卡的MAC地址,fixed-address 210.27.48.8指定分配其ip地址。filename "/tmp/image"是通过tftp服务,主机所要得到的影像文件,可以通过得到的影像文件来引导主机启动。
4. 超级守候进程inetd的配置
在linux系统中有一个超级守候进程inetd,inetd监听由文件/etc/services指定的服务的端口,inetd根据网络连接请求,调用相应的服务进程来相应请求.在这里有两个文件十分重要,/etc/inetd.conf和/etc/services,文件/etc/services定义linu系统中所有服务的名称,协议类型,服务的端口等等信息,/etc/inetd.conf是inetd的配置文件,由它来指定那些服务可以由inetd来监听,以及相应的服务进程的调用命令.首先介绍一下/etc/services文件,/etc/services文件是一个服务名和服务端口对应的数据库文件,如下面所示:/etc/services文件
(实际上,以上仅仅是/etc/services的一部分,限于篇幅没有全部写出)
在这个文件中,为了安全考虑,我们可以修改一些常用服务的端口地址,例如我们可以把telnet服务的端口地址改为52323,www的端口改为8080,ftp端口地址改为2121等等,这样仅仅需要在应用程序中修改相应的端口即可.这样可以提高系统的安全性.
/etc/inetd.conf文件是inetd的配置文件, 首先要了解一下linux服务器到底要提供哪些服务。一个很好的原则是" 禁止所有不需要的服务",这样黑客就少了一些攻击系统的机会./etc/inetd.conf范例文件
大家看到的这个文件已经修改过的文件,除了telnet 和ftp服务,其他所有的服务都被禁止了.在修改了/etc/inetd.conf之后,使用命令kill -HUP (inetd的进程号),使inetd重新读取配置文件并重新启动即可.
5. ip route的配置
利用linux,一台普通的微机也可以实现高性价比的路由器.首先让我们了解一下linux的查看路由信息的命令:
[root@ice /etc]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.112.13.204 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
202.117.48.43 0.0.0.0 255.255.255.255 UH 0 0 0 eth1
202.112.13.192 202.112.13.204 255.255.255.192 UG 0 0 0 eth0
202.112.13.192 0.0.0.0 255.255.255.192 U 0 0 0 eth0
202.117.48.0 202.117.48.43 255.255.255.0 UG 0 0 0 eth1
202.117.48.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 202.117.48.1 0.0.0.0 UG 0 0 0 eth1
命令netstat -r n 得到输出结果和route -n是一样的.它们操作的都是linux 内核的路由表.
命令cat /proc/net/route的输出结果是以十六进制表示的路由表.
[root@ice /etc]# cat /proc/net/route
Iface Destination Gateway Flags RefCnt Use Metric Mask
eth0 CC0D70CA 00000000 0005 0 0 0 FFFFFFF
eth1 2B3075CA 00000000 0005 0 0 0 FFFFFFF
eth0 C00D70CA CC0D70CA 0003 0 0 0 C0FFFFF
eth0 C00D70CA 00000000 0001 0 0 0 C0FFFFF
eth1 003075CA 2B3075CA 0003 0 0 0 00FFFFF
eth1 003075CA 00000000 0001 0 0 0 00FFFFF
lo 0000007F 00000000 0001 0 0 0 000000F
eth1 00000000 013075CA 0003 0 0 0 0000000
通过计算可以知道,下面的这个路由表(十六进制)和前面的路由表(十进制)是一致的.
我们还可以通过命令route add (del )来操作路由表,增加和删除路由信息.
除了上面的静态路由,linux还可以通过routed来实现rip协议的动态路由.我们只需要打开linux的路由转发功能,在/proc/sys/net/ipv4/ip_forward文件中增加一个字符1.
三.网络的安全设置
在这一部分,再次强调一定要修改/etc/inetd.conf,安全的策略是禁止所有不需要的服务.除此之外,还有以下几个文件和网络安全相关.
(1)./etc/ftpusers ftp服务是一个不太安全的服务,所以/etc/ftpusers限定了不允许通过ftp访问linux主机的用户列表.当一个ftp请求传送到ftpd,ftpd首先检查用户名,如果用户名在/etc/ftpusers中,则ftpd将不会允许该用户继续连接.范例文件如下:
# /etc/ftpusers - users not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
nadmin
(2)/etc/securetty 在linux系统中,总共有六个终端控制台,我们可以在/etc/securetty中设置哪个终端允许root登录,所有其他没有写入文件中的终端都不允许root登录.范例文件如下:
# /etc/securetty - tty's on which root is allowed to login
tty1
tty2
tty3
tty4
(3)tcpd的控制登录文件/etc/hosts.allow和/etc/hosts.deny
在tcpd服务进程中,通过在/etc/hosts.allow和/etc/hosts.deny中的访问控制规则来控制外部对linux主机的访问.它们的格式都是
service-list : hosts-list [ : command]
服务进程的名称 : 主机列表 可选,当规则满足时的操作
在主机表中可以使用域名或ip地址,ALL表示匹配所有项,EXCEPT表示除了某些项, PARANOID表示当ip地址和域名不匹配时(域名伪装)匹配该项.
范例文件如下:
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
ALL : 202.112.13.0/255.255.255.0
ftpd: 202.117.13.196
in.telnetd: 202.117.48.33
ALL : 127.0.0.1
在这个文件中,网段202.112.13.0/24可以访问linux系统中所有的网络服务,主机202.117.13.196只能访问ftpd服务,主机202.117.48.33只能访问telnetd服务.本机自身可以访问所有网络服务.
在/etc/hosts.deny文件中禁止所有其他情况:
#/etc/hosts.deny
ALL : DENY : spawn (/usr/bin/finger -lp @%h | /bin/mail -s "Port Denial noted in %d-%h" root)
在/etc/hosts.allow中,定义了在所有其他情况下,linux所应该执行的操作.spawn选项允许linux系统在匹配规则中执行指定的shell命令,在我们的例子中,linux系统在发现无授权的访问时,将会发送给超级用户一封主题是"Port Denial noted in %d-%h"的邮件,在这里,我们先要介绍一下allow和deny文件中的变量扩展.
(4)/etc/issue和/etc/issue.net
在我们登录linux系统中的时候,我们常常可以看到我们linux系统的版本号等敏感信息.在如今的网络攻击行为中,许多黑客首先要收集目标系统的信息,版本号等就是十分重要的信息,所以在linux系统中一般要把这些信息隐藏起来./etc/issue和/etc/issue.net就是存放这些信息的文件.我们可以修改这些文件来隐藏版本信息.
另外,在每次linux重新启动的时候,都会在脚本/etc/rc.d/rc.local中再次覆盖上面那两个文件./etc/rc.d/rc.local文件的范例如下:
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
if [ -f /etc/redhat-release ]; then
R=$(cat /etc/redhat-release)
arch=$(uname -m)
a="a"
case "_$arch" in
_a*) a="an";;
_i*) a="an";;
esac
NUMPROC=`egrep -c "^cpu[0-9]+" /proc/stat`
if [ "$NUMPROC" -gt "1" ]; then
SMP="$NUMPROC-processor "
if [ "$NUMPROC" = "8" -o "$NUMPROC" = "11" ]; then
a="an"
else
a="a"
fi
fi
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue
#echo "$R" >> /etc/issue
# echo "Kernel $(uname -r) on $a $SMP$(uname -m)" >> /etc/issue
cp -f /etc/issue /etc/issue.net
echo >> /etc/issue
在文件中黑体的部分就是得到系统版本信息的地方.一定要将他们注释掉.
(5)其他配置
在普通微机中,都可以通过ctl+alt+del三键的组合来重新启动linux.这样是十分不安全的,所以要在/etc/inittab文件中注释该功能:
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
『贰』 linux 固定ip 与ifconfig查询不一样
IP是一样的,是你来固定了IP。
Bcast:10.255.255.255 这个是源你的IP段最后一个255,是默认的广播地址。
Mask:255.0.0.0 这个是默认的子网掩码啊。你自己设置的255.255.255.0 按照你的10.0网段来说是错误的。你可以查下ABC三类网段。
『叁』 linux中网络配置可以有几种方法实现
1.通过修改网络配置文件
/etc/network/interfaces
网络接口参数配置文件, 下面是一个配置示例 , 有两个网络接口 , 其中 eth0 分配静态 IP 地址 , eth1 动态获取 IP 地址 :
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.254
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth1
iface eth1 inet dhcp
修改完成后,需要重启网络设备
# /etc/init.d/networking restart
配置dns 则修改 /etc/resolve.conf文件。
search necas.nec.com.cn
nameserver 192.168 .203.2
配置hostname 则是 修改 /etc/hosts
127.0.0.1 localhost
127.0.0.1 con
配置完hostname后,可以用ping命令测试一下你的hostname是否已经通了。
ping yourhostname
这样就完成了一次网络配置所需要配置的ip信息,dsn信息,hostname 信息等配置。
但对于不同的linux来说,也许配置文件不同,上面在Ubuntu中做过测试。
在red hat中有些不同。
主机名 和 默认网关 保存在/etc/sysconfig/network该文件中。
而网络配置信息保存在网卡设备文件中 /etc/sysconfig/network-scripts/ifcfg-ethn其中n是网卡的编号。
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.203.255
IPADDR= 192.168.203 .2
NETMASK=255.255.255.0
NETWORK= 192.168.203 .9
GATEWAY= 192.168.203.1
HOSTNAME=con
ONBOOT=yes
TYPE=Ethernet
貌似这里也可以修改hostname 和 默认网关。
总之上面已经可以完成一次网络配置了。
2. 采用命令行配置
只要是应用ifconfig命令。
用于配置常驻内核的网络接口。它用于在引导成功时设定网络接口。此后,只在需要调试及系统调整时才使用。
命令格式:
ifconfig [接口 ]
ifconfig 接口 [aftype] options | address ...
如没有给出参数, ifconfig 显示当前有效接口的状态。如给定单个 接口 作为参数,它只显示给出的那个接口的状态;如果给出一个 -a 参数,它会显示所有接口的状态,包括那些停用的接口。否则就对一个接口进行配置。
选项
接口 接口名称。通常是一个后跟单元号的驱动设备名,例如第一个以太接口 eth0 。
up
此选项激活接口。如果给接口声明了地址,等于隐含声明了这个选项。
down
此选项使接口驱动设备关闭。
netmask addr
为接口设定 IP 网络掩码。缺省值通常是 A , B 或 C 类的网络掩码 ( 由接口的 IP 地址推出 ) ,但也可设为其它值。
add addr/prefixlen
为接口加入一个 IPv6 地址。
del addr/prefixlen
为接口删除一个 IPv6 地址。
hw class address
如接口驱动程序支持,则设定接口的硬件地址。此选项必须后跟硬件的类型名称和硬件地址等价的可打印 ASCII 字符。当前支持的硬件类型包括 ether ( 以太网 ) , ax25 (AMPR AX.25) , ARCnet 和 netrom (AMPR NET/ROM)
利用ifconfig 命令查看网络信息 :
ifconfig
eth0 Link encap:Ethernet HWaddr 00:15:58:3E:F2:6B
inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::215:58ff:fe3e:f26b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:29458 errors:0 dropped:0 overruns:0 frame:0
TX packets:23690 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10945195 (10.4 MiB) TX bytes:2935004 (2.7 MiB)
Interrupt:169 Base address:0xe200
eth0:0 Link encap:Ethernet HWaddr 00:15:58:3E:F2:6B
inet addr:192.168.1.244 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:169 Base address:0xe200
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:354 errors:0 dropped:0 overruns:0 frame:0
TX packets:354 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:45062 (44.0 KiB) TX bytes:45062 (44.0 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:18.18.18.13 P-t-P:18.18.18.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:9631 errors:0 dropped:0 overruns:0 frame:0
TX packets:9189 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:8460352 (8.0 MiB) TX bytes:913898 (892.4 KiB)
ifconfig的第一种格式(或使用不带任何参数的 ifconfig 命令)可以用来查看当前系统的网络配置情况。
* eth0 : 表示网卡代号
* lo : Linux 内部的网络回环地址 , 用于模拟网络行为 ,
* HWaddr :网卡的硬件地址 , 也就是 MAC 地址
* inet addr :网卡的 ip 地址
* Bcast :广播地址 ( broadcast ) ;
* Mask :子网掩码;
* MTU :最大传输单元的缩写 (Maximum Trasmission Unit), 标示此网络接口的可传输的最大封包 , 此值的设定错误可能引起网络故障 .
* RX :网络从起动到现在为止数据的接收情况
* TX :网络从起动到现在为止数据的发送情况
* collisions :网络信号发生冲突的情况;
激活网络设备
ifconfig eth0 up
更改网络设备信息
#ifconfig eth0 192.168.1.112 netmask 255.255.255.0
关闭网络设备
ifconfig eth0 down
修改网卡的MAC 地址
ifconfig eth0 down
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
ifconfig eth0 up
上面是对ifcofig命令一个简单的介绍。
下面是进行网路配置的步骤:
ifconfig eth0 ip 192.168.203.2 netmask 255.255.255.0
然后重启etho
ifconifg eth0 down
ifconfig eth0 up
然后配置默认网关
route add default gw 192.168.203.1
然后最好重启一下eth0
修改hostname 可以用命令hostname yourhostname
但重启后修改将无效。所以还是通过上面修改配置文件的方法修改hostname
修改dns也是通过上述配置文件的方法进行。
『肆』 linux如何配置网卡
Linux下网卡命名规律:eth0,eth1。第一块以太网卡,第二块。lo为环回接口,它的IP地址固定为127.0.0.1,掩码8位。它代表你的机器本身。 1、ifconfig是查看网卡的信息 ifconfig [Interface]
Interface是可选项,如果不加此项,则显示系统中所有网卡的信息。如果添加此选项则显示所指定的网卡信息. 例如:ifconfig eth0
eth0 Link encap:Ethernet
HWaddr 00:0C:29:F3:3B:F2
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:78 errors:0 dropped:0 overruns:0 frame:0 TX packets:104 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:11679 (11.4 Kb) TX bytes:14077 (13.7 Kb)
Interrupt:10 Base address:0x1080 可以看到:
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址) 第二行:网卡的IP地址、子网、掩码
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第四、五行:接收、发送数据包情况统计 第七行:接收、发送数据字节数统计信息。
(1) 配置eth0的IP地址, 同时激活该设备。
#ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up (2) 配置eth0别名设备eth0:1的IP地址,并添加路由。 #ifconfig eth0:1 192.168.1.3
#route add –host 192.168.1.3 dev eth0:1 (3) 激活设备。 #ifconfig eth0:1 up
(4) 禁用设备。 #ifconfig eth0:down
(5) 查看指定的网络接口的配置。 #ifconfig eth0
(6) 查看所有的网络接口配置。 #ifconfig
2、 route命令来配置并查看内核路由表的配置情况 例如:
(1) 添加到主机的路由。
#route add –host 192.168.1.2 dev eth0:0 #route add –host 10.20.30.148 gw 10.20.30.40 (2) 添加到网络的路由。
#route add –net 10.20.30.40 netmask 255.255.255.248 eth0
#route add –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route add –net 192.168.1.0/24 eth1 (3) 添加默认网关。
#route add default gw 192.168.1.1 (4) 查看内核路由表的配置。 #route
(5)删除路由。
#route del –host 192.168.1.2 dev eth0:0 #route del –host 10.20.30.148 gw 10.20.30.40
#route del –net 10.20.30.40 netmask 255.255.255.248 eth0
#route del –net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41 #route del –net 192.168.1.0/24 eth1
#route del default gw 192.168.1.1 对于1和2两点可使用下面的语句实现:
Ifconfig eth0 172.16.19.71 netmask 255.255.255.0 Route 0.0.0.0 gw 172.16.19.254 Service network restart
3、 traceroute命令显示数据包到达目的主机所经过的路由 例如:
#traceroute www.sina.com.cn 4、 ping命令来测试网络的连通性 例如:
#ping www.sina.com.cn #ping –c 4 192.168.1.12
5、 netstat命令来显示网络状态信息
『伍』 linux实现HA有几种方法
【实验配置环境】
服务器系统:-5.6
LVS主节点(lvs-master):192.168.2.250(eth0) 心跳直连接口:192.168.1.250(eth1)
LVS备节点(lvs-backup):192.168.2.251(eth0) 心跳直连接口:192.168.1.251(eth1)
Web Server-1:192.168.2.252
Web Server-2:192.168.2.253
VIP(虚拟ip):192.168.2.254
注:4台服务器已经配置好LNMP(Linux+Nginx+PHP(FastCGI模式)+mysql)网站运行环境,当然使用apache也可以。这里主备节点也当作真实服务器使用,所以也配置了网站环境。
本文配置拓扑图:
主备调度器eth1接口使用交叉线相连(理论上是这样)
线序为: 一头为568A标准:白绿,绿;白橙,蓝;白蓝,橙;白棕,棕
另一头为568B标准:白橙,橙;白绿,蓝;白蓝,绿;白棕,棕
在LVS主节点和备节点的/etc/hosts中加入以下内容:
#vim /etc/hosts
192.168.2.250 lvs-master
192.168.2.251 lvs-backup
修改主机名:
# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
hostname=lvs-master
GATEWAY=192.168.2.1
# vim /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 lvs-master localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
这2个文件都要修改,修改完后重启生效,备份机修改方法一样,不在重述。
【下载软件】
[libnet]
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/libnet-1.22.tar.gz
[ipvsadm]
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
[Heartbeat]
wget http://hg.linux-ha.org/heartbeat-STABLE_3_0/archive/STABLE-3.0.4.tar.bz2
[Cluster Glue]
wget http://hg.linux-ha.org/glue/archive/glue-1.0.7.tar.bz2
[Resource Agents]
wget https://download.github.com/ClusterLabs-resource-agents-agents-1.0.4-0-gc06b6f3.tar.gz
一、 配置LVS主节点(lvs-master)
1. 安装libnet
# tar zxvf libnet-1.1.2.2.tar.gz
# cd libnet
# ./configure
# make && make install
# cd ..
2. 安装ipvsadm
# yum install kernel-devel //安装对应内核的kernel-devel
# tar zxvf ipvsadm-1.24.tar.gz
# cd ipvsadm-1.24
# ln -s /usr/src/kernels/`ls /usr/src/kernels/` /usr/src/linux //将当前使用内核连接到/usr/src/linux
# make && make install
# cd..
3. 安装Heartbeat
3.1 确认系统已经安装以下软件(系统光盘中有)
libxslt、libxslt-devel、libgcrypt-devel、autoconf、automake、pkgconfig、libgpg-error-devel、libtool、sgml-common、opensp、openjade、xml-common、docbook-dtds、docbook-style
如果在编译安装过程中出错,很有可能是因为缺少了相关的软件包
3.2 安装glue
# groupadd haclient
# useradd -g haclient -M -s /sbin/nologin hacluster
# tar jxvf glue-1.0.7.tar.bz2
# cd Reusable-Cluster-Components-glue--glue-1.0.7/
# ./autogen.sh
# ./configure
# make && make install
# cd ..
3.3 安装 agents
# tar zxvf ClusterLabs-resource-agents-agents-1.0.4-0-gc06b6f3.tar.gz
# cd ClusterLabs-resource-agents-c06b6f3/
# ./autogen.sh
# ./configure
# make && make install
# cd..
3.4 安装Heartbeat
# tar jxvf Heartbeat-3-0-STABLE-3.0.4.tar.bz2
# cd Heartbeat-3-0-STABLE-3.0.4
# ./ConfigureMe configure
# gmake && make install
# cd..
4. 配置lvs启动脚本
本实验采用的是lvs-DR模式,该模式的特点是客户端的请求从主/备节点进入分配到web server,然后web server的响应是直接交付给客户端的。
# vim /etc/init.d/lvs
#!/bin/sh
#chkconfig: 2345 20 80
#description: start_lvs_of_dr
VIP1=192.168.2.254
RIP1=192.168.2.250
RIP2=192.168.2.251
RIP3=192.168.2.252
RIP4=192.168.2.253
./etc/rc.d/init.d/functions
case "$1" in
start)
echo "开启LVS DirectorServer..."
#设置虚拟IP地址
#LVS启动时添加VIP的网口eth0:0
/sbin/ifconfig eth0:0 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
/sbin/route add -host $VIP1 dev eth0:0
#清除IPVS表
/sbin/ipvsadm -C
#设置LVS
/sbin/ipvsadm -A -t $VIP1:80 -s lc
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP2:80 -g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP3:80 –g
/sbin/ipvsadm -a -t $VIP1:80 -r $RIP4:80 -g
#使用ipvsadm来转发客户端请求。-s lc为最小连接数算法,-g是采用DR模式。有多少RIP就添加几条记录。
#启动LVS
/sbin/ipvsadm
;;
stop)
echo "停止LVS DirectorServer..."
#关闭时清除ipvsadm表
/sbin/ipvsadm –C
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
注:这个脚本不要使用chkconfig管理,放入/etc/init.d内即可。
5. 安装ldirectord相关组件
默认安装完上面的三个软件包之后,ldirectord已经安装到系统中,默认路径在 /usr/etc/ ,由于ldirectord是由perl语言编写的,所以必须安装相关的软件包:Socket6、libwww-perl、URI、MailTools、HTML-Parser
# yum -y install perl-Socket6 perl-libwww-perl perl-URI perl-MailTools perl-HTML-Parser
也可以在http://search.cpan.org/网站下载相关软件包安装
安装方法:
# perl Makefile.PL
# make && make install
6. 配置heartbeat
# cp -a /usr/etc/ha.d/ /etc/
# rm -fr /usr/etc/ha.d/
# ln -s /etc/ha.d/ /usr/etc/
# cp /usr/share/doc/haresources /etc/ha.d/
# cp /usr/share/doc/authkeys /etc/ha.d/
# cp /usr/share/doc/ha.cf /etc/ha.d/
# chmod 600 /etc/ha.d/authkeys //这个文件的权限必须是600
6.1 修改配置文件
6.1.1 authkeys文件配置(authkeys文件的作用是用来设置心跳信息的加密方式)
vim /etc/ha.d/authkeys
auth 1
1 crc
#2 sha1 HI!
#3 md5 Hello!
此设置是使用crc循环冗余校验,不采用加密的方式。
6.1.2 ha.cf为heartbeat的主配置文件,修改下面配置。
# vim /etc/ha.d/ha.cf
#日志文件位置
logfile /var/log/ha-log
#指定主备服务器多久发送一次心跳
keepalive 2
#指定30秒没有收到对方心跳就认为对方已经down机
deadtime 30
#10秒没有收到心跳,便发出警报。
warntime 10
#对方DOWN后120秒重新检测一次。
initdead 120
#指定监听端口
udpport 694
#心跳监听网口,这里为eth1
bcast eth1 //去掉后面#linux
#备份机的心跳线接口与接口IP
ucast eth1 192.168.1.251
#主节点恢复后,自动收回资源。
auto_failback on
#指定主备服务器的主机名称,即在hosts文件中指定的。第一个node为主服务器,第二个node为备服务器。
node lvs-master //服务器的主机名
node lvs-backup
#当192.168.2.1、192.168.2.2这两个IP都不能ping通时,对方即开始接管资源。
ping_group group1 192.168.2.1 192.168.2.2
#启用ipfail脚本
respawn root /usr/lib/heartbeat/ipfail
#指定运行ipfail的用户。
apiauth ipfail gid=root uid=root
6.1.3 haresources文件配置,这个文件是指定虚拟IP和改主机控制的脚本。
# vim /etc/ha.d/haresources
lvs-master 192.168.2.254 lvs ldirectord
// master.lvs.net可为主节点主机名,192.168.2.254为虚拟IP
6.1.4 ldirectord.cf是ldirectord进程的配置文件,该进程用来监视web server的运行状况,如果web server不能响应请求则把它排除在转发列表外。
复制安装文件ldirectord目录上的ldirectord.cf 到/etc/ha.d/conf下,如果找不到可以查找一下:find / -name ldirectord.cf
# mkdir /etc/ha.d/conf
# cp ldirectord.cf /etc/ha.d/conf
# vim /etc/ha.d/conf/ldirectord.cf
# Global Directives
#设置真实web server的超时时间
checktimeout=30
#监视真实web server的时间间隔
checkinterval=10
#如全部真实web server失败,则转发至本地
fallback=127.0.0.1:80
#改变配置文件内容,不需要重新ldirectord
autoreload=yes
#指定日志位置
logfile="/var/log/ldirectord.log"
quiescent=no
# A sample virual with a fallback that will override the gobal setting
#指定虚拟IP
virtual=192.168.2.254:80
#指定真实web server IP及监听端口
real=192.168.2.250:80 gate
real=192.168.2.251:80 gate
real=192.168.2.252:80 gate
real=192.168.2.253:80 gate
fallback=127.0.0.1:80 gate
service=http
#指定转发算法
scheler=lc //这里的算法要和LVS脚本的算法一样
protocol=tcp
#监视VIP服务器的方法
checktype=negotiate
checkport=80
#监听测试页面名称,这个页面放入真实web server web服务的根目录
request="lvs_testpage.html"
#指定测试页面返回内容
receive="test Page"
virtualhost= lvstest.net
配置文件中的lvs_testpage.html必须存在网站根目录下,校验一下配置:
# ldirectord -d /etc/ha.d/conf/ldirectord.cf start //按Ctrl+C结束
# cp /etc/ha.d/shellfuncs /usr/lib/ocf/resource.d/heartbeat/.ocf-shellfuncs
以上lvs和heartbeat配置完成。
LVS备节点(lvs-backup)的配置和LVS主节点(lvs-master)完全一样。
只是在/etc/ha.d/ha.cf中“ucast eth1 192.168.1.251”此配置地址不一样。
二、配置真实web server脚本
在每台web server的/etc/init.d目录下放置realserver脚本,这里主备节点同时也作为web server使用。
# vim /etc/init.d/realserver
#!/bin/bash
# chkconfig: 2345 20 80
# description: lvs_dr_realserver
#指定虚拟IP
VIP=192.168.2.254
host=`/bin/hostname`
case "$1" in
start)
# Start LVS-DR real server on this machine.
/sbin/ifconfig lo down
/sbin/ifconfig lo up
#修改相关内核参数
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
;;
stop)
# Stop LVS-DR real server loopback device(s).
/sbin/ifconfig lo:0 down
;;
status)
# Status of LVS-DR real server.
islothere=`/sbin/ifconfig lo:0 | grep $VIP`
isrothere=`netstat -rn | grep "lo" | grep $VIP`
if [ ! "$islothere" -o ! "$isrothere" ];
then
# Either the route or the lo:0 device
# not found.
echo "LVS-DR real server Stopped."
else
echo "LVS-DR Running."
fi
;;
*)
# Invalid entry.
echo "$0: Usage: $0 {start|status|stop}"
exit 1
;;
esac
# chmod +x /etc/init.d/lvs
# chmod +x /etc/init.d/realserver
# service heartbeat start //主备LVS调度器上执行
# /etc/init.d/lvs start //主备LVS调度器上执行
# /etc/init.d/realserver start //真实web服务器上执行
# chkconfig --level 35 heartbeat on
# echo “/etc/init.d/lvs start” >> /etc/rc.local //开机启动
# echo “/etc/init.d/realserver start” >> /etc/rc.local //开机启动
三、测试
配置我已经测试过了,但是不同系统环境可能会出一些意料之外的事情。
『陆』 各位大神求助,如何在telnet修改linux环境下的MAC地址
解决方法:1,待系统重新启动后,打开终端,执行“ifconfig eth0”命令记录正确的MAC地址,如下所示:
[root@train ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:ED:B0:F0
inet addr:192.168.1.200 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feed:b0f0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2468 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:235747 (230.2 KiB) TX bytes:2028 (1.9 KiB)
Interrupt:10 Base address:0x1400
2,查看系统中eth0实际的MAC地址:
[root@train network-scripts]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
HWADDR=01:0D:44:EE:B0:FF
IPADDR=192.168.1.200
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
GATEWAY=192.168.1.1
IPV6INIT=no
可以看到这里的MAC地址跟ifconfig eth0所显示出来的MAC地址是不一样的,下面需要通过手工方式将错误的MAC地址修改为正确的。
3,复制ifconfig eth0看到的MAC地址,编辑并修改文件/etc/sysconfig/network-scripts/ifcfg-eth0,删除错误的MAC地址,以复制下来的MAC地址进行替换。
4,重启网络:
service network restart,如果提示“OK”,表示更改成功。
5,重启计算机,在启动网络的时候观察eth0是否正常,如果正常,如下所示:
6,待系统启动后,通过ifconfig eth0命令进行观察,看是否能够获得IP地址,且MAC地址正确: