网卡配置管理命令:ip, ifconfig,mii-tool,ethtool,ping,netstat,ss,
路由设置管理命令:route,traceroute ,tracert
8.1.ifconfig
功能:配置打印网络接口
语法:ifconfig [interface]
ifconfig interface [aftype] options | address ...
常用选项:
up:启用网卡
down:停用网卡
-a:显示所有网卡信息
示例:
[root@localhost ~]# ifconfig eth0 #显示指定网卡信息 [root@localhost ~]# ifconfig eth0 down #停用网卡,eth0信息不显示了
eth0启用又显示了
[root@localhost ~]# ifconfig -a #显示所有网卡信息 [root@localhost ~]# ifconfig eth0:0 192.168.10.1/24 设置临时网卡
8.2.mii-tool
功能:查看操作接口状态
示例:
[root@localhost ~]# mii-tool eth0 #查看网卡状态,以前的虚拟机里不支持,现在vmware的版本里是支持的 eth0: negotiated 100baseTx-FD, link ok #网卡连接ok # mii-tool eth0 eth0: no link--代表网线和网卡没连
8.3.ethtool
功能:查询和设置网络硬件信息
示例:
[root@localhost ~]# ethtool eth0 #查看网卡的工作模式等信息 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s # ethtool -s eth0 speed 10 duplex half autoneg off #改成10M/s的速率,半双工,关闭自动协商 # ethtool -s eth0 speed 100 duplex full autoneg on#再改回来
8.4.ip(重点掌握的,centos7对ifconfig已经弱化了)
功能:打印并设置路由、设备、策略路由和隧道配置信息
语法:语法十分复杂,这里不一一列举
通过ip组合衍生出好多命令
ip link 网络设备配置命令
ip addr 管理网络设备与协议,相对ip link,增加了对ip地址的管理
ip addrlabel ipv6的地址标签
ip route 管理路由
ip rule 管理路由策略
ip tunnel 隧道配置
ip maddr 多播地址管理
ip mroute 多播路由管理
ip monitor 状态监控
ip xfrm 设置xfrm,xfrm是一个ip框架
示例:
[root@localhost ~]# ip link show #查看默认网卡信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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:a0:3f:29 brd ff:ff:ff:ff:ff:ff [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr show 跟ip addr显示没有什么区别 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr add dev eth0 192.168.11.1/24 label eth0:1 [root@localhost ~]# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 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:a0:3f:29 brd ff:ff:ff:ff:ff:ff inet 192.168.19.54/24 brd 192.168.19.255 scope global eth0 inet 192.168.10.1/24 brd 192.168.10.255 scope global eth0:0 inet 192.168.11.1/24 scope global eth0:1 添加临时网卡及ip,这里已经有显示 inet6 fe80::20c:29ff:fea0:3f29/64 scope link valid_lft forever preferred_lft forever [root@localhost ~]# ip addr del dev eth0 192.168.10.1 #删除临时及网卡 [root@localhost ~]# ip addr flush eth0 #刷新网络设备
说明:ip地址也被清除了
[root@localhost ~]# ip route add 192.168.20.0/24 via 192.168.19.54 #设置一条静态路由 [root@localhost ~]# ip route show #查看已经生效了 192.168.20.0/24 via 192.168.19.54 dev eth0 192.168.19.0/24 dev eth0 proto kernel scope link src 192.168.19.54 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.19.2 dev eth0 [root@localhost ~]# ip route del 192.168.20.0/24 #删除刚刚设置的路由 [root@localhost ~]# ip route 192.168.19.0/24 dev eth0 proto kernel scope link src 192.168.19.54 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.19.2 dev eth0
8.5.route
功能:打印设置路由表
常用选项:
-n:不使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee:显示更详细的信息
增加 (add) 与删除 (del) 路由的相关参数:
-net :添加到网络的路由
-host :添加到主机的路由
netmask :子网掩码设置
gw :下一跳地址
dev :下一跳网络接口,后面接 eth0 等
示例:
[root@localhost ~]# route -n #查看路由表,netstat -rn也可以查看 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.19.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 0.0.0.0 192.168.19.2 0.0.0.0 UG 0 0 0 eth0 #添加到主机的路由 [root@localhost ~]# route add -host 192.168.6.1 dev eth0 [root@localhost ~]# route add -host 192.168.6.12 gw 192.168.6.1 #添加到网络的路由 [root@localhost ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0 [root@localhost ~]# route add -net 192.168.6.1 netmask 255.255.255.0 eth0 gw 192.168.6.2 [root@localhost ~]# route add -net 192.168.6.1/24 #添加默认网关 [root@localhost ~]# route add default gw 1.1.1.2 #删除路由 [root@localhost ~]# route del -host 192.168.6.1 dev eth0 [root@localhost ~]# route del -net 192.168.6.1 netmask 255.255.255.0 eth0 [root@localhost ~]# route del default gw 1.1.1.2
8.6.ping
功能:发送目标主机ICMP的网络请求
常用选项:
-c:次数
示例:
[root@localhost ~]# ping -c 3 192.168.19.1 #不加-c会一直ping下去 PING 192.168.19.1 (192.168.19.1) 56(84) bytes of data. 64 bytes from 192.168.19.1: icmp_seq=1 ttl=128 time=0.125 ms 64 bytes from 192.168.19.1: icmp_seq=2 ttl=128 time=0.381 ms 64 bytes from 192.168.19.1: icmp_seq=3 ttl=128 time=0.386 ms --- 192.168.19.1 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.125/0.297/0.386/0.122 ms
8.7.traceroute
功能:将路由包跟踪打印到网络主机上
常用选项:
-I --icmp Use ICMP ECHO for tracerouting #ICMP协议请求路由包
-T --tcp Use TCP SYN for tracerouting #tcp协议请求路由包
-p port --port=port #端口请求
示例:
[root@localhost ~]# traceroute baidu.com traceroute to baidu.com (180.149.132.47), 30 hops max, 60 byte packets 1 192.168.19.2 (192.168.19.2) 0.086 ms 0.037 ms 0.041 ms 2 * * * 3 * * * 4 * * * 5 * * * 6 * * * 说明:*号主要是服务器把udp数据包屏蔽了,所有没有返回ICMP [root@localhost ~]# traceroute -T -p 80 baidu.com traceroute to baidu.com (180.149.132.47), 30 hops max, 52 byte packets 1 192.168.19.2 (192.168.19.2) 0.168 ms 0.072 ms 0.101 ms 2 180.149.132.47 (180.149.132.47) 42.414 ms 37.795 ms 38.718 ms
8.8.tracert
功能:将路由包跟踪打印到网络主机上 (windows上使用的命令)
-d:指定不将ip地址解析到主机名称
-h:maximum_hops 指定跃点数以跟踪到称为target_name的主机路由
w:等待由timeout对每个应答指定的毫秒数
target_name:目标主机的名称或ip地址
示例:
8.9.netstat
功能:打印网络连接、路由表、接口统计信息、伪装连接和多播成员
常用选项:
-r 显示路由表
-i 显示接口表
-n 不解析名字
-p 显示程序名 PID/Program
-l 显示监听的socket
-a 显示所有socket
-o 显示计时器
-Z 显示上下文
-t 只显示tcp连接
-u 只显示udp连接
-s 显示每个协议统计信息
示例:
[root@localhost ~]# netstat -tlunap #显示所有监听端口 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 897/sshd tcp 0 96 192.168.19.54:22 192.168.19.1:7024 ESTABLISHED 15148/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7023 ESTABLISHED 15129/sshd tcp 0 0 :::22 :::* LISTEN 897/sshd tcp 0 0 :::80 :::* LISTEN 13764/httpd [root@localhost ~]# netstat -tlnap #显示所有tcp连接 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 897/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7024 ESTABLISHED 15148/sshd tcp 0 0 192.168.19.54:22 192.168.19.1:7023 ESTABLISHED 15129/sshd tcp 0 0 :::22 :::* LISTEN 897/sshd tcp 0 0 :::80 [root@localhost ~]# netstat -ulnap #显示所有udp连接,目前没有udp连接,所以为空 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name [root@localhost ~]# netstat -r #可以显示路由表信息 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.19.0 * 255.255.255.0 U 0 0 0 eth0 link-local * 255.255.0.0 U 0 0 0 eth0 default 192.168.19.2 0.0.0.0 UG 0 0 0 eth0
8.10.ss
功能:另一个比netstat更强大的socket查看工具
语法:ss [options] [ FILTER ]
常用选项:
-n 不解析名字
-a 显示所有socket
-l 显示所有监听的socket
-o 显示计时器
-e 显示socket详细信息
-m 显示socket内存使用
-p 显示进程使用的socket
-i 显示内部TCP信息
-s 显示socket使用汇总
-4 只显示IPV4的socket
-0 显示包socket
-t 只显示TCP socket
-u 只显示UDP socket
-d 只显示DCCP socket
-w 只显示RAW socket
-x 只显示Unix域socket
-f FAMILY 只显示socket族类型( unix, inet,inet6, link, netlink)
-A 查询socket{all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D 将原始的TCP socket转储到文件
-F 从文件中读取过滤信息
过滤:
-o state 显示TCP连接状态信息
示例:
[root@localhost ~]# ss -t -a #显示所有tcp连接 State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::ssh :::* LISTEN 0 128 *:ssh *:* LISTEN 0 511 :::http :::* ESTAB 0 0 192.168.19.54:ssh 192.168.19.1:7024 ESTAB 0 0 192.168.19.54:ssh 192.168.19.1:7023 [root@localhost ~]# ss -u -a #显示所有udp连接 State Recv-Q Send-Q Local Address:Port Peer Address:Port [root@localhost ~]# ss -s #显示所有socket Total: 287 (kernel 295) TCP: 6 (estab 2, closed 1, orphaned 0, synrecv 0, timewait 0/0), ports 2 Transport Total IP IPv6 * 295 - - RAW 0 0 0 UDP 0 0 0 TCP 5 3 2 INET 5 3 2 FRAG 0 0 0 [root@localhost ~]# ss -o state established #显示已经建立的连接 Recv-Q Send-Q Local Address:Port Peer Address:Port 0 0 192.168.19.54:ssh 192.168.19.1:7024 timer:(keepalive,25min,0) 0 96 192.168.19.54:ssh 192.168.19.1:7023 timer:(on,248ms,0) [root@localhost ~]# ss -o state TIME_WAIT #显示所有的timeout,这里没有的 ss: no socket states to show with such filter
8.11.nc
功能:是一个功能强大的网络工具,全称是netcat。查看TCP和UDP连接和侦听
语法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
常用选项:
-g <网关> 设置路由器跃程通信网关
-G <指向器数目> 设置来源路由指向器,其数值为4的倍数
-h 在线帮助
-i interval<延迟秒数> 指定间隔时间发送和接受行文本
-l 监听模式,管控传入的资料
-n 直接使用IP地址,而不通过域名服务器
-o <输出文件> 指定文件名称,把往来传输的数据以16进制文件保存
-p <通信端口>指定本地源端口
-r 指定本地和远程主机端口
-s <来源位址>指定本地源IP地址
-u 使用udp协议,默认是tcp
-v 执行过程输出
-w <超时秒数> timeout 连接超时时间
-x proxy_address[:port] 请求连接主机使用代理地址和端口
-z 指定扫描监听端口,不发送任何数据
示例:
安装nc [root@localhost log]# yum install -y nc tcp端口扫描: [root@localhost log]# nc -v -z -w2 127.0.0.1 1-100 #扫描本地tcp端口1-100nc: connect to 127.0.0.1 port 1 (tcp) failed: Connection refused......Connection to 127.0.0.1 22 port [tcp/ssh] succeeded! [root@localhost log]# nc -z 127.0.0.1 1-65535 #扫描监听的端口 Connection to 127.0.0.1 22 port [tcp/ssh] succeeded! Connection to 127.0.0.1 35186 port [tcp/*] succeeded! 简单聊天工具: [root@docker-node5 ~]# nc -l 1234 #在192.168.19.6上开启1234端口作为聊天端口 [root@localhost log]# nc 192.168.19.6 1234 #在192.168.19.20同样开启1234端口为聊天端口 开始聊天: [root@localhost log]# nc 192.168.19.6 1234 dff [root@docker-node5 ~]# nc -l 1234 这边的屏幕就会输出刚才的dff信息 dff 使用ctrl+C(或D)退出 拷贝文件: [root@docker-node5 ~]# nc -l 1234 > test.txt [root@localhost log]# nc 192.168.19.6 1234 < test.txt