网络基本配置文件
1. 网卡的配置文件
系统网卡配置文件位置/etc/sysconfig/network-scripts/ifcfg-
网卡eth0
文件详解:
DEVICE={name} #{name}表示网卡对应物理设备的名字,eth0是第一块网卡,双网卡或更多依次为eth1,eth*
TYPE=Ethernet #网络类型,Ethernet代表以太网
ONBOOT=yes/no #系统启动引导时是否激活该网络接口,设为yes,即激活此设备
NM_CONTROLLED=yes
UUID=dd69758a-a4fb-4fb6-9f52-a78dc97584ad 卡全局唯一标示符
BOOTPROTO=none/static/bootp/dhcp #设置网卡获得ip地址的方式,可能选项为none,static,bootp,dhcp,分别对应不适用协议,静态指定ip地址,通过dhcp协议获得ip地址,通过bootp协议获得ip地址
HWADDR=50:e5:49:df:b0:8b #对应的网卡物理地址
DEFROUTE=yes #系统默认路由
PEERDNS=yes #是否允许网卡在启动时向DHCP服务器查询DNS信息,并自动覆盖/etc/resolv.conf配置文件
IPV4_FAILURE_FATAL=yes #强制使用
IPV6INIT=no #不适用IPV6
NAME=”System eth0” #名称
其他配置:
IPADDR={address} #如果设置网卡获得ip地址的方式为静态指定,{addres}就代表赋给该网卡的ip地址
NETMASK={mask} #{mask}表示网卡对应的网络掩码
NETWORK={address} #{address}表示网卡对应的网络地址,(可以不要)
GATEWAY={address} #{address}默认网关
DNS1=10.1.101.51 #DNS服务配置
BROADCAST={address} #{address}对应的子网广播地址,如192.168.0.255(可以不要)
MACADDR={MAC-address} #{MAC-address}表示指定一个MAC地址
USERCTL=yes/no # 是否允许非root用户控制该设备
IPV6_AUTOCONF=no
MTU=1500 #最大传输单位的设置
2.DNS配置文件
系统DNS配置文件位置/etc/resolv.conf, DNS配置也可以在/etc/sysconfig/network-scripts/ifcfg-eth0中配置。
resolv.conf文件用来配置DNS客户端,它包含了DNS服务器地址和域名搜索配置。目前最多支持三个DNS服务器。
nameserver ip #dns主机的ip地址
3.主机名配置文件
主机名配置文件位置/etc/sysconfig/network,
临时修改主机名:hostname xxx
修改主机名:直接修改HOSTNAME=xxx
NETWORKING=yes #启动时激活联网
4.网关配置文件
网关配置文件为/etc/sysconfig/network文件
网关配置也可以在/etc/sysconfig/network-scripts/ifcfg-eth0中配置。
网关查看:
Destination为0.0.0.0 对应的Gateway即为网关
network用来指定服务器上的网络配置信息,该文件配置项含义如下:
NETWORK=yes #表示系统是否使用网络,一般设置为yes,如果设置为no,则不能使用网络,而且很多系统服务程序将无法启动
RORWARD_IPV4=yes
HOSTNAME={hostname} #{hostname}表示服务器的主机名,这里的主机名要和/etc/hosts中设置的主机名对应
GAREWAY={address} #{address}设置本机连接的网关的IP地址,例如,网关10.0.0.2
GATEWAYDEV={device} #{device}表示网关的设备名,如:eth0
NETWORK=yes/no #网络是否被配置
FORWARD_IPV4=yes/no #是否开启IP转发功能
5.主机名与ip端口映射
主机名与ip端口映射文件位于/etc/hosts
在机器启动时,在可用查询DNS以前,机器需要查询一些主机名到IP地址的匹配。这些信息存放在/etc/hosts文件中。在没有域名服务器的情况下,系统上所有的网络程序都通过查询该文件来解析对应于某个主机名的IP地址。
最左边是一系列主机IP信息,中间是一些列主机名。任何后面的列都是该主机的别名。
网络基本管理命令
网络的五个元素: MAC地址, IP地址, 网络掩码, 网关, DNS
MAC地址也就是网卡的物理地址, 该地址是全球唯一的, 长度为六个字节.
IP地址是四个字节, 是分配给网卡的一个逻辑地址.
网络掩码是三十二个字节, 判断一个地址是局域网还是广域网, 如果是局域网在网内发送, 如果是广域网就发送给网关.
DNS是讲名字与IP地址相互转化的一种服务.
网络基本管理:
Ifconfig、ping、netstat、route、tcpdump、nslookup、tracerout、 arp、ssh、scp、ftp、telnet
Ifconfig命令
ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数(临时修改,配置文件永久修改)
说明:
eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:16:3E:00:1E:51。
inet addr用来表示网卡的IP地址,此网卡的IP地址是10.160.7.81,广播地址Bcast:10.160.15.255,掩码地址Mask:255.255.240.0。
lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回坏地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。
• 第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)。
• 第二行:网卡的IP地址、子网、掩码。
• 第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
• 第四、五行:接收、发送数据包情况统计。
• 第七行:接收、发送数据字节数统计信息。
启动关闭指定网卡:
ifconfig eth0 up
ifconfig eth0 down
ifconfig eth0 up为启动网卡eth0,ifconfig eth0 down为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。
为网卡配置和删除IPv6地址:
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址
用ifconfig修改MAC地址:
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
配置IP地址:
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
启用和关闭arp协议:
ifconfig eth0 arp #开启网卡eth0 的arp协议
ifconfig eth0 -arp #关闭网卡eth0 的arp协议
设置最大传输单元:
ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
route命令
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的路由主要是静态路由。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
在Linux系统中设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的ip地址设置为Linux机器的默认路由。要注意的是,直接在命令行下执行route命令来添加路由,不会永久保存,当网卡重启或者机器重启之后,该路由就失效了;可以在/etc/rc.local中添加route命令来保证该路由设置永久有效。
语法
route(选项)(参数)
选项
-A:设置地址类型;
-C:打印将Linux核心的路由缓存;
-v:详细信息模式;
-n:不执行DNS反向查找,直接显示数字形式的IP地址;
-e:netstat格式显示路由表;
-net:到一个网络的路由表;
-host:到一个主机的路由表。
参数
Add:增加指定的路由记录;
Del:删除指定的路由记录;
Target:目的网络或目的主机;
gw:设置默认网关;
mss:设置TCP的最大区块长度(MSS),单位MB;
window:指定通过路由表的TCP连接的TCP窗口大小;
dev:路由记录所表示的网络接口。
实例
显示当前路由:
其中Flags为路由标志,标记当前网络节点的状态,Flags标志说明:
• U Up表示此路由当前为启动状态。
• H Host,表示此网关为一主机。
• G Gateway,表示此网关为一路由器。
• R Reinstate Route,使用动态路由重新初始化的路由。
• D Dynamically,此路由是动态性地写入。
• M Modified,此路由是由路由守护程序或导向器动态修改。
• ! 表示此路由当前为关闭状态。
添加网关/设置网关:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一条到达244.0.0.0的路由。
屏蔽一条路由:
route add -net 224.0.0.0 netmask 240.0.0.0 reject #增加一条屏蔽的路由,目的地址为224.x.x.x将被拒绝。
删除路由记录:
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject
删除和添加设置默认网关:
route del default gw 192.168.120.240
route add default gw 192.168.120.240
ping命令
ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
选项
-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限检测;
-i<间隔秒数>:指定收发信息的间隔时间;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。
参数
目的主机:指定发送ICMP报文的目的主机。
实例
— host.1.linuxde.net ping statistics —
4 packets transmitted, 4 received, 0% packet loss, time 2998ms
rtt min/avg/max/mdev = 174.068/176.916/178.182/1.683 ms
netstat命令
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
列出所有处于监听状态的 Sockets
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
显示每个协议的统计信息
netstat -s 显示所有端口的统计信息
netstat -st 显示TCP端口的统计信息
netstat -su 显示UDP端口的统计信息
在netstat输出中显示 PID 和进程名称
netstat -pt
netstat -p可以与其它开关一起使用,就可以添加“PID/进程名称”到netstat输出中,这样debugging的时候可以很方便的发现特定端口运行的程序。
在netstat输出中不显示主机,端口和用户名(host, port or user)
当你不想让主机,端口和用户名显示,使用netstat -n。将会使用数字代替那些名称。同样可以加速输出,因为不用进行比对查询。
netstat -an
如果只是不想让这三个名称中的一个被显示,使用以下命令:
netsat -a –numeric-ports
netsat -a –numeric-hosts
netsat -a –numeric-users
持续输出netstat信息
netstat -c #每隔一秒输出网络信息
显示核心路由信息
netstat -r
使用netstat -rn显示数字格式,不查询主机名称。
找出程序运行的端口
并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
netstat -ap | grep ssh
找出运行在指定端口的进程:
netstat -an | grep ‘:80’
显示网络接口列表
netstat -i
显示详细信息,像是ifconfig使用netstat -ie。
IP和TCP分析
查看连接某服务端口最多的的IP地址:
netstat -ntu | grep :80 | awk ‘{print 5}' | cut -d: -f1 | awk '{++ip[1]} END {for(i in ip) print ip[i],”\t”,i}’ | sort -nr
TCP各种状态列表:
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk ‘/^tcp/ {++state[$NF]} END {for(i in state) print i,”\t”,state[i]}’
查看phpcgi进程数,如果接近预设值,说明不够用,需要增加:
netstat -anpo | grep “php-cgi” | wc -l
traceroute命令
traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。
具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>…][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。
有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题
nslookup命令
nslookup命令是常用域名查询工具,就是查DNS信息用的命令。
nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf的第一个dns地址)。或者输入nslookup -nameserver/ip。进入非交互模式,就直接输入nslookup 域名就可以了。
arp命令
arp命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系。
-a<主机>:显示arp缓冲区的所有条目;
-H<地址类型>:指定arp指令使用的地址类型;
-d<主机>:从arp缓冲区中删除指定主机的arp条目;
-D:使用指定接口的硬件地址;
-e:以Linux的显示风格显示arp缓冲区中的条目;
-i<接口>:指定要操作arp缓冲区的网络接口;
-s<主机>