首页 > 代码库 > 【linux基础】17、网络属性配置详解
【linux基础】17、网络属性配置详解
一、配置主机接入TCP/IP网络
路由:
主机路由:host
网络路由:net
默认路由(网关):default
DNS服务器:
主DNS服务器
备用DNS服务器
主机名:
配置IP:
网络设备如何表示:
内核识别设备:驱动
设备:别名
以太网设备:ethX,
PPP网络:pppX
本地回环:lo
ip配置在内核上,显示在网卡上
静态指定:
IP/Netmask
动态配置:
DHCP服务器 Dynamic Host Configuration Protocol
1)用户空间工具
立即通知内核生效,关机失效
ifconfig
ip
2)网络设备服务配置文件
长久有效
3)GUI/TUI
用户空间的命令行工具:立即生效,但不会长久有效
ifconfig
iproute2(ip,ss)
ifconfig
ifconfig(ip addr,ip link) 显示所有活动接口的相关信息
ifconfig INTERFACE 仅显示指定接口的相关信息
ifconfig INTERFACE IP/MASK
长格式:255,255.0.0
ifconfig INTERFACE IP netmask MASK
CIDR:16(1的个数)
ifconfig INTERFACE IP/MASK
[root@localhost ~]# ifconfig eth0 192.168.100.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.100.100/24
route
route(ip route) 显示路由信息
-n 使用数字格式显示,不反解地址到主机名
route add -host HOST_IP gw Next_Hop [dev Device]
-net Net_ADDR gw Next_Hop [dev Device]
-net 0.0.0.0 目标地址为任意地址,加的是网关,默认路由
route del -host HOST_IP
-net Net_ADDR
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 * 255.255.255.0 U 0 0 0 eth0
[root@localhost ~]# 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 eth0
U表示启用状态 度量值:0表示到达该网络不需要经过路由器
G表示默认网关
H表示主机路由 [root@localhost ~]# route add -net 172.16.0.0/16 gw 192.168.100.1
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.100.0 * 255.255.255.0 U 0 0 0 eth0
172.16.0.0 192.168.100.1 255.255.0.0 UG 0 0 0 eth0
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.100.100 192.168.100.2 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
172.16.0.0 192.168.100.1 255.255.0.0 UG 0 0 0 eth0
[root@localhost ~]# route add -net 0.0.0.0 gw 192.168.100.3
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.100.100 192.168.100.2 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
172.16.0.0 192.168.100.1 255.255.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.100.3 0.0.0.0 UG 0 0 0 eth0
[root@localhost ~]# route add default gw 192.168.100.4
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.100.100 192.168.100.2 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
172.16.0.0 192.168.100.1 255.255.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.100.4 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.100.3 0.0.0.0 UG 0 0 0 eth0
DNS服务器指向
配置文件:/etc/resolv.conf
最多三个:
nameserver DNS_SERVER_IP
CentOS 5/6:
服务脚本:/etc/rc.d/init.d/network
CentOS 6:
服务脚本:/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
调用机制:
1./etc/init.d/Script_Name {start|stop|restart|status}
1.service Script_Name {start|stop|restart|status}
与网络设备相关的服务控制脚本
他们通常能够读取为网络配置的配置文件,以之实现其配置生效或失效等管理功能
配置文件有两类(/etc/sysconfig/network-scripts/)
配置IP、掩码、网关
以太网:ifcfg-ethX
PPP:ifcfg-pppX
匹配路由
route-ethX
route-pppX
配置IP、掩码、网关:ifcfg-ethX
DEVICE="eth0"
此配置关联至的设备。设备名要与文件ifcfg-后ude内容保持一致
BOOTPROTO=none
引导协议:{none|static|dhcp|bootp}
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服务地址
IPV6INIT=no
是否开启ipv6
USERCTL=no
是否允许普通用户操作网卡
PEERDNS={yes|no}
是否允许DHCP服务分配地址时直接更新/etc/resolv。conf中的DNS服务器地址
配置路由:route-ethX
配置文件的格式1:每行一个要配置的路径条目
目标 via 下一跳
配置文件的格式2:每一组一个路由条目
ADDRESS#=目标
NETMASK#=掩码
GATEWAY#=下一跳
ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=172.16.100.1
如何实现在单网卡上配置多个地址:
通过网络接口别名来实现
eth0X
eth0:X,eth0:0,eth0:1....
配置1:
ifconfig ethX:Y IP/mask
配置2:
ifcfg-ethX:Y
DEVICE=ethX:Y
BOOTPROTO={none|static}
IPADDR=
NETMASK=
注意一个主机只能有一个网关,非主地址不支持DHCP协议获取
ip命令的使用
wKiom1YbRNKDkEkeAAOzEkPUA84286.jpg
ip link
ip link show 查看默认信息
ip link
ip link set 接口 [up|down] [multicast on|off]:
ip addr
可以在一个接口配置多个地址而不使用接口别名:显示这些地址
ip addr show
ip addr
ip addr add dev 接口 ip地址/掩码 [ label 别名 ]
ip addr add dev 接口 ip地址 [ label 别名 ]
ip addr flush 接口 [to 网络地址]
ip route
ip route add 目标 via 下一跳 src 地址 [dev 设备]
ip route del 目标
ip route show
启用/禁用接口:
ip link set 接口 up|down
ifconfig 接口 up|down
ifdown 接口,ifup 接口 会重置网络连接
TUI或GUI
system-config-network-tui 配置结束后将保存配置文件中
setup --> Network Configuration
网络管理或检测等相关的工具:
ping:ICMP 互联网控制报文协议
ping [options] ip
-c 次数
-w 测试执行时长
1.命令格式:
ping [参数] [主机名或IP地址]
2.命令功能:
ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。
如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。
ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。
3.命令参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
<p>-c 数目:在发送指定数目的包后停止。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包。
-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
-p 范本样式:设置填满数据包的范本样式。
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-t 存活数值:设置存活数值TTL的大小。
TTL:生存时间
指定数据报被路由器丢弃之前允许通过的网段数量。
TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。
TTL 字段值可以帮助我们识别操作系统类型。
l UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255。
l Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64。
l LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64。
l 微软 Windows NT/2K/2k3/2k8操作系统 ICMP 回显应答的 TTL 字段值为 128。
l 微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32。
traceroute HOST:
获取当前主机到目标主机所经过的网关
mtr HOST
netstat
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
输出信息含义
执行netstat后,其输出结果为
[root@xxj ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.100.20:ssh 192.168.100.3:57272 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 7659 @/org/kernel/udev/udevd
unix 7 [ ] DGRAM 8876 /dev/log
unix 2 [ ] DGRAM 10769
unix 2 [ ] DGRAM 9696
unix 2 [ ] DGRAM 9507
unix 2 [ ] DGRAM 9379
unix 3 [ ] STREAM CONNECTED 9373
unix 3 [ ] STREAM CONNECTED 9372
unix 3 [ ] STREAM CONNECTED 9360
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是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 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
常用组合:
netstat -naptu
netstat -tan
netstat -tunl
netstat -rn
ss,用于取代netstat
-t:tcp协议的连接
-u:udp协议的链接
-l:监听状态的连接
-a:所有状态的连接
-e:显示扩展信息
-m:显示套接连接使用的内存信息
-p:进程及UDP
-n:数字格式显示
-o state (established)
ethtool 接口: 显示接口设备属性
ethtool -S 接口:显示设备接口的统计数据
课外任务:
nmap:扫描器
tcpdump:嗅探器
wireshark:嗅探器
tshark:字符界面的
使用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
【linux基础】17、网络属性配置详解