Linux常用网络命令参数整理


文章原地址
对比
iproute2已经逐步取代net-tools,此文介绍这两者

一、net-tools

1.ifconfig

NAME
ifconfig - configure a network interface

SYNOPSIS
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address …
Ifconfig用于配置内核驻留网络接口。它在启动时根据需要设置接口。之后,通常只在调试或需要系统调优时需要它。
如果没有给出参数,ifconfig将显示当前活动接口的状态。如果给出了单个接口参数,它只显示给定接口的状态;如果给出一个-a参数,它将显示所有接口的状态,甚至包括那些处于down状态的接口。否则将配置接口。
常用参数:
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
netmask<子网掩码> 设置网络设备的子网掩码。
-a :显示所有接口,即使接口是down的
-s:显示概要信息
-v:更详细的显示
up:激活接口
down :shutdown指定接口。
[-]arp 开启或关闭arp协议在接口上的启用情况
address:给接口设置ip地址
hw 设置网络设备的类型与硬件地址。

2.route

NAME
route - show / manipulate the IP routing table

SYNOPSIS

-v:显示详细的处理信息
-A family:用指定的地址族(如inet,inet6)
-n:以数字形式代替解释主机名形式来显示地址
-e:用netstat(8)的格式来显示选路表
-ee:使用更详细的资讯来显示
-net:到一个网络的路由表
-host:到一个主机的路由表
-F:显示内核的FIB选路表。其格式可以用-e 和 -ee选项改变
-C:显示内核的路由缓存
del :删除一条路由
add:添加一条路由
target:指定目标网络或主机。可以用点分十进制形式的IP地址或主机/网络名
netmask Nm:为添加的路由指定网络掩码
gw Gw:为发往目标网络/主机的任何分组指定网关。注意:指定的网关首先必须是可达的。也就是说必须为该网关预先指定一条静态路由。
reject:设置一条阻塞路由以使一条路由查找失败。这用于在使用缺省路由前先屏蔽掉一些网络。但这并不起到防火墙的作用
mod, dyn, reinstate:设置一条动态的或更改过的路由。这些标志通常只由选路进程来设置。这只用于诊断目的
dev If:强制使路由与指定的设备关联,因为否则内核会自己来试图检测相应的设备(通常检查已存在的路由和加入路由的设备的规格)。在多数正常的网络上无需使用

3.netstat

NAME
netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships

SYNOPSIS
这个命令的原型太复杂了,就不放了
常用参数:
不带参数显示所有打开的socket的列表
a或–all:显示所有连线中的Socket;
-A 指定要显示的连接的地址族;
-c或–continuous:每秒打印一次网络状态;
-C或–cache:显示路由器信息的缓存信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示组播组成员信息;
-i或–interfaces:显示网络接口的信息;
-l或–listening:显示监控中的服务器的Socket;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp:显示TCP传输协议的连线状况;
-u或–udp:显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;

netstat -anp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:43991         0.0.0.0:*               LISTEN      202104/code-ea1445c
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:44488         127.0.0.1:22            ESTABLISHED -
tcp        0      0 172.24.165.234:55442    192.168.110.10:7890     ESTABLISHED 202181/node
tcp        0      0 127.0.0.1:22            127.0.0.1:56094         ESTABLISHED -
tcp        0      0 127.0.0.1:57326         127.0.0.1:43991         ESTABLISHED -
tcp        0      0 127.0.0.1:43991         127.0.0.1:57326         ESTABLISHED 202104/code-ea1445c
tcp        0      0 127.0.0.1:22            127.0.0.1:44488         ESTABLISHED -
tcp      324      0 127.0.0.1:56094         127.0.0.1:22            ESTABLISHED -
tcp6       0      0 :::111                  :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
udp        0      0 127.0.0.1:323           0.0.0.0:*                           -
udp        0      0 127.0.0.53:53           0.0.0.0:*                           -
udp        0      0 0.0.0.0:111             0.0.0.0:*                           -
udp6       0      0 ::1:323                 :::*                                -
udp6       0      0 :::111                  :::*                                -
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
unix  2      [ ACC ]     STREAM     LISTENING     19821    -                    /run/uuidd/request
unix  2      [ ACC ]     STREAM     LISTENING     20511    -                    /run/WSL/2_interop
unix  2      [ ACC ]     STREAM     LISTENING     18246    -                    /run/WSL/1_interop
unix  2      [ ACC ]     STREAM     LISTENING     22543    -                    /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     SEQPACKET  LISTENING     19632    -                    /mnt/wslg/weston-notify.sock
unix  2      [ ACC ]     STREAM     LISTENING     1154     -                    /mnt/wslg/runtime-dir/wayland-0

如果Recv-Q和Send-Q的值一直非0,
LISTEN状态:表示队列中的连接数量,非LISTEN状态为字节数量;
非 LISTEN 状态Recv-Q 表示 receive queue 中的 bytes 数量;Send-Q 表示 send queue 中的 bytes 数值。
flags为ACC代表是accept的socket,而别的socket是accept返回的新socket

二、iproute2

1.ip

NAME
ip - show / manipulate routing, network devices, interfaces and tunnels

SYNOPSIS
ip [ OPTIONS ] OBJECT { COMMAND | help }

options包括:

-V,显示版本
-h,符合人类阅读习惯显示输出
-s:输出更多信息
-f,-family {inet, inet6, link} 强制使用指定的协议族
-4,指定使用的网络层协议是IPv4协议
-6,指定使用的网络层协议是IPv6协议
-br,输出概要信息
-B,指定使用的网络层协议是Bridge协议
-D,指定使用的网络层协议是decnet协议
-M,指定使用的网络层协议是mpls协议
-N,直接打印协议、范围、dsfield等的值,而不是将其转换为易读的名称。
-0,指定使用的网络层协议是link协议
-i,指定使用的网络层协议是ipx协议
-d,输出更详细的信息
-o,-oneline,输出信息每条记录输出一行,即使内容较多也不换行显示
-r,-resolve,显示主机时,不使用IP地址,而使用主机的域名
-l,-loops,指定“ip地址刷新”的最大循环数。如果设置为0,那么将会一直尝试,直到所有地址被移除。
-t,-timestamp,当使用监视器选项时,输出时间戳
-a,-all,执行指定命令给所有对象(如果命令支持这个选项)
-c,-color,使用颜色输出

ip command语法:

object包括:

    address:网络设备的IP(v4或者v6)地址信息
    link :网络设备信息
    maddress:多播地址
    mourte:组播路由缓存条目
    monitor:监控网络链接消息
    netns:管理网络命名空间
    ntable:管理邻居表缓存操作
    neighbour:邻居表
    route:路由表
    rule:IP策略
    tunnel:IP隧道
    tuntap:管理tun/tap设备

COMMAND包括:

    add:新增
    delete:删除
    show(or list):显示
    set:设置参数

2.ss

NAME
ss - another utility to investigate sockets

SYNOPSIS
ss [options] [ FILTER ]
ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似。但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快。当服务器的 socket 连接数量变得非常大时,无论是使用 netstat 命令还是直接 cat /proc/net/tcp,执行速度都会很慢。ss 命令利用到了 TCP 协议栈中 tcp_diag。tcp_diag 是一个用于分析统计的模块,可以获得 Linux 内核中第一手的信息,因此 ss 命令的性能会好很多。
常用参数:
-t, --tcp 显示 TCP 协议的 sockets
-u, --udp 显示 UDP 协议的 sockets
-x, --unix 显示 unix domain sockets,与 -f 选项相同
-n, --numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”
-l, --listening 只显示处于监听状态的端口
-p, --processes 显示监听端口的进程(Ubuntu 上需要 sudo)
-a, --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
-r, --resolve 把 IP 解释为域名,把端口号解释为协议名称
-s:显示汇总的概要信息

三、其他

1.tcpdump

NAME
tcpdump - dump traffic on a network

SYNOPSIS
tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffer_size ]
[ -c count ]
[ -C file_size ] [ -G rotate_seconds ] [ -F file ]
[ -i interface ] [ -j tstamp_type ] [ -m module ] [ -M secret ]
[ --number ] [ -Q in|out|inout ]
[ -r file ] [ -V file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,… ]
[ -y datalinktype ] [ -z postrotate-command ] [ -Z user ]
[ --time-stamp-precision=tstamp_precision ]
[ --immediate-mode ] [ --version ]
[ expression ]
常用参数:
-c<数据包数目> 收到指定的数据包数目后,就停止进行抓取报文。
-D:列出系统上可用的网络接口,以及哪个接口可以抓包
-e 在每列输出上显示链路层文件头。
-F指定内含过滤表达式的文件用于过滤。
-i使用指定的接口送出数据包。
-l 使用标准输出抓取报文的缓冲区。待验证
-Q指定抓包方向,出方向,入方向或双向
-q 快速输出,仅列出少数的传输协议信息。
-r 从指定的文件(用-w创建的)读取数据包数据。
-T 强制将表达方式所指定的数据包转译成设置的数据包类型。
-t 输出时不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。

expression
表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包 将会被截获,在表达式中一般如下几种类型的关键字:
关于数据类型的关键字:
包括host、port、net,例如host 192.168.1.1表示这是一台主机,net 192.168.0.0表示这是一个网络地址,port 22指明端口号是22,如果没有指明类型,则默认的类型是host
数据传输方向的关键字:
包括src、dst、dst or src、dst and src,这些关键字指明了传输的方向,比如src 192.168.1.1说明数据包源地址是192.168.1.1,dst net 192.168.0.0指明目的网络地址是192.168.0.0,默认是监控主机对主机的src和dst,即默认监听本机和目标主机的所有数据
protocol:包括ip、arp、rarp、tcp、udp等
ip proto protocol:可以是数字或以下字段icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, or tcp.
vlan [vlan_id]:指定vlan
l1, l2, iih, lsp, snp, csnp, psnp:IS-IS PDU类型的缩写
可使用的运算符:
>, <, >=, <=, =, !=
非 (`!’ or `not’).
与 (&&' or and’).
或(||' or or’).

2.traceroute

NAME
traceroute - print the route packets trace to network host

SYNOPSIS
traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,…]
[-i device] [-m max_ttl] [-p port] [-s src_addr]
[-q nqueries] [-N squeries] [-t tos]
[-l flow_label] [-w waittimes] [-z sendwait] [-UL] [-D]
[-P proto] [–sport=port] [-M method] [-O mod_options]
[–mtu] [–back]
host [packet_len]
traceroute6 [options]
tcptraceroute [options]
lft [options]
常用参数:
-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的TTL的大小,默认为1。
-F 不要分片探测包。
-g<网关> 设置来源路由网关,最多可设置8个。
-i<接口> 使用指定的接口送出数据包。
-I 使用ICMP来探测。
-m 设置检测数据包的最大TTL的大小。
-n 直接使用IP地址而非主机名称。
-p<通信端口> 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-T:使用TCP SYNC来探测
-v 详细显示指令的执行过程。
-w<超时秒数> 设置等待远端主机回复的时间。
-x 开启或关闭数据包的正确性检验。

3.namp命令

参考链接nmap参考指南
名称

nmap — 网络探测工具和安全/端口扫描器

参数

nmap [ <扫描类型> …] [ <选项> ] { <扫描目标说明> }

4.netcat命令

5.socat命令

NAME
       socat - Multipurpose relay (SOcket CAT)

SYNOPSIS
       socat [options] <address> <address>
       socat -V
       socat -h[h[h]] | -?[?[?]]
       filan
       procan

常用参数:
-v verbose text dump of data traffic
-x verbose hexadecimal dump of data traffic
-r raw dump of data flowing from left to right
-R raw dump of data flowing from right to left
-t wait seconds before closing second channel
-u unidirectional mode (left to right)
-U unidirectional mode (right to left)

地址组成
address type:parameters1:parameters2,options1,options2
当使用socat -h时, address-head后面提示的groups
使用!!组合单地址时相当于单向模式
地址类型:
/dev/xxx
被socat连接后,就算socat停止,影响可能还在,使用reset或stty sane来恢复
b115200,设置波特率,使用 socat -hh |grep ’ b[1-9]’查看支持的数值。不支持的系统使用ispeed或ospeed替代
echo[=] 开关回显
raw 废弃选项,直接传输
rawer,直接传输,这个选项会关闭回显。实测串口<==>TCP<==>stdin连接时,串口不加rawer,输入会突然跳很多行
ignbrk[=] 忽略ctrc+c
crnl:转换\n为\r\n,实测串口<==>TCP<==>stdin连接时,串口不加crnl,输入会乱码

PTY:生成虚拟串口
TCP:连接到指定主机的指定端口号
TCP-LISTEN:<port>:监听端口号,接受连接
UDP:<host>::连接到端口号
UNIX:域套接字
可以看下man手册中示例的用法

      socat -d -d -lmlocal2 \
              TCP4-LISTEN:80,bind=myaddr1,reuseaddr,fork,su=nobody,range=10.0.0.0/8 \
              TCP4:www.domain.org:80,bind=myaddr2


     socat \
              -,escape=0x0f \
              /dev/ttyS0,rawer,crnl

       socat \
              UNIX-LISTEN:/tmp/.X11-unix/X1,fork \
              SOCKS4:host.victim.org:127.0.0.1:6000,socksuser=nobody,sourceport=20

       socat -u \
              TCP4-LISTEN:3334,reuseaddr,fork \
              OPEN:/tmp/in.log,creat,append

       socat \
              PTY,link=$HOME/dev/vmodem0,rawer,wait-slave \
              EXEC:'"ssh modemserver.us.org socat - /dev/ttyS0,nonblock,rawer"'

       socat \
              UDP:host2:4443 \
              TUN:192.168.255.1/24,up

使用实例:

#使用socat实现远程串口
sudo socat -v /dev/ttyUSB0,rawer,crnl TCP-LISTEN:5555,reuseaddr
sudo socat - TCP:localhost:5555
#使用agent-proxy实现分流
sudo agent-proxy 5550^5551 0 /dev/ttyUSB0,115200
telnet localhost 5550
(gdb) target remote localhost:5551
#使用agent-proxy实现串口服务器的分流
agent-proxy 5550^5551 172.14.49.253 10001
#直接使用串口
sudo socat - /dev/ttyUSB0,rawer,crnl
#打印unix scoket
mv sock_ccs_config sock_ccs_config1
socat -t100 -x -v UNIX-LISTEN:sock_ccs_config,mode=777,reuseaddr,fork UNIX-CONNECT:sock_ccs_config1

远程串口也可以参考minicom代码 利用socket以及串口属性设置,自己实现一个
注意!上述操作最好都是在连接串口的设备上进行,不要在host本身去执行
抓包unix socket
通过tcpdump对Unix Domain Socket 进行抓包解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值