网络通讯基础
ifconfig显示或设置网络设备
ifconfig 显示全部网络设备信息
或者ifconfig +网络设备名称显示指定设备信息
[root@NEO1000 ~]# ifconfig eth5
eth5: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.5.10 netmask 255.255.0.0 broadcast 192.168.255.255
ether 00:e2:69:0f:8e:47 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0xf7800000-f7820000
[root@NEO1000 ~]# ifconfig eth5 192.168.5.10/16 #临时修改ip,重启后失效
[root@NEO1000 ~]# ifconfig eth5 mtu 1480 #临时修改mtu
ping 检测主机
ping 使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
linux中ping不会自动退出,可以手动中断
常用参数
-c count ping指定次数后停止ping
-f 极限检测,快速连续ping一台主机,ping的速度达到100次每秒;
-i interval 设定间隔几秒发送一个ping包,默认一秒ping一次;
-I interface 指定网卡接口、或指定的本机地址送出数据包;
-s packetsize 指定每次ping发送的数据字节数,默认为“56字节”+“28字节”的ICMP头,一共是84字节;
-M hint 设置MTU(最大传输单元)分片策略。
可设置为:
'do':禁止分片,即使包被丢弃;
'want':当包过大时分片;
'dont':不设置分片标志(DF flag);
#利用ping探测网络中mtu值
[root@NEO1000 ~]# ping -c 2 -s 1472 -M do 192.168.2.111
PING 192.168.2.111 (192.168.2.111) 1472(1500) bytes of data.
1480 bytes from 192.168.2.111: icmp_seq=1 ttl=128 time=2.39 ms
1480 bytes from 192.168.2.111: icmp_seq=2 ttl=128 time=2.94 ms
--- 192.168.2.111 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 2.399/2.674/2.949/0.275 ms
[root@NEO1000 ~]# ping -c 2 -s 1473 -M do 192.168.2.111
PING 192.168.2.111 (192.168.2.111) 1473(1501) bytes of data.
From 192.168.2.11 icmp_seq=1 Frag needed and DF set (mtu = 1500)
From 192.168.2.11 icmp_seq=1 Frag needed and DF set (mtu = 1500)
--- 192.168.2.111 ping statistics ---
0 packets transmitted, 0 received, +2 errors
[root@NEO1000 ~]#
arping
多用来检测局域网内是否有ip冲突
一些选项
-c 发送指定个数ARP请求数据包后停止
-f 在第一个回复确认目标存活后退出命令
-I 指定ARP请求报文的网络接口
-q 安静模式。不显示任何信息
-w 指定超时时间
[root@NEO1000 ~]# arping -c 2 -w 3 -I eth2 192.168.2.111
ARPING 192.168.2.111 from 192.168.2.11 eth2
Unicast reply from 192.168.2.111 [00:0E:C6:76:27:5C] 2.803ms
Unicast reply from 192.168.2.111 [00:0E:C6:76:27:5C] 2.773ms
Sent 2 probes (1 broadcast(s))
Received 2 response(s)
[root@NEO1000 ~]#
route显示和操作IP路由表
[root@NEO1000 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth5
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4
192.168.66.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
255.255.255.255 0.0.0.0 255.255.255.255 UH 0 0 0 eth2
[root@NEO1000 ~]# route add default gw 192.168.66.1 #临时增加默认路由
[root@NEO1000 network-scripts]# route add -net 10.10.0.0/16 gw 192.168.3.34 #临时增加目的路由
永久增加路由在/etc/profile中添加route add -net 10.10.0.0/16 gw 192.168.3.34
网卡文件
永久修改网络配置
[root@NEO1000 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@NEO1000 network-scripts]# cat ifcfg-eth5
TYPE=Ethernet
BOOTPROTO=static
IPADDR=192.168.5.11
NETMASK=255.255.255.0
#GATEWAY=
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth5
DEVICE=eth5
UUID=6cccacd8-9256-4db5-93a5-392ce258e47c
ONBOOT=yes
#HWADDR=00:90:27:FF:B2:B4 # Commented by Clonezilla
PEERDNS=yes
PEERROUTES=yes
netstat网络监视命令
命令选项
-t或–tcp:显示TCP传输协议的连线状况
-u或–udp:显示UDP传输协议的连线状况;
-l或–listening:显示监控中的服务器的Socket;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-n或–numeric:直接使用ip地址,而不通过域名服务器;
-r或–route:显示Routing Table;
[root@NEO1000 ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth1
192.168.4.0 * 255.255.255.0 U 0 0 0 eth4
192.168.5.0 * 255.255.255.0 U 0 0 0 eth5
192.168.12.0 * 255.255.255.0 U 0 0 0 eth2
192.168.13.0 * 255.255.255.0 U 0 0 0 eth3
192.168.66.0 * 255.255.255.0 U 0 0 0 eth0
255.255.255.255 * 255.255.255.255 UH 0 0 0 eth3
[root@NEO1000 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 0 0 0 0 0 0 0 BMU
eth1 1500 17 0 0 0 118 0 0 0 BMU
eth2 1500 12510 0 0 0 12193 0 0 0 BMRU
eth3 1500 3858 0 0 0 4556 0 0 0 BMRU
eth4 1500 292 0 0 0 21 0 0 0 BMU
eth5 1500 0 0 0 0 0 0 0 0 BMU
lo 65536 433 0 0 0 433 0 0 0 LRU
[root@NEO1000 ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61806 ESTABLISHED
tcp 0 0 192.168.12.11:iec-104 192.168.12.3:43594 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61808 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61812 ESTABLISHED
tcp 0 0 192.168.2.11:ssh 192.168.2.111:51706 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61810 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61811 ESTABLISHED
tcp 0 240 192.168.13.11:ssh 192.168.13.111:61775 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61809 ESTABLISHED
tcp 0 0 192.168.13.11:ssh 192.168.13.111:61776 ESTABLISHED
tcp 0 0 192.168.2.11:ssh 192.168.2.111:51707 ESTABLISHED
tcp 0 0 192.168.13.11:csms2 192.168.13.111:61807 ESTABLISHED
[root@NEO1000 ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2404 0.0.0.0:* LISTEN 2032/gcpcom
tcp 0 0 0.0.0.0:3400 0.0.0.0:* LISTEN 2032/gcpcom
tcp 0 0 0.0.0.0:3500 0.0.0.0:* LISTEN 1580/gcpdog
...
[root@NEO1000 ~]# netstat -tpn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.12.11:2404 192.168.12.3:43594 ESTABLISHED 2032/gcpcom
tcp 0 0 192.168.2.11:22 192.168.2.111:51706 ESTABLISHED 1758/sshd: root@pts
tcp 0 272 192.168.13.11:22 192.168.13.111:61775 ESTABLISHED 2052/sshd: root@pts
tcp 0 0 192.168.13.11:22 192.168.13.111:61776 ESTABLISHED 2056/sshd: root@not
tcp 0 0 192.168.2.11:22 192.168.2.111:51707 ESTABLISHED 1762/sshd: root@not
关于tcp的链接状态
- LISTEN: 侦听来自远方的TCP端口的连接请求
- SYN-SENT: 再发送连接请求后等待匹配的连接请求
- SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认
- ESTABLISHED: 代表一个打开的连接
- FIN-WAIT-1: 等待远程TCP连接中断请求,或先前的连接中断请求的确认
- FIN-WAIT-2: 从远程TCP等待连接中断请求
- CLOSE-WAIT: 等待从本地用户发来的连接中断请求
- CLOSING: 等待远程TCP对连接中断的确认
- LAST-ACK: 等待原来的发向远程TCP的连接中断请求的确认
- TIME-WAIT: 等待足够的时间以确保远程TCP接收到连接中断请求的确认
- CLOSED: 没有任何连接状态
telent端口测试
多用来测试对端服务器是否开放业务端口
[root@NEO1000 ~]# telnet 192.168.12.3 22 #探测对端ssh服务22端口
Trying 192.168.12.3...
Connected to 192.168.12.3.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.2