一、配置主机接入TCP/IP网络的相关设置

  要让linux主机接入互联网,主机要能兼容TCP/IP协议栈,内核中实现

配置主机接入TCP/IP网络的相关设置:

IP/Netmask   ip配置在内核上,显示在网卡上

路由

   主机路由:host          #到达非本网络的单个主机

   网络路由:net           #到达非本网络的网络

   默认路由(网关):default    #所有非本网络的主机或主机

DNS服务器:

    主DNS服务器

    备用DNS服务器     #主DNS服务器故障了(不响应)才会使用

主机名


二、配置主机IP

1、配置IP的方法

静态指定:

   IP/Netmask    

      最少要配置的2项,能实现本网络内通信,和非本网络内的主机通信还需要配置DNS和网关。

动态配置:

   DHCP服务器 Dynamic Host Configuration Protocol 动态主机配置协议

用户空间工具:

   保存在内核内存中,立即通知内核生效,重启网络服务失效

网络设备服务配置文件     

   并不是内核的配置文件,而是用户空间网络设备服务的脚本,系统开机时,网络服务会自动读取这个配置文件,完成ip设定,长久有效

GUI/TUI:  

GUI   Graphic User Interface       图形用户界面

  为命令提供的带窗口和下拉菜单的用户界面
TUI   Terminal User Interface       终端用户界面

 适用于ASCII终端的带窗口和下拉菜单的基于字符的显示。TUI 使用键盘导航(不支持鼠标) 
还有一种说法是:Text User Interface    文本用户界面
CLI(CLUI) Command Line (User) Interface 命令行(用户)界面。

  在命令行提示符处输入的或由脚本执行的文本格式的命令和选项
IUI Interactive User Interface       交互式用户界面

  是对图形用户界面 (GUI) 或终端用户界面 (TUI) 的统称

system-config-network-tui

    配置结束后讲保存在配置文件中

setup


2、用户空间的命令行工具

ifconfig

ipiproute包提供还提供了ss)

网络设备如何表示?

   内核识别设备依靠驱动程序,每个设备在内核看来都是它驱动的名称,为了统一的识别设备,为驱动取一个容易识别的别名

以太网设备:ethN  比如eth0,eth1,eth2...   #内核会将ethN映射为真正的网卡驱动并识别

   戴尔服务器的网卡:emN,em0,em1...

PPP网络:pppX

本地回环接口:lo


3、ifconfig命令的使用

ifconfig       显示所有活动网卡的相关信息  

               #不会显示没启用的网卡,可以在配置文件中设置网卡是否开机启用

ifconfig -a     显示所有的网卡

ifconfig INTERFACE         仅显示指定接口的相关信息

ifconfig INTERFACE up       启用该网卡

ifconfig INTERFACE down      禁用该网卡

ifdown 接口,ifup 接口   #会重置网络连接,读取配置文件重新设置网络

ifconfig配置IP地址:

            子网掩码的格式:

                     长格式:255,255.0.0

                         ifconfig INTERFACE IP netmask MASK

                      CIDR:16(1的个数)                                                  ifconfig INTERFACE IP/MASK

ifconfig add  添加ipv6地址

ifconfig del  

[root@Node3 ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:30:64:5E  
          inet addr:192.168.10.3  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe30:645e/64 Scope:Link     
          #Scope作用范围 Link表示全局,还有2个范围是本地的和隐藏的
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          #启用,支持广播,运行中,支持多播,最大传输单元,度量值:1表示本机
          RX packets:182967 errors:0 dropped:0 overruns:0 frame:0
          #下行接受报文个数,错误数,丢弃数,溢出数, 冲突的帧数
          TX packets:284083 errors:0 dropped:0 overruns:0 carrier:0
          #上行发送发送报文                               载荷
          collisions:0 txqueuelen:1000 
          #冲突数       发送队列
          RX bytes:15105503 (14.4 MiB)  TX bytes:81718924 (77.9 MiB)
          #接收到的字节数,发送的字节数
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:4087 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4087 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:736030 (718.7 KiB)  TX bytes:736030 (718.7 KiB)
  
[root@Node3 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:30:64:5E  
          inet addr:192.168.10.3  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe30:645e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:183884 errors:0 dropped:0 overruns:0 frame:0
          TX packets:285164 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15180337 (14.4 MiB)  TX bytes:81816450 (78.0 MiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:30:64:68  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:454929 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19965 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87215900 (83.1 MiB)  TX bytes:1293314 (1.2 MiB)

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:4087 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4087 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:736030 (718.7 KiB)  TX bytes:736030 (718.7 KiB)
          
[root@Node3 ~]# ifconfig eth1   #没有启用
eth1      Link encap:Ethernet  HWaddr 00:0C:29:30:64:68  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:454929 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19965 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87215900 (83.1 MiB)  TX bytes:1293314 (1.2 MiB)

[root@Node3 ~]# ifconfig eth1 172.16.11.111/24   #设置ip后会自动启用该网卡
[root@Node3 ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:30:64:68  
          inet addr:172.16.11.111  Bcast:172.16.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe30:6468/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:454939 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19968 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87216756 (83.1 MiB)  TX bytes:1293552 (1.2 MiB)

[root@Node3 ~]# ifconfig eth1 172.16.11.222 netmask 255.255.255.0
[root@Node3 ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:30:64:68  
          inet addr:172.16.11.222  Bcast:172.16.11.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe30:6468/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:455093 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19971 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:87231238 (83.1 MiB)  TX bytes:1293782 (1.2 MiB)

4、route命令使用

route   显示路由信息

   -n  使用数字格式显示,不反解地址到主机名

route配置路由:

  route add -host HOST_IP gw Next_Hop [dev Device]   #主机地址不需要加掩码

          -net Net_ADDR gw Next_Hop [dev Device]  #网络地址要加掩码

          -net 0.0.0.0 gw Next_Hop  #目标地址为任意地址,设置的是网关(默认路由)

          default gw Next_Hop   #也可以设置默认路由

删除路由:

   route del -host HOST_IP

          -net Net_ADDR

[root@Node3 ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.11.0     *               255.255.255.0   U     0      0        0 eth1
192.168.10.0    *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
default         172.16.11.254   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.11.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
#  0.0.0.0  表示没有网关  U表示启用状态,G表示默认网关,H表示主机路由  
#    Iface表示使用哪个接口
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         172.16.11.254   0.0.0.0         UG    0      0        0 eth1

设置:

  到达目标:192.168.0.0/24得经过192.168.10.1(下一跳)  #网关(下一跳)一定要是和本地的网络在同一网段中

  到达目标:192.168.1.10 gw 172.16.100.177

[root@Node3 ~]# route add -net 192.168.0.0/24 gw 172.16.11.1
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

[root@Node3 ~]# route add -host 192.168.1.10 gw 192.168.10.177
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.10    192.168.10.177  255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# route add -host 192.168.1.10 gw 192.168.100.177
[root@Node3 ~]# route -n  #哪个网卡的ip能到下一跳的地址就使用哪个网卡
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.10    192.168.100.177 255.255.255.255 UGH   0      0        0 eth1
192.168.1.10    192.168.10.177  255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# route add -host 192.168.1.10 gw 192.168.100.177 dev eth0
SIOCADDRT: 没有那个进程
[root@Node3 ~]# route add -host 192.168.1.10 gw 192.168.100.178 dev eth1
#也可以手动指定使用哪个网卡,若指定的网卡到达不了下一跳的地址则报错
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.10    192.168.100.178 255.255.255.255 UGH   0      0        0 eth1
192.168.1.10    192.168.100.177 255.255.255.255 UGH   0      0        0 eth1
192.168.1.10    192.168.10.177  255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

删除路由:

[root@Node3 ~]# route del -net 192.168.100.0
SIOCDELRT: 无效的参数
[root@Node3 ~]# route del -net 192.168.100.0/24
[root@Node3 ~]# route  -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.10    192.168.100.177 255.255.255.255 UGH   0      0        0 eth1
192.168.1.10    192.168.10.177  255.255.255.255 UGH   0      0        0 eth0
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# route del -host 192.168.1.10
[root@Node3 ~]# route  -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.10    192.168.10.177  255.255.255.255 UGH   0      0        0 eth0
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# route del default

6、配置DNS

DNS服务器指向

配置文件:/etc/resolv.conf

         nameserver DNS_SERVER_IP   #最多三个

解析域名测试:

dig -t A FQDN

dig -x IP    反解

nslookup FQDN

[root@Node3 ~]# cat /etc/resolv.conf 
nameserver 218.104.128.106
nameserver 58.22.96.66

解析域名:

[root@Node3 ~]# cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
nameserver 218.104.128.106
nameserver 58.22.96.66
[root@Node3 ~]# nslookup www.magedu.com
Server:		218.104.128.106
Address:	218.104.128.106#53

Non-authoritative answer:
Name:	www.magedu.com
Address: 101.200.188.230

[root@Node3 ~]# host www.magedu.com
www.magedu.com has address 101.200.188.230
[root@Node3 ~]# dig -t -A www.magedu.com
;; Warning, ignoring invalid type -A

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.3 <<>> -t -A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42216
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.magedu.com.			IN	A

;; ANSWER SECTION:
www.magedu.com.		517	IN	A	101.200.188.230

;; Query time: 77 msec
;; SERVER: 218.104.128.106#53(218.104.128.106)
;; WHEN: Wed Dec 14 20:54:10 2016
;; MSG SIZE  rcvd: 48

三、主机名

FQDN(Full Qulified Domain)

   完全合格域名/全称域名,是指主机名加上全路径,全路径中列出了序列中所有域成员。

   全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置

DNS解析流程:首先查找本机HOSTS表,有的直接使用表中定义,没有查找网络连接中设置的DNS 服务器由他来解析。

hostname HOSTNAME 

   临时修改主机名,重启失效,修改的结果保存在/proc/sys/kernel/hostnam,修改了这个参数,hostname命令查看到的主机名也会改变;但环境变量HOSTNAME不会改变,它是由配置文件/etc/sysconfig/network里配置的,永久有效,需要重读配置文件才生效


四、网络服务脚本

1、服务脚本

/etc/rc.d/init.d/network

/etc/rc.d/init.d/NetworkManager    #一般都禁用掉,很多高级功能都不支持

服务脚本:SysV style,LSB

   多数为控制运行在后台守护进程,接受参数{start|stop|restart|status}

脚本位置:/etc/rc.d/init.d/etc/init.d

配置某服务开机自动启动:chkconfig Src_Script_Name on

禁止开机自动启动:chkconfig Src_Script_Name off

查看:chkconfig --list

调用执行机制:

/etc/init.d/Script_Name {start|stop|restart|status}

service Script_Name {start|stop|restart|status}

与网络设备相关的服务控制脚本:

  他们通常能够读取为网络配置的配置文件,以之实现其配置生效或失效等管理功能

配置文件有两类:(都在/etc/sysconfig/network-scripts/目录下)

1)配置IP、掩码、网关

      以太网:ifcfg-ethN

      PPP:ifcfg-pppN

2)匹配路由

      route-ethN

      route-pppN


2、配置IP、掩码、网关ifcfg-ethN)

DEVICE="eth0"

   此配置关联至的设备。设备名要与文件ifcfg-后ude内容保持一致

BOOTPROTO=none

   引导协议:{none|static|dhcp|bootp}  

             #none和static都是手动静态配置ip,bootp是dhcp的前身

HWADDR="00:0C:29:26:62:92"

   MAC地址:要与真实MAC地址保持一致,可省略,系统会自带获取

NM_CONTROLLED="yes"

   是否接受NetworkManager脚本控制:{yes|no}

ONBOOT="yes"

   是否开机自动启动此网络设备{yes|no}

TYPE="Ethernet"

   设备类型Etheraget,Bridge(桥接)  #首字母一定要大写

UUID="14351f7f-a726-4dfc-966e-dfb1f352f226"

   唯一标识,可省略

IPADDR=

      ip地址

NETMASK=

      掩码

GATEWAY=

      默认网关

DNS1=

      DNS1服务地址

DNS2=

     DNS2服务地址

IPV6INIT=no

      是否开启ipv6

USERCTL=no

      是否允许普通用户操作网卡

PEERDNS={yes|no}

      是否允许DHCP服务分配地址时直接更新/etc/resolv.conf中的DNS服务器地址,

[root@Node3 ~]# cd /etc/sysconfig/network-scripts/
[root@Node3 network-scripts]# ls
ifcfg-eth0   ifdown-ipv6    ifup          ifup-plip    ifup-wireless
ifcfg-eth1   ifdown-isdn    ifup-aliases  ifup-plusb   init.ipv6-global
ifcfg-lo     ifdown-post    ifup-bnep     ifup-post    net.hotplug
ifdown       ifdown-ppp     ifup-eth      ifup-ppp     network-functions
ifdown-bnep  ifdown-routes  ifup-ippp     ifup-routes  network-functions-ipv6
ifdown-eth   ifdown-sit     ifup-ipv6     ifup-sit
ifdown-ippp  ifdown-tunnel  ifup-isdn     ifup-tunnel
[root@Node3 network-scripts]# vim ifcfg-eth0
[root@Node3 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
#HWADDR=00:0C:29:99:D2:4E
TYPE=Ethernet
#UUID=41ce24b1-da9a-4879-b19d-c13fc4de610e
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.10.3
NETMASK=255.255.255.0

注意:配置完ifcfg-eth0完成后,要重启服务脚本:service network restat才会生效


3、如何实现在单网卡上配置多个地址

通过网络接口别名来实现

ethN

ethN:X   例如:eth0:0,eth0:1....

配置1:

  ifconfig ethX:Y IP/mask

配置2:写入配置文件中

 ifcfg-ethX:Y

      DEVICE=ethX:Y

      BOOTPROTO={none|static}

      IPADDR=

      NETMASK=

注意:一个主机只能有一个网关,非主地址不支持DHCP协议获取 


4、配置路由

route-ethN  #默认没有,要自己创建,N要配置在哪个网卡上

配置文件的格式1:每行一个要配置的路径条目

  目标 via 下一跳

配置文件的格式2:每一组一个路由条目

  ADDRESSN=目标

  NETMASKN=掩码

  GATEWAYN=下一跳   #N表示组号

注意:两种格式都存在时,只有格式2会生效

[root@Node3 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1
[root@Node3 network-scripts]# cat route-eth0  #如果配置了非此网卡同网段的地址则不生效
192.168.0.0/24 via 192.168.10.1
192.168.1.1 via 192.168.10.10
#ADDRESS0=172.16.0.0
#NETMASK0=255.255.0.0
#GATEWAY0=192.168.10.254
#ADDRESS1=172.16.0.100
#NETMASK1=255.255.255.255
#GATEWAY1=192.168.10.200

[root@Node3 network-scripts]# service network restart


[root@Node3 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.1     192.168.10.10   255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.0.0     192.168.10.1    255.255.255.0   UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

[root@Node3 network-scripts]# cat route-eth0 
192.168.0.0/24 via 192.168.10.1
192.168.1.1 via 192.168.10.10
ADDRESS0=172.16.0.0
NETMASK0=255.255.0.0
GATEWAY0=192.168.10.254
ADDRESS1=172.16.0.100
NETMASK1=255.255.255.255
GATEWAY1=192.168.10.200

[root@Node3 network-scripts]# service network restart


[root@Node3 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.0.100    192.168.10.200  255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
172.16.0.0      192.168.10.254  255.255.0.0     UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         192.168.100.1   0.0.0.0         UG    0      0        0 eth1

五、ip命令使用

  ip命令由iProute包提供,ip命令是模块化的,有很多子命令:

wKiom1hSAPGjhi-7AAO0W81jGCw205.jpg

1、ip link  

       网络设备配置

ip link show     查看默认信息,show可省略

ip link set 接口 [up|down] [multicast on|off]   multicast多播

[root@Node3 ~]# ip link 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:5e brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:68 brd ff:ff:ff:ff:ff:ff
[root@Node3 ~]# ip link set eth1 down
[root@Node3 ~]# ip link      #能显示禁用的网卡
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:5e brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:0c:29:30:64:68 brd ff:ff:ff:ff:ff:ff

2、ip addr

     可以在一个接口配置多个地址而不使用接口别名,要查看这些地址需要使用ip addr

ip addr show    #show可省略

ip addr add dev 接口 ip地址[/掩码] [广播地址] [ label 别名 ]  

            #要设置掩码,不设置的话会默认使用32,广播地址和别名不设置就没有

ip addr del dev 接口 ip地址/掩码

ip addr flush 接口 [to 网络地址]    

           #直接使用特定地址也可以此地址,网络地址要带掩码,就会清除这个网段的ip

[root@Node3 ~]# ip addr add dev eth1 10.0.100.250/24 broad 10.0.100.255
[root@Node3 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:5e brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.3/24 brd 192.168.10.255 scope global eth0
    inet 10.0.0.1/24 brd 10.0.0.255 scope global eth0:0
    inet 10.0.100.200/24 brd 10.0.100.255 scope global eth0
    inet6 fe80::20c:29ff:fe30:645e/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:68 brd ff:ff:ff:ff:ff:ff
    inet 172.16.11.158/24 brd 172.16.11.255 scope global eth1
    inet 10.0.0.10/24 scope global eth1
    inet 10.0.100.250/24 brd 10.0.100.255 scope global eth1
    inet 10.0.0.111/24 scope global secondary eth1:1
    inet6 fe80::20c:29ff:fe30:6468/64 scope link 
       valid_lft forever preferred_lft forever
       
[root@Node3 ~]# ip addr del dev eth1 10.0.100.250/24
[root@Node3 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:5e brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.3/24 brd 192.168.10.255 scope global eth0
    inet 10.0.100.200/24 brd 10.0.100.255 scope global eth0
    inet6 fe80::20c:29ff:fe30:645e/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:30:64:68 brd ff:ff:ff:ff:ff:ff
    inet 172.16.11.158/24 brd 172.16.11.255 scope global eth1
    inet6 fe80::20c:29ff:fe30:6468/64 scope link 
       valid_lft forever preferred_lft forever

4、ip route             

   ip route add 目标 via 下一跳 [src 地址 [dev 设备]]  

        #目标的掩码不添加的话默认为32,是主机路由,还可以指定使用哪个网卡的哪个地址

   ip route del 目标

   ip route show

[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.11.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         172.16.11.254   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# ip route add 192.168.0.0/24 via 172.16.11.1
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     172.16.11.1     255.255.255.0   UG    0      0        0 eth1
172.16.11.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         172.16.11.254   0.0.0.0         UG    0      0        0 eth1
[root@Node3 ~]# ip route
192.168.0.0/24 via 172.16.11.1 dev eth1 
172.16.11.0/24 dev eth1  proto kernel  scope link  src 172.16.11.158 
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.3 
169.254.0.0/16 dev eth0  scope link  metric 1002 
169.254.0.0/16 dev eth1  scope link  metric 1003 
default via 172.16.11.254 dev eth1 

[root@Node3 ~]# ip route add 192.168.22.222 via 192.168.100.100 src 192.168.10.3 dev eth0
[root@Node3 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.22.222  192.168.100.100 255.255.255.255 UGH   0      0        0 eth0
192.168.11.111  192.168.100.1   255.255.255.255 UGH   0      0        0 eth0
192.168.100.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.0.0     172.16.11.1     255.255.255.0   UG    0      0        0 eth1
172.16.11.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
0.0.0.0         172.16.11.254   0.0.0.0         UG    0      0        0 eth1

六、网络管理或检测等相关的工具

1、ping

   测试网络是否连通

基于ICMP  互联网控制报文协议

ping [options] [主机名或IP地址]

    -c  次数

    -w  测试执行时长

    -q 不显示任何传送封包的信息,只显示最后的结果。

    -R 记录路由过程。

    -v 详细显示指令的执行过程。

    -c 数目:在发送指定数目的包后停止。

    -i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

  -s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

    -t 存活数值:设置存活数值TTL的大小。

TTL:生存时间        

   指定数据报被路由器丢弃之前允许通过的网段数量。        

TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。        

TTL 字段值可以帮助我们识别操作系统类型。        

    UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255。           

   Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64。           

    LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64。           

    微软 Windows NT/2K/2k3/2k8操作系统 ICMP 回显应答的 TTL 字段值为 128。         

    微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32。        


2、traceroute

traceroute HOST

        获取当前主机到目标主机所经过的路由

3、mtr

   结合了ping和traceroute

mtr HOST


七、netstat和ss

1、netstat

  Netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

执行netstat后,其输出结果为系统上所有的连接:

[root@Node3 ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 Node3:ssh                   192.168.10.10:56084         ESTABLISHED
tcp        0      0 Node3:ssh                   192.168.10.10:55685         ESTABLISHED
tcp        0      0 Node3:ssh                   192.168.10.10:56083         ESTABLISHED.
.
.
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  18     [ ]         DGRAM                    10278  /dev/log
unix  2      [ ]         DGRAM                    7553   @/org/kernel/udev/udevd
unix        STREAM     CONNECTED     10327  
unix  3      [ ]         DGRAM                    7577   
unix  3      [ ]         DGRAM                    7576   
unix  3      [ ]         STREAM     CONNECTED     11376  
unix  3      [ ]         STREAM     CONNECTED     11375  
unix  3      [ ]         STREAM     CONNECTED     11369  
unix  3      [ ]         STREAM     CONNECTED     11368  
.
.
.

从整体上看,netstat的输出结果可以分为两个部分:

   一个是Active Internet connections,称为有源TCP连接,

其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列,这些数字一般都应该是0。如果不是则表示数据包正在队列中堆积。这种情况只能在非常少的情况见到。 

   另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

Proto:显示连接使用的协议

RefCnt:表示连接到本套接口上的进程号

Types:显示套接口的类型

State:显示套接口当前的状态

Path:表示连接到套接口的其它进程使用的路径名。

 

常见参数:

-a (all)显示所有选项,默认不显示LISTEN相关

-t (tcp)仅显示tcp相关选项

-u (udp)仅显示udp相关选项

-n 拒绝显示别名,能显示数字的全部转化成数字。

-l 仅列出有在 Listen (监听) 的服務状态

-p 显示建立相关链接的程序名

-r 显示路由信息,路由表

-i 显示接口信息

-e 显示扩展信息,例如uid等

-s 按各个协议进行统计

-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

常用组合:

   netstat -tan 

   netstat -tunl       

   netstat -tunlp

   netstat -rn    


2、ss

  用于取代netstat,速度块,开销小,默认只显示已建立的连接

-t:tcp协议的连接

-u:udp协议的链接

-l:监听状态的连接

-a:所有状态的连接

-e:显示扩展信息

-m:显示套接连接使用的内存信息

-p:进程及UDP

-n:数字格式显示

-o state (established)    #过滤


ethtool 接口: 显示接口设备属性

ethtool -S 接口:显示设备接口的统计数据 


使用ping命令探测172.16.0.0/16有哪些主机在线

   在线,用绿色显示

   不在线的,用红色显示

#!/bin/bash
 for i in {0..255};do
    for j in {1..254};do
        ping -c 1 172.16.$i.$j &> /dev/null
       if [[ $? -eq 0 ]];then
         echo -e -n "\033[32mping 172.16.$i.$j ke da !\033[0m\n"
       else
         echo -e -n "\033[31mping 172.16.$i.$j bu ke da !\033[0m \n"
       fi
    done
done


任务:

   nmap:扫描器

   tcpdump:嗅探器

   wireshark:嗅探器

   tshark:字符界面的