4.Linux常用命令---网络/端口管理

2025-05-07 18:44:27

4.1 netstat --查询端口占用,占用程序及处理方法

参数:

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

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

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

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

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

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

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

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

-s 按各个协议进行统计

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

//查看进程占用的端口

netstat -ap | grep 20486

//查出每个IP地址连接数

netstat -n | awk ‘/^tcp/ {print $5}’| awk -F: ‘{print $1}’ | sort | uniq -c | sort -rn

//统计已连接上的,状态为“established'

netstat -na | grep ESTABLISHED | wc -l

4.2 iostat–查询磁盘IO

iostat用于输出CPU和磁盘I/O相关的统计信息.

-c 显示CPU使用情况

-d 显示磁盘使用情况

-k 以K为单位显示

-m 以M为单位显示

-N 显示磁盘阵列(LVM) 信息

-n 显示NFS使用情况

-p 可以报告出每块磁盘的每个分区的使用情况

-t 显示终端和CPU的信息

-x 显示详细信息

选项说明%userCPU在用户态执行进程的时间百分比。%niceCPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比%systemCPU处在内核态执行进程的时间百分比%iowaitCPU用于等待I/O操作占用CPU总时间的百分比%steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比%idleCPU空闲时间百分比

若 %iowait 的值过高,表示硬盘存在I/O瓶颈若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU

选项说明rrqm/s每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并wrqm/s每秒对该设备的写请求被合并次数r/s每秒完成的读次数w/s每秒完成的写次数rkB/s每秒读数据量(kB为单位)wkB/s每秒写数据量(kB为单位)avgrq-sz平均每次IO操作的数据量(扇区数为单位)avgqu-sz平均等待处理的IO请求队列长度await平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)svctm平均每次IO请求的处理时间(毫秒为单位)%util采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

选项说明Device设备名称tps每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。Blk_read/sIndicate the amount of data read from the device expressed in a number of blocks per second. Blocks are equivalent to sectors with kernels 2.4 and later and therefore have a size of 512 bytes. With older kernels, a block is of indeterminate size.Blk_wrtn/sIndicate the amount of data written to the device expressed in a number of blocks per second.Blk_read取样时间间隔内读扇区总数量Blk_wrtn取样时间间隔内写扇区总数量

4.3 sar --查询网络IO

sar –n DEV 1 4 -n DEV,报告网络设备统计信息,参数还可以是EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 and UDP6 1 4,每一秒钟取一次值,取四次

输出信息说明:

IFACE:LAN接口rxpck/s:每秒钟接收的数据包txpck/s:每秒钟发送的数据包rxkByt/s:每秒钟接收的字节数txkByt/s:每秒钟发送的字节数rxcmp/s:每秒钟接收的压缩数据包txcmp/s:每秒钟发送的压缩数据包rxmcst/s:每秒钟接收的多播数据包

4.4 lsof–查看进程占用情况的命令

//显示符合条件的进程情况

[root@host1]# lsof -i:22

//显示开启文件messages的进程

[root@host1]# lsof /var/log/messages

//显示ssh进程现在打开的文件

[root@host1]# lsof -c ssh

//列出进程号为2081的进程所打开的文件

[root@host1]# lsof -p 2081

//列出归属gid的进程情况

[root@host1]# lsof -g 27

//显示目录下被进程开启的文件

[root@host1]# lsof +d /usr/local

//显示目录下被进程开启的文件,搜索目录下的目录,时间较长

[root@host1]# lsof +D /usr/local

4.5 ethtool–用于查询及设置网卡参数的命令

参数-a 查看网卡中接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。 -c display the Coalesce(聚合、联合) information of the specified ethernet card.聚合网口信息,使看起来更有规律。 -C Change the Coalesce setting of the specified ethernet card.修改网卡聚合信息。 -g Display the rx/tx ring parameter information of the specified ethernet card. 显示网卡的接收/发送环形参数。 -G Change the rx/tx ring setting of the specified ethernet card. 修改网卡的接收/发送环形参数。 -i 显示网卡驱动的信息,如驱动的名称、版本等。 -d 显示register dump信息, 部分网卡驱动不支持该选项。 -e 显示EEPROM dump信息,部分网卡驱动不支持该选项。 -E 修改网卡EEPROM byte. -k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。 -K 修改网卡Offload参数的状态 -p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。 -r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation. -s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。加上-s选项修改的内容才会生效 -S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。 -t 让网卡执行自我检测,有两种模式:offline or online.

ehtool -p eth0 #使得eth0网口闪烁,用于确定网口

ethool -i eth0 #查看eth0网口的驱动信息

4.6 iptables–数据包的控制及转发

iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。

1.iptables中的“四表五链”及“堵通策略”

【A.**“四表”**是指,iptables的功能——filter, nat, mangle, raw.】 filter:控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),具有以下三种内建链:

input 链 - 处理来之外部的数据output 链 - 处理向外发送的数据forward 链- 将数据转发到本机的其它网卡上

nat:控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting NAT有三种内建的链:

prerouting - 处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。postrouting - 处理即将离开本机数据包,它会转换数据包中的源目标IP地址(source ip address),通常SNAT(source NAT)output - 处理本机产生的数据包

mangle:修改数据包中的原数据,它能改变TCP头中的Qos位。可以控制的链路有prerouting, input, forward, output, postrouting raw:控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output

【B.**“五链”**是指内核中控制网络的NetFilter定义的五个规则链,分别为】 PREROUTING 路由前 INPUT 数据包流入口 FORWARD 转发网卡 OUTPUT 数据包出口 POSTROUTING 路由后

【C**.堵通策略**是指对数据包所做的操作,一般有两种操作——“通(ACCEPT)”、“堵(DROP)”,还有一种操作很常见REJECT.】 REJECT和DROP之间的区别,Ming写了一封信,向Rose示爱。Rose如果不愿意接受,她可以不回应Ming,这个时候Ming不确定Rose是否接到了信;Rose也可以同样写一封信,在信中明确地拒绝Ming。前一种操作就如同执行了DROP操作,而后一种操作就如同REJECT操作。

2.iptables命令的语法规则

iptables -t 表名<-A/I/D/R>规则链名[规则号] <-i/o网卡名> -p协议名<-s源IP/源子网> --sport源端口<-d目标IP/目标子网> --dport目标端口-j动作

参数:

链管理

-N, --new-chain chain:新建一个自定义的规则链;

-X, --delete-chain [chain]:删除用户自定义的引用计数为0的空链;

-F, --flush [chain]:清空指定的规则链上的规则;

-E, --rename-chain old-chain new-chain:重命名链;

-Z, --zero [chain [rulenum]]:置零计数器;

-P, --policy chain target, 设置链路的默认策略

规则管理

-A, --append chain rule-specification:追加新规则于指定链的尾部;

-I, --insert chain [rulenum] rule-specification:插入新规则于指定链的指定位置,默认为首部;

-R, --replace chain rulenum rule-specification:替换指定的规则为新的规则;

-D, --delete chain rulenum:根据规则编号删除规则;

查看规则

-L, --list [chain]:列出规则;

-v, --verbose:详细信息;

-vv, -vvv 更加详细的信息

-n, --numeric:数字格式显示主机地址和端口号;

-x, --exact:显示计数器的精确值;

--line-numbers:列出规则时,显示其在链上的相应的编号;

-S, --list-rules [chain]:显示指定链的所有规则;

//查看某表中的规则

[root@host1]# iptables --line-number -t 表名 -nL

//添加新的入站规则

[root@host1]# iptables -A INPUT -s ip地址 -p 协议 --dport 端口 -j 处理方式

//替换规则

[root@host1]# iptables -R INPUT 编号 -s ip地址 -p 协议 --dport 端口 -j 处理方式

//删除规则

[root@host1]# iptables -D INPUT 编号

//清空规则

[root@host1]# iptables -F

//修改默认规则

[root@host1]# iptables -t 表名 -P INPUT 处理方式

//允许路由转发(由内向外)

[root@host1]# iptables -t nat -A POSTROUTING -s 内网ip/网段 -j SNAT --to-source 外网ip

//允许路由转发(由外向内)

[root@host1]# iptables -t nat -A PREROUTING -d 外网ip -p 协议 --dport 端口 -j DNAT --to-destination 内网ip/网段

//实现地址转发(反向代理,基于内网ip)

[root@host1]# iptables -t nat -A PREROUTING -d 外网ip -p 协议 --dport 端口 -j DNAT --to-destination 内网ip/网段

iptables -t nat -I POSTROUTING -p 协议 --dport 端口 -j MASQUERADE

//限制每秒钟接受到的数据包的个数

[root@host1]# iptables -I INPUT -m limit --limit 个数/sec -j ACCEPT

//拒绝新的连接请求

[root@host1]# iptables -A INPUT -m state --state NEW -j DROP

4.7 telnet–测试端口

[root@wms unimas_back]# telnet 192.168.10.30 21

Trying 192.168.10.30...

Connected to 192.168.10.30.

Escape character is '^]'.

220 (vsFTPd 3.0.2)

telnet> quit

4.8 nc命令–设置路由器,扫描端口

参数: -g <网关> 设置路由器跃程通信网关,最多可设置8个。 -G <指向器数目> 设置来源路由指向器,其数值为4的倍数。 -h 在线帮助。 -i <延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。 -l 使用监听模式,管控传入的资料。 -n 直接使用IP地址,而不通过域名服务器。 -o <输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。 -p <通信端口> 设置本地主机使用的通信端口。 -r 乱数指定本地与远端主机的通信端口。 -s <来源位址> 设置本地主机送出数据包的IP地址。 -u 使用UDP传输协议。 -v 显示指令执行过程。 -w <超时秒数> 设置等待连线的时间。 -z 使用0输入/输出模式,只在扫描通信端口时使用。

#TCP端口扫描

# nc -v -z -w2 192.168.0.3 1-100

192.168.0.3: inverse host lookup failed: Unknown host

(UNKNOWN) [192.168.0.3] 80 (http) open

(UNKNOWN) [192.168.0.3] 23 (telnet) open

(UNKNOWN) [192.168.0.3] 22 (ssh) open

#扫描192.168.0.3 的端口 范围是 1-100

#扫描UDP端口

# nc -u -z -w2 192.168.0.1 1-1000 //扫描192.168.0.3 的端口 范围是 1-1000

#扫描指定端口

# nc -nvv 192.168.0.1 80 //扫描 80端口

(UNKNOWN) [192.168.0.1] 80 (?) open

y //用户输入

4.9 ifconfig–显示或设置网络设备

参数说明:

add<地址> 设置网络设备IPv6的IP地址。del<地址> 删除网络设备IPv6的IP地址。down 关闭指定的网络设备。<硬件地址> 设置网络设备的类型与硬件地址。io_addr 设置网络设备的I/O地址。irq 设置网络设备的IRQ。media<网络媒介类型> 设置网络设备的媒介类型。mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。mtu<字节> 设置网络设备的MTU。netmask<子网掩码> 设置网络设备的子网掩码。tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。up 启动指定的网络设备。-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。-promisc 关闭或启动指定网络设备的promiscuous模式。[IP地址] 指定网络设备的IP地址。[网络设备] 指定网络设备的名称。

//显示网卡信息

[root@host1]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:50:56:0A:0B:0C

inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0

inet6 addr: fe80::250:56ff:fe0a:b0c/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:172220 errors:0 dropped:0 overruns:0 frame:0

TX packets:132379 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:87101880 (83.0 MiB) TX bytes:41576123 (39.6 MiB)

Interrupt:185 Base address:0x2024

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:2022 errors:0 dropped:0 overruns:0 frame:0

TX packets:2022 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:2459063 (2.3 MiB) TX bytes:2459063 (2.3 MiB)

//启动关闭指定网卡

[root@host1]# ifconfig eth0 down

[root@host1]# ifconfig eth0 up

//为网卡配置和删除IPv6地址

[root@host1]# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡配置IPv6地址

[root@host1]# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

//用ifconfig修改MAC地址

[root@host1]# ifconfig eth0 down //关闭网卡

[root@host1]# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址

[root@host1]# ifconfig eth0 up //启动网卡

[root@host1]# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址

[root@host1]# ifconfig eth1 up //启动网卡

//配置IP地址

[root@host1]# ifconfig eth0 192.168.1.56 //给eth0网卡配置IP地址

[root@host1]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 //给eth0网卡配置IP地址,并加上子掩码

[root@host1]# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255 //给eth0网卡配置IP地址,加上子掩码,加上个广播地址

//启用和关闭ARP协议

[root@host1]# ifconfig eth0 arp //开启

[root@host1]# ifconfig eth0 -arp //关闭

//设置最大传输单元

[root@host1]# ifconfig eth0 mtu 1500 //设置能通过的最大数据包大小为 1500 bytes

4.10 setserial–设置或显示串口的相关信息

setserial [-abgGqvVz][设备][串口参数]

参数说明:

-a 显示详细信息

-b 显示摘要信息

-g 显示串口的相关信息

-G 以指令列表的格式来显示信息

-q 执行时显示较少的信息

-v 执行时显示较多的信息

-z 设置前,先将所有的标记归零

[root@host1]# setserial -g /dev/ttyS2

/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4

4.11 traceroute–显示数据包到主机间的路径

traceroute命令用于显示数据包到主机间的路径。让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。 参数说明: -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 开启或关闭数据包的正确性检验。

[root@host1]# traceroute www.google.com

traceroute: Warning: www.google.com has multiple addresses; using 66.249.89.99

traceroute to www.l.google.com (66.249.89.99), 30 hops max, 38 byte packets

1 192.168.0.1 (192.168.0.1) 0.653 ms 0.846 ms 0.200 ms

2 118.250.4.1 (118.250.4.1) 36.610 ms 58.438 ms 55.146 ms

3 222.247.28.177 (222.247.28.177) 54.809 ms 39.879 ms 19.186 ms

4 61.187.255.253 (61.187.255.253) 18.033 ms 49.699 ms 72.147 ms

5 61.137.2.177 (61.137.2.177) 32.912 ms 72.947 ms 41.809 ms

6 202.97.46.5 (202.97.46.5) 60.436 ms 25.527 ms 40.023 ms

7 202.97.35.69 (202.97.35.69) 40.049 ms 66.091 ms 44.358 ms

8 202.97.35.110 (202.97.35.110) 42.140 ms 70.913 ms 41.144 ms

9 202.97.35.14 (202.97.35.14) 116.929 ms 57.081 ms 60.336 ms

10 202.97.60.34 (202.97.60.34) 54.871 ms 69.302 ms 64.353 ms

11 * * *

12 209.85.255.80 (209.85.255.80) 95.954 ms 79.844 ms 76.052 ms

MPLS Label=385825 CoS=5 TTL=1 S=0

13 209.85.249.195 (209.85.249.195) 118.687 ms 120.905 ms 113.936 ms

14 72.14.236.126 (72.14.236.126) 115.843 ms 137.109 ms 186.491 ms

15 nrt04s01-in-f99.1e100.net (66.249.89.99) 168.024 ms 140.551 ms 161.127 ms

4.12 tcpdump–用于倾倒网络传输数据

参数说明: -a 尝试将网络和广播地址转换成名称 -c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作 -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出 -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出 -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出 -e 在每列倾倒资料上显示连接层级的文件头 -f 用数字显示网际网络地址 -F<表达文件> 指定内含表达方式的文件 -A 以ASCII码方式显示每一个数据包,方便阅读 -i<网络界面> 使用指定的网络截面送出数据包(默认 eth0) -l 使用标准输出列的缓冲区 -n 不把主机的网络地址转换成名字 -N 不列出域名 -O 不将数据包编码最佳化 -p 不让网络界面进入混杂模式 -q 快速输出,仅列出少数的传输协议信息 -r<数据包文件> 从指定的文件读取数据包数据 -s<数据包大小> 设置每个数据包的大小,如果为 0 那么抓完整的包 -S 用绝对而非相对数值列出TCP关联数 -t 不显示时间戳记 -tt 在每列倾倒资料上显示未经格式化的时间戳记 -T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型 -v 详细显示指令执行过程 -vv 更详细显示指令执行过程 -x 用十六进制字码列出数据包资料 -w<数据包文件> 把数据包数据写入指定的文件

//显示指定数量包

[root@host1]# tcpdump -c 20

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

23:36:28.949538 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 148875984:148876020(36) ack 4184373187 win 2100

23:36:28.994325 IP 192.168.0.1.2101 > 192.168.0.3.ssh: . ack 36 win 64020

23:36:28.994368 IP 192.168.0.3.ssh > 192.168.0.1.2101: P 36:72(36) ack 1 win 2100

23:36:28.950779 IP 192.168.0.3.32804 > dns2.cs.hn.cn.domain: 18242+ PTR? 1.0.168.192.in-addr.arpa. (42)

//抓包

[root@host1]# tcpdump -A host 192.168.4.5 and tcp port 80

[root@host1]# tcpdump -i bond0 Anvs 0 -w /tmp/test.cap host 1.1.1.1 and port 1234

4.13 nmap–主机发现和端口扫描工具

nmap [ 扫描类型 ] [ 选项 ] [ 扫描目标 ]

-sS TCP SYN 扫描

-sT TCP 连接扫描

-sU UDP 扫描

-sP ICMP 扫描

-A 目标系统全面分析

-n 不执行 DNS 解析

//默认发送一个ARP的PING数据包,探测目标主机所开放的所有端口

[root@host1 ~]# nmap 192.168.1.100

//nmap简单扫描,并对结果返回详细的描述输出

[root@host1 ~]# nmap -vv 192.168.1.100

//扫描目标主机的20-120号端口

[root@host1 ~]# nmap -p20-120 192.168.1.100

//指定端口扫描

[root@host1 ~]# nmap -p20,120 192.168.1.100

//ping 扫描

[root@host1 ~]# nmap -sP 192.168.1.100

//路由跟踪

[root@host1 ~]# nmap –traceroute 192.168.1.100

//扫描一个网段下的ip

[root@host1 ~]# nmap -sP 192.168.1.1/24

//操作系统类型的探测

[root@host1 ~]# nmap -O 192.168.1.100

//万能开关

[root@host1 ~]# nmap -A 192.168.1.100

//混合式扫描

[root@host1 ~]# nmap -vv -p1-100 -O 192.168.1.100

在线识图
手机贷审核会打电话吗?审核要多久?