微前端架构如何改变企业的开发模式与效率提升
771
2022-09-23
traceroute,ifconfig,netstat[阮胜昌]
traceroute
功能说明:显示数据包到主机间的路径。(资料整理:linuxso.com)
语 法:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]
补充说明:traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
参 数:(资料整理:linuxso.com) -d 使用Socket层级的排错功能。 -f<存活数值> 设置第一个检测数据包的存活数值TTL的大小。 -F 设置勿离断位。 -g<网关> 设置来源路由网关,最多可设置8个。 -i<网络界面> 使用指定的网络界面送出数据包。 -I 使用ICMP回应取代UDP资料信息。 -m<存活数值> 设置检测数据包的最大存活数值TTL的大小。 -n 直接使用IP地址而非主机名称。 -p<通信端口> 设置UDP传输协议的通信端口。 -r 忽略普通的Routing Table,直接将数据包送到远端主机上。 -s<来源地址> 设置本地主机送出数据包的IP地址。 -t<服务类型> 设置检测数据包的TOS数值。 -v 详细显示指令的执行过程。 -w<超时秒数> 设置等待远端主机回报的时间。 -x 开启或关闭数据包的正确性检验。
++++++++++++++++++++++++=== ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,这个工具极为常用的。可以用这个工具来临时性的配置网卡的IP地址、掩码、广播地址、网关等。也可以把 它写入一个文件中(比如/etc/rc.d/rc.local),这样系统引导后,会读取这个文件,为网卡设置IP地址
语 法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][
参 数:
del<地址> 删除网络设备IPv6的IP地址。
2 ifconfig 配置网络接口;
ifconfig 可以用来配置网络接口的IP地址、掩码、网关、物理地址等;值得一说的是用ifconfig 为网卡指定IP地址,这只是用来调试网络用的,并不会更改系统关于网卡的配置文件。如果您想把网络接口的IP地址固定下来,目前有三个方法:一是通过各个 发行和版本专用的工具来修改IP地址;二是直接修改网络接口的配置文件;三是修改特定的文件,加入ifconfig 指令来指定网卡的IP地址,比如在redhat或Fedora中,把ifconfig 的语名写入/etc/rc.d/rc.local文件中;
ifconfig 配置网络端口的方法:
ifconfig 工具配置网络接口的方法是通过指令的参数来达到目的的,我们只说最常用的参数;
ifconfig 网络端口 IP地址 hw
* 实例二:在这个例子中,我们要学会设置网络IP地址的同时,学会设置网卡的物理地址(MAC地址);
比如我们设置网卡eth1的IP地址、网络掩码、广播地址,物理地址并且激活它; [root@linuxso.com ~]# ifconfig eth1 192.168.1.252 hw ether 00:11:00:00:11:11 netmask 255.255.255.0 broadcast 192.168.1.255 up 或 [root@linuxso.com ~]# ifconfig eth1 hw ether 00:11:00:00:11:22 [root@linuxso.com ~]# ifconfig eth1 192.168.1.252 netmask 255.255.255.0 broadcast 192.168.1.255 up
其中 hw 后面所接的是网络接口类型, ether表示乙太网, 同时也支持 ax25 、ARCnet、netrom等,详情请查看 man ifconfig ;
3.4 如何用ifconfig 来激活和终止网络接口的连接;
激活和终止网络接口的用 ifconfig 命令,后面接网络接口,然后加上 down或up参数,就可以禁止或激活相应的网络接口了。当然也可以用专用工具ifup和ifdown 工具; [root@linuxso.com ~]# ifconfig eth0 down [root@linuxso.com ~]# ifconfig eth0 up [root@linuxso.com ~]# ifup eth0 [root@linuxso.com ~]# ifdown eth0
对于激活其它类型的网络接口也是如此,比如 ppp0,wlan0等;不过只是对指定IP的网卡有效。
注意:对DHCP自动分配的IP,还得由各个发行版自带的网络工具来激活;当然得安装dhcp客户端;这个您我们应该明白;
比如Redhat/Fedora [root@linuxso.com ~]# /etc/init.d/network start
Slackware 发行版; [root@linuxso.com ~]# /etc/rc.d/rc.inet1 ------------------------------------------------------------------------------ 【简 介】 Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们。除了上面介绍的这些用法之外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命令行参数。 Ifconfig命令使LINUX核心知道软件回送和网卡这样一些网络接口,这样Linux就可以使用它们。除了上面介绍的这些用法之 外,ifconfig命令用来监控和改变网络接口的状态,并且还可以带上很多命令行参数。下面是一个ifconfig的通用调用语法:
#ifconfig interface [[-net -host] address [parameters]]
其中interface是网络接口名:address是分配给指定接口的主机名或IP地址。这里使用的主机名被解析成它们的对等IP地址,这个参数是必须的。-net和-host参数分别告诉ifconfig将这个地址作为网络号或者是主机地址。
如果调用ifconfig命令时后面只跟上端口设备名,那么它将显示这个端口的配置情况;如果不带任何参数,ifconfig命令将显示至今为止所配置的接口的所有信息;如果带上-a选项,那么还可以显示当前不活跃的接口。
一个检查以太网接口eth0的ifconfig调用可以得到如下的输出:
#ifconfig eth0
eth0 Link encap 10Mbps Ethernet HWaddr 00:00:C0:90:B3:44
inet addr xxx.xxx.xxx.xxx Bcast xxx.xxx.xxx.255 Mask 255.255.255.0
UP BROADCAST RUNNING MTU 1500 Metric 0
RX packets 3136 errors 217 dropped 7 overrun 26
TX packets 1752 errors 25 dropped 0 overrun 0
(注意:其中XXX.XXX.XXX.XXX是IP地址)
MTU和Metric这两列显示了当前eth0接口的最大数据传送值和接口度量值。接口度量值表示在这个路径上发送一个分组的成本。目前内核中还没有使 用路由,但可能以后会用。RX(接收分组数)和TX(传送分组数)这两行显示出了接收、传送分组的数目,以及分组出错数、丢失分组数(一个可能原因是内存 较少)和超限数(通常在接收器接收数据的速度快于核心的处理速度的时候发生)。
Parameters 表示ifconfig所支持的各种参数,使用这些参数就可以便方便地监控和改变网络接口的状态。
ifconfig的命令行参数:
up 激活指定的接口
down 关闭指定接口。该参数可以有效地阻止通过指定接口的IP信息 流,如果想永久地关闭一个接口,我们还需要从核心路由表中 将该接口的路由信息全部删除
netmask mask 为接口设置IP网络掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成 子网,可以不管这一选项;如果要使用子网,那么请记住,网络 中每一个系统必须有相同子网掩码。
pointpoint 打开指定接口的点对点模式。它告诉核心该接口是对另一台机器的直接连接。当包含了一个地址时,这个地址被分配给列表另 一端的机器。如果没有给出地址,就打开这个指定接口的 POINTPOINT选项。前面加一个负号表示关闭pointpoint选项。
broadcast address 当使用了一个地址时,设置这个接口的广播地址。如果 没有给出地址,就打开这个指定接口的IFF_BROADCAST选项。 前面加上一个负号表示关闭这个选项。
metric number 将接口度量值设置为整数number。度量值表示在这个路径上发 送一个分组的成本。目前内核中还没有使用路由成本,但将来会。
mtu bytes 将接口在一次传输中可以处理的最大字节数设置为整数bytes。 目前核心网络代码不处理IP分段,因此一定要把MTU(最大数据 传输单元) 值设置得足够大
arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于 关闭该选项。
allmuti 打开指定接口的无区别模式。打开这个模式让接口把网络上的 所有信息流都送到核心中,而不仅仅是把你的机器的信息发送给 核心。前面加上一个负号表示关闭该选项
hw 为指定接口设置硬件地址。硬件类型名和次硬件地址对等的 ASCII字符必须跟在这个关键字后面。目前支持以太网 (ether)、AMPR、AX.25和PPP traliers 打开以太网帧上的-。目前还未在LINUX网络中实现,通常不需要使用所有的这些配置。
Ifconfig可以仅由接口名、网络掩码和分配IP地址来设置所需的一切。当ifconfig疏漏了或者有一个复杂的网络时,只要重新设置大多数参数。
使用netstat检查网络状态
接下来介绍一个很有用的命令——netstat,使用netstat命令可以监控TCP/IP网络配置和工作状况。它可以显示内核路由表、 活动的网络状态以及每个网络接口的有用的统计数字。欲得详情请阅man page。
-a 显示所有Internet连接的有关信息,包括那些正在监听的信息
-i 显示所有网络设备的统计数字
-c 不断显示网络的更新状态。这个参数使用netstat每秒一次的输出网络状态列表,直到该程序被中断
-n 以数字/原始形式显示远程地址、本地地址和端口信息,而不是解析主机名和服务器
-o 显示计数器的终止时间和每个网络连接的回退(back off)情况
-r 显示内核路由表
-t 只显示TCP socket信息,包括正在监听的信息
-u 只显示UDP socket信息
-v 显示netstat版本信息
-w 显示原始(raw)socket信息
-x 显示UNIX域socket信息
netstat -nulpn //最常用组合
++++++++++++++++++++++++++++++++++++++++++++++++
Netstat
命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
输出信息含义 执行netstat后,其输出结果为
从整体上看,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才能看到
实用命令实例 1. 列出所有端口 (包括监听和未监听的) 列出所有端口 netstat -a
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket
列出所有 tcp 端口 netstat -at
# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN
列出所有 udp 端口 netstat -au
# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:* udp 0 0 *:49119 *:* udp 0 0 *:mdns *:* 2. 列出所有处于监听状态的 Sockets 只显示监听端口 netstat -l
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN udp 0 0 *:49119 *:* 只列出所有监听 tcp 端口 netstat -lt
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN 只列出所有监听 udp 端口 netstat -lu
# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:49119 *:* udp 0 0 *:mdns *:* 只列出所有监听 UNIX 端口 netstat -lx
# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6294 private/maildrop unix 2 [ ACC ] STREAM LISTENING 6203 public/cleanup unix 2 [ ACC ] STREAM LISTENING 6302 private/ifmail unix 2 [ ACC ] STREAM LISTENING 6306 private/bsmtp
3. 显示每个协议的统计信息 显示所有端口的统计信息 netstat -s
# netstat -s Ip: 11150 total packets received 1 with invalid addresses 0 forwarded 0 incoming packets discarded 11149 incoming packets delivered 11635 requests sent out Icmp: 0 ICMP messages received 0 input ICMP message failed. Tcp: 582 active connections openings 2 failed connection attempts 25 connection resets received Udp: 1183 packets received 4 packets to unknown port received. .....
显示 TCP 或 UDP 端口的统计信息 netstat -st 或 -su
# netstat -st # netstat -su 4. 在 netstat 输出中显示 PID 和进程名称 netstat -p netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 1 0 ramesh-laptop.loc:47212 192.168.185.75:CLOSE_WAIT 2109/firefox tcp 0 0 ramesh-laptop.loc:52750 lax:ESTABLISHED 2109/firefox
5. 在 netstat 输出中不显示主机,端口和用户名 (host, port or user) 当你不想让主机,端口和用户名显示,使用 netstat -n。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。
# netstat -an 如果只是不想让这三个名称中的一个被显示,使用以下命令
# netsat -a --numeric-ports# netsat -a --numeric-hosts# netsat -a --numeric-users 6. 持续输出 netstat 信息 netstat 将每隔一秒输出网络信息。
# netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 ramesh-laptop.loc:36130 101-101-181-225.ama:ESTABLISHED tcp 1 1 ramesh-laptop.loc:52564 101.11.169.230:CLOSING tcp 0 0 ramesh-laptop.loc:43758 server-101-101-43-2:ESTABLISHED tcp 1 1 ramesh-laptop.loc:42367 101.101.34.101:CLOSING ^C
7. 显示系统不支持的地址族 (Address Families) netstat --verbose 在输出的末尾,会有如下的信息
netstat: no support for `AF IPX' on this system-stat: no support for `AF AX25' on this system-stat: no support for `AF X25' on this system-stat: no support for `AF NETROM' on this system. 8. 显示核心路由信息 netstat -r # 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 eth2 link-local * 255.255.0.0 U 0 0 0 eth2 default 192.168.1.1 0.0.0.0 UG 0 0 0 eth2 注意: 使用 netstat -rn 显示数字格式,不查询主机名称。
9. 找出程序运行的端口 并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息。
# netstat -ap | grep ssh tcp 1 0 dev-db:ssh 101.174.100.22:39213 CLOSE_WAIT - tcp 1 0 dev-db:ssh 101.174.100.22:57643 CLOSE_WAIT - 找出运行在指定端口的进程
# netstat -an | grep ':80' 10. 显示网络接口列表 # netstat -i Kernel Interface table Iface MTU Met 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 0 BMU eth2 1500 0 26196 0 0 0 26883 6 0 0 BMRU lo 16436 0 4 0 0 0 4 0 0 0 LRU 显示详细信息,像是 ifconfig 使用 netstat -ie:
# netstat -ie Kernel Interface table eth0 Link encap:Ethernet HWaddr 00:10:40:11:11:11 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Memory:f6ae0000-f6b00000
11. IP和TCP分析 查看连接某服务端口最多的的IP地址
wss8848@ubuntu:~$ netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -2018 221.136.168.363 154.74.45.2422 78.173.31.2362 62.183.207.982 192.168.1.142 182.48.111.2152 124.193.219.342 119.145.41.22 114.255.41.301 75.102.11.99
TCP各种状态列表
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'established)ForeignLISTENTIME_WAITESTABLISHEDTIME_WAITSYN_SENT
先把状态全都取出来,然后使用uniq -c统计,之后再进行排序。
wss8848@ubuntu:~$ netstat -nat |awk '{print $6}'|sort|uniq -c143 ESTABLISHED1 FIN_WAIT11 Foreign1 LAST_ACK36 LISTEN6 SYN_SENT113 TIME_WAIT1 established)
最后的命令如下: netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn 分析access.log获得访问前10位的ip地址 awk '{print $1}' access.log |sort|uniq -c|sort -nr|head -10
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~