Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp(

Posted 已注销

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp(相关的知识,希望对你有一定的参考价值。

简介

        本文介绍常用的网络命令,包括:ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp

ping

用法

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]

           [-r count] [-s count] [[-j host-list] | [-k host-list]]

           [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name

选项

-t             Ping 指定的主机,直到停止。

               若要查看统计信息并继续操作 - 请键入 Control-Break;

               若要停止 - 请键入 Control-C。

-a             将地址解析成主机名。

-n count    要发送的回显请求数。

-l size        发送缓冲区大小。

-f              在数据包中设置“不分段”标志(仅适用于 IPv4)。

-i TTL        生存时间。

-v TOS     服务类型(仅适用于 IPv4。该设置已不赞成使用,且

                  对 IP 标头中的服务字段类型没有任何影响)。

-r count       记录计数跃点的路由(仅适用于 IPv4)。

-s count       计数跃点的时间戳(仅适用于 IPv4)。

-j host-list   与主机列表一起的松散源路由(仅适用于 IPv4)。

-k host-list   与主机列表一起的严格源路由(仅适用于 IPv4)。

-w timeout  等待每次回复的超时时间(毫秒)。

-R             同样使用路由标头测试反向路由(仅适用于 IPv6)。

-S srcaddr  要使用的源地址。

-4             强制使用 IPv4。

-6             强制使用 IPv6。

示例

ping 192.168.1.1

ping命令原理

        源主机(输ping命令的主机)向目标主机发送一个ICMP协议(处于网络层)中的echo包;如目标主机存活,就向源主机返回一个ICMP协议的echo-reply包。

ping幕后过程

        我们以下面一个网络为例:有A、B、C、D四台机子(其中A、B的IP分别为192.168.0.4-192.168.0.5,子网掩码均为255.255.255.0;C、D的IP分别为192.168.1.3-192.168.1.4,子网掩码均为255.255.255.0),一台路由RA连接以上两个子网。

1) 在同一网段内

 

        在主机A上运行“Ping 192.168.0.5”后,都发生了些什么呢? 首先,ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.0.5”一起交给IP层协议(和 ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.0.5”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到192.168.0.5的MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过对比机器B的IP地址、自己的IP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC。如果以前两机有过通信,在A机的ARP缓存表应该有B机IP与其MAC的映射关系;如果没有,就发一个ARP请求广播,得到B机的MAC, 一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

 

        主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

2) 不在同一网段内

 

        在主机A上运行“Ping 192.168.1.4”后,开始跟上面一样,到了怎样得到MAC地址时,IP协议通过计算发现D机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的MAC取过来,至于怎样得到路由的MAC,跟上面一样,先在ARP缓存表找,找不到就广播吧。路由得到这个数据帧后,再跟主机D进行联系,如果找不到,就向主机A返回一个超时的信息。

netstat

其他网址


选项



描述



-a或--all



显示所有连线中的Socket;默认不显示LISTEN相关。



-A<网络类型>或--<网络类型>



列出该网络类型连线中的相关地址;



-c或--continuous



持续列出网络状态;



-C或--cache



显示路由器配置的快取信息;



-e或--extend



显示网络其他相关信息;



-F或--fib



显示FIB;



-g或--groups



显示多重广播功能群组组员名单;



-h或--help



在线帮助;



-i或--interfaces



显示网络界面信息表单;



-l或--listening



显示监听中的服务器的Socket;



-M或--masquerade



显示伪装的网络连线;



-n或--numeric



直接使用ip地址,而不通过域名服务器;



-N或--netlink或--symbolic



显示网络硬件外围设备的符号连接名称;



-o或--timers



显示计时器;



-p或--programs



显示正在使用Socket的程序识别码和程序名称;



-r或--route



显示RoutingTable;



-s或--statistice



显示网络工作信息统计表;



-t或--tcp



显示TCP传输协议的连线状况;



-u或--udp



显示UDP传输协议的连线状况;



-v或--verbose



显示指令执行过程;



-V或--version



显示版本信息;



-w或--raw



显示RAW传输协议的连线状况;



-x或--unix



此参数的效果和指定"-Aunix"参数相同;



--ip或--inet



此参数的效果和指定"-Ainet"参数相同。


示例

  1. 列出所有端口信息(包括监听和未监听的)
  1. netstat -ano
  1. 列出所有端口信息(包括监听和未监听的)
  1. netstat -a
  1. 列出所有的tcp协议的端口
  1. netstat -at
  1. 显示每个协议的统计信息
  1. netstat -s
  1. 显示核心路由信息
  1. netstat -r
  1. 持续输出 netstat 信息。netstat -c将每隔一秒输出网络信息
  1. netstat -c
  1. 找出程序运行的端口。并不是所有的进程都能找到,没有权限的会不显示,使用 root 权限查看所有的信息
  1. netstat -anp
  1. 显示多播组信息
  1. netstat -g
  1. 显示接口信息
  1. netstat -i
  1. 禁止域名解析
  1. netstat -nltp

结果说明

以netstat -a为例

hadoop@master:~$ netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:domain 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN
tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 ip6-localhost:ipp [::]:* LISTEN
udp 0 0 localhost:domain 0.0.0.0:*
udp 0 0 0.0.0.0:45465 0.0.0.0:*
udp 0 0 0.0.0.0:ipp 0.0.0.0:*
udp 0 0 0.0.0.0:mdns 0.0.0.0:*
udp6 0 0 [::]:56383 [::]:*
udp6 0 0 [::]:mdns [::]:*
raw6 0 0 [::]:ipv6-icmp [::]:* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 40098 @/tmp/.ICE-unix/2304
unix 2 [ ] DGRAM 37416 /run/user/1001/systemd/notify

1、Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

2、Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

列名解释:

  • Proto:显示连接使用的协议。
  • RefCnt:表示连接到本套接口上的进程号。
  • Types:显示套接口的类型。
  • State:显示套接口当前的状态。
  • Path:表示连接到套接口的其它进程使用的路径名。

State表示连接的状态,主要有:

ESTABLISHED:已建立连接的状态

LISTEN :侦听来自远方的TCP端口的连接请求

SYN_SENT:发出主动连接(SYN)的数据包

SYN_RECV :接收到一个要求连接的主动连接数据包

FIN_WAIT1 :该套接字服务已中断,该连接正在断线中

FIN_WAIT2:该连接已挂断,正在等待对方主机响应断线确认的数据包

TIME_WAIT :连接已挂断,但socket还在网络上等待结束

CLOSE_WAIT:等待从本地用户发来的连接中断请求

三次握手:

\'Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp_网络\'

四次挥手:

\'Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp_网络_02\'

ifconfig

作用

显示或配置网络设备

示例

作用

命令

配置mac地址


ifconfig eth0 hw ether 11:22:33:44:55:66;     

//注意:最好配置为电脑的mac。(在电脑mac基础上修改一点点)

//配置mac地址需要在配置ip地址之前进行。


配置ip地址和子网掩码

ifconfig eth0 192.168.0.100 netmask 255.255.255.0;

关闭网络

ifconfig eth0 down;

启动网络

ifconfig eth0 up;

设备配置示例

iptables -F;ifconfig eth0 hw ether 11:22:33:44:55:66;ifconfig eth0 192.168.1.193 netmask 255.255.255.0;route add default gw 192.168.1.254

iptables

作用:控制防火墙

参数

-A/--APPEND 

    指定规则应该添加到的 chain 的名称。

    例:使用 INPUT 将会把规则添加到默认的 INPUT(入站)链的末尾,而使用 OUTPUT 则会将规则添加到出站链的末尾。

    用法:iptables -A chain firewall-rule

 -D/–DELETE

  从 chain 中删除与指定规则匹配,或指定编号的条目。

  用法:

    iptables -D chain firewall-rule          // 从 chain 中删除对应规则 firewall-rule 的那一条目

    iptables -D chain rulenum                // 删除 chain 中编号为 rulenum 的那条规则。1 表示第一条。

-I/–INSERT

    iptables -I chain [rulenum] firewall-rule 

    //  将 firewall-rule 添加为 chain 中的第 rulenum 条规则,原先的第 rulenum 条及以后各条的需要顺次 +1。

-R/–REPLACE

   iptables -R chain [rulenum] firewall-rule

    // 将 chain 中原来的第 rulenum 条规则替换为 firewall-rule。如果没有指定 rulenum,则替换该 chain 中第一条。

-L/–LIST

    iptables -L [chain [rulenum]]

    //列出 chain 或者所有 chain(当未指定 chain 名称时)中的 第 rulenum 条规则或者所有规则(当未指定 rulenum 时)。  

    //要注意,如果未指定 chain 则不能带 rulenum 参数。

    如果在 -L 后再加上 --line-numbers,则表示在每条规则前面显示序号。

-S/–LIST-RULES

    iptables -S [chain [rulenum]]

    //打印出 chain 或者所有 chain(当未指定 chain 名称时)中的 第 rulenum 条规则或者所有规则(当未指定 rulenum 时)。       //注意,如果未指定 chain 则不能带 rulenum 参数。

-F/–FLUSH

    iptables -F [chain]

    //清空 chain 或所有 chain (当未指定 chain 名称时)中的规则。

-Z/–ZERO

    iptables -Z [chain [rulenum]]

    //把 chain 或者所有 chain(当未指定 chain 名称时)的包及字节的计数器清空。

-N/–NEW

    --new -N chain

    //创建一个名称为 chain 的新链。

-X/–DELETE-CHAIN

    iptables -X [chain]

    // 删除用户自定义 chain 或者所有用户自定义 chain(当未指定 chain 名称时)。该指令不影响预设规则(如 INPUT、

    //OUTPUT、FORWARD 等)。

-P/–POLICY

    iptables -P chain target

    // 改变 chain 的策略为 target。

-E/–RENAME-CHAIN

    iptables -E old-chain new-chain

    // 将 old-chain 名称更改为 new-chain。这样做可以使所有引用 old-chain 的规则失效。

arp

简介

本命令在windows下用法相同

作用:显示或修改arp(ip和mac对应关系)

参数

-a [inet_addr] [-N if_addr] [-v]

    显示与当前设备网络相连接的所有设备的ip与mac对应关系。

    若指定inet_addr,只显示其映射。例如:arp -a 192.168.1.100   // 注意:不能显示本机的

-v            

    在详细模式下显示当前 ARP 项。所有无效项和环回接口上的项都将显示。

-d inet_addr [if_addr]

    删除 inet_addr 指定的主机。inet_addr 可以是通配符 *,以删除所有主机。

-s inet_addr eth_addr [if_addr]

    添加主机并且将 Internet 地址 inet_addr与物理地址 eth_addr 相关联。物理地址是用 连字符分隔的 6 个十六进制字节。该项是永久的。

示例

   arp -a

tracepath/traceroute/tracert

tracepath,traceroute:Linux下的命令。tracert:windows下的命令。

tracepath命令和traceroute命令功能类似,但不需要root权限。并且Ubuntu预装了这个命令,traceroute命令没有预装的。tracepath追踪出到指定的目的地址的网络路径,并给出在路径上的每一跳(hop)。如果你的网络有问题或是慢了,tracepath可以查出网络在哪里断了或是慢了。

作用

查看数据包在提交到远程系统或者网站时候所经过的路由器的 IP 地址、跳数和响应时间。必须链接到互联网才能使用。

格式

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]   [-R] [-S srcaddr] [-4] [-6] target_name

选项

    -d                 不要将地址解析为主机名。   

    -h maximum_hops    搜寻目标所用的最大跃点数目。   

    -j host-list       松散的主机列表来源路由 (仅 IPv4)。   

    -w timeout         每个回复的等候逾时 (毫秒)。   

    -R                 追踪来回路径 (仅 IPv6)。   

    -S srcaddr         要使用的来源地址 (仅 IPv6)。   

    -4                 强制使用 IPv4。   

    -6                 强制使用 IPv6。   

  

举例:tracert baidu.com

其他命令

nbtstat

全称:Net-Bios of Tcp/ip statistics

作用:查看计算机名、ip地址、mac地址。提供关于关于NETBIOS的统计数据

参数:

NBTSTAT [ [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [interval] ]

-a (适配器状态)        列出指定名称的远程机器的名称表

-A (适配器状态)        列出指定 IP 地址的远程机器的名称表。// 用-a也可以

-c (缓存)                     列出远程[计算机]名称及其 IP 地址的 NBT 缓存

-n (名称)                     列出本地 NetBIOS 名称。

-r (已解析)                 列出通过广播和经由 WINS 解析的名称

-R (重新加载)            清除和重新加载远程缓存名称表

-S (会话)                    列出具有目标 IP 地址的会话表

-s (会话)                     列出将目标 IP 地址转换成计算机 NETBIOS 名称的会话表。

-RR (释放刷新)         将名称释放包发送到 WINS,然后启动刷新

RemoteName 远程主机计算机名。

IP address 用点分隔的十进制表示的 IP 地址。

interval 重新显示选定的统计、每次显示之间暂停的间隔秒数。

按 Ctrl+C 停止重新显示统计。

示例:

nbtstat -a PC-name

route

作用:查看或设置路由表

参数:

示例:

    route        //查看路由表

    route -n   //快速查看路由表。(不解析名字)

    route add default gw 192.168.0.254;   // 设置默认网关

tftp

uboot下

作用:用tftp协议传输数据

参数:

示例:

事先要做的:

1.开启tftp服务(用tftp32或者mobaxterm的tftp服务)

2.设置环境变量

setenv ipaddr xxx;

setenv serverip yyy;

tftp 0x30000000 uImage;

执行完本条命令后,就会从serverip下载uImage到内存0x30000000处,

然后就可以用bootm 0x30000000来启动了

Linux下:

格式:tftp [option] ... host [port]

选项

  -g    表示下载文件 (get)

  -p    表示上传文件 (put)

  -l     表示本地文件名 (local file)

  -r     表示远程主机的文件名 (remote file)

示例

1.从服务器下载文件

  tftp -gr test.txt 192.168.1.101    或者 tftp -g -r test.txt 192.168.1.101

  把tftp服务端目录下的test.txt文件下载到tftp客户端, 其中的192.168.1.101是服务端ip。

   tftp -g -r test.txt  -l /mytest.txt 192.168.1.101

   把tftp服务端目录下的test.txt文件下载到tftp客户端,保存到根目录下,文件名为mytest.txt

2.把tftp客户端文件上传到tftp服务器

  tftp -pl test.txt 192.168.1.101    

  该命令可以把tftp客户端目录下的test.txt文件上传到tftp服务端, 其中的192.168.1.101是服务端ip。

  可以用此命令从嵌入式设备中取出文件, 放到windows上进行分析

Linux下交互使用方法

connect:       连接到远程tftp服务器

mode:           文件传输模式

put:               上传文件

get:                下载文件

quit:                退出

verbose:        显示详细的处理信息

tarce:            显示包路径

status:           显示当前状态信息

binary:           二进制传输模式

ascii:a           scii传送模式

rexmt:            设置包传输的超时时间

timeout:         设置重传的超时时间

help:              帮助信息

?:                    帮助信息

示例

tftp 193.169.3.42

tftp>connect

tftp>get demon.txt

tftp>status

tftp>quit

其他网址

以上是关于Linux--网络命令/常用命令--ping/netstat/ifconfig/iptables/arp/tracepath/traceroute/tracert/route/nbstat/tftp(的主要内容,如果未能解决你的问题,请参考以下文章

常用linux下网络相关命令

Linux常用网络命令

Linux常用命令(十三)基础网络设置

Linux命令:网络配置常用命令

Linux常用网络命令

Linux常用命令-网络命令