ipconfig, ifconfig, ip

ipconfig是windows中的命令,linux上是ifconfig,但ip命令比ifconfig更强大,旨在取代ifconfig命令。

ping

ping命令是DOS命令,一般用于检测网络是否通畅以及网络连接速度,结果只越大,说明速度越慢。它使用网络层的ICMP协议。

ping [参数选项] [主机名或IP地址]

linux

参数含义
-c设置完成要求回应的次数
-i指定收发信息的间隔时间
-s设置数据包的大小
-w在设定的秒后退出

windows

参数含义
-t连续对IP地址执行ping命令,直到用户以<control+c>键强制中断
-l指定ping命令的数据长度
-n执行特定次数的ping命令

netstat

netstat 用来查看当前操作系统的网络连接状态、路由表、接口统计等信息,来自于 net-tools 工具包,ss 是 netstat 的升级版。

参数含义
-a显示主机中所有活动的网络连接信息 (包括监听、非监听状态的服务端口)
-n以数字的形式显示相关的主机地址、端口等信息
-p显示与网络连接相关联的进程号、进程名称信息 (该选项需要 root 权限)
-l显示处于监听 (Listen) 状态的网络连接及端口信息
-t查看 TCP (Transmission Control Protocol,传输控制协议) 相关的信息
-u显示 UDP (User Datagram Protocol,用户数据报协议) 协议相关的信息
-r显示路由表信息
-i显示网卡列表
-g显示组播组的关系
-s显示网络统计信息

常用命令选项:

netstat [-anpt] [-anpu] [-anptu] [-anpltu] [-ntlp]

ss

ss 命令来自于 iproute 包,是 netstat 的升级版本。netstat 通过遍历 /proc 来获取 socket 信息,ss 使用 netlink 与内核 tcp_diag 模块通信获取 socket 信息。 格式:

ss [OPTION]... [FILTER]
参数含义
-a显示主机中所有活动的网络连接信息 (包括监听、非监听状态的服务端口)
-n以数字的形式显示相关的主机地址、端口等信息
-p显示与网络连接相关联的进程号、进程名称信息 (该选项需要 root 权限)
-l显示处于监听 (Listen) 状态的网络连接及端口信息
-t查看 TCP (Transmission Control Protocol,传输控制协议) 相关的信息
-u显示 UDP (User Datagram Protocol,用户数据报协议) 协议相关的信息
-xunix sock 相关
-w裸套接字相关
-e扩展的信息
-m内存用量
-o计时器信息
#显示本地打开的所有端口
ss -l
#列出当前 socket 详细信息
ss -s
#显示每个进程具体打开的 socket
ss -pl
#显示所有 tcp socket
ss -at
#显示所有的 udp socket
ss -au
#显示所有已建立的 ssh 连接
ss -o state established '( dport = :ssh or sport = :ssh )'
#显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'

traceroute

traceroute 命令可以用于测试从当前主机到目的主机之间经过了哪些网络结点,并显示各个中间结点的连接状态(响应时间)。对于无法响应的结点,连接状态将显示为 “*”,预设数据包大小是 40Bytes,用户可另行设置。如果没有 traceroute 命令可执行 yum -y install traceroute 安装。

格式:

traceroute [参数] [主机|IP]

参数:

参数含义
-d使用 Socket 层级的排错功能
-f设置第一个检测数据包的存活数值 TTL 的大小
-F设置勿离断位
-g设置来源路由网关,最多可设置 8 个
-i使用指定的网络界面送出数据包
-lI 使用 ICMP 回应取代 UDP 资料信息
-m设置检测数据包的最大存活数值 TTL 的大小
-n直接使用 IP 地址而非主机名称
-p设置 UDP 传输协议的通信端口
-r忽略普通的 Routing Table,直接将数据包送到远端主机上
-s设置本地主机送出数据包的 IP 地址
-t设置检测数据包的 TOS 数值
-v详细显示指令的执行过程
-w设置等待远端主机回报的时间
-x开启或关闭数据包的正确性检验
[root@c7-1 ~]#traceroute 20.0.0.25
traceroute to 20.0.0.25 (20.0.0.25), 30 hops max, 60 byte packets
 1  20.0.0.25 (20.0.0.25)  0.942 ms  0.782 ms  0.647 ms
#可以看到这两台机器之间没有经过路由,是直连或连着交换机的状态

[root@c7-1 ~]#traceroute www.baidu.com
traceroute to www.baidu.com (112.80.248.75), 30 hops max, 60 byte packets
 1  gateway (20.0.0.2)  5.900 ms  5.817 ms  5.758 ms
 2  * * *
 3  * * *
 4  * * *
......

nslookup

nslookup是一个用于查询域名系统(DNS)以获取有关域名、IP地址和其他DNS记录信息的网络管理命令行工具。

nslookup 域名

示例:

[root@c7-1 ~]#nslookup www.baidu.com
Server:		20.0.0.2
Address:	20.0.0.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 112.80.248.75
Name:	www.a.shifen.com
Address: 112.80.248.76

[root@c7-1 ~]#nslookup www.google.com
Server:		20.0.0.2
Address:	20.0.0.2#53

Non-authoritative answer:
Name:	www.google.com
Address: 104.244.46.208
Name:	www.google.com
Address: 2001::1f0d:5211

[root@c7-1 ~]#cat /etc/resolv.conf	#域名解析配置文件

# Generated by NetworkManager

# 一行一个 DNS,最多配置三个 DNS,优先使用第一个 DNS 服务器

nameserver 20.0.0.2

[root@c7-1 ~]#cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
112.80.248.75 www.baidu.com
#/etc/hosts 文件中记录着一份主机名与 IP 地址的映射关系表,一般用来保存经常需要访问的主机的信息。当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向 DNS 服务器查询。

ARP

ARP(Address Resolution Protocol,地址解析协议)缓冲区是在计算机或网络设备上维护的一个表格,用于存储 IP 地址与MAC 地址之间的映射关系。ARP 协议用于将目标主机的 IP 地址解析成其对应的 MAC 地址,从而实现数据在网络上的正确传输。

在一个局域网中,当计算机 A 需要与计算机 B 进行通信时,A 需要知道 B 的 MAC 地址才能正确发送数据包。这时,A 发送一个 ARP 请求广播,询问网络中是否有拥有特定 IP 地址的设备,并且请求对应设备的 MAC 地址。设备 B 收到请求后,会回复一个 ARP 响应,包含其自己的 MAC 地址。一旦 A 收到了 B 的 MAC 地址,它就可以将数据包正确地发送给 B。

ARP 缓冲区(或称为 ARP 表格、ARP 缓存)在这个过程中起到了重要作用。当设备 A 解析了设备 B 的 IP 地址并获取到 B 的 MAC 地址后,它将这个映射关系存储在 ARP 缓冲区中。这样,以后 A 需要与 B 通信时,就无需再次发送 ARP 请求,而是直接从 ARP 缓冲区中获取 B 的 MAC 地址,从而加速通信过程。

arp 命令用于操作主机的 arp 缓冲区,可以用来显示 arp 缓冲区中的所有条目、删除指定的条目或者添加静态的 ip 地址与 MAC 地址对应关系。

格式:

arp [-vn]  [<HW>] [-i <if>] [-a] [<hostname>]             <-Display ARP cache
arp [-v]          [-i <if>] -d  <host> [pub]               <-Delete ARP entry
arp [-vnD] [<HW>] [-i <if>] -f  [<filename>]            <-Add entry from file
arp [-v]   [<HW>] [-i <if>] -s  <host> <hwaddr> [temp]            <-Add entry
arp [-v]   [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub          <-''-

参数:

-a<主机>: 显示 arp 缓冲区的所有条目 -H<地址类型>: 指定 arp 指令使用的地址类型 -d<主机>: 从 arp 缓冲区中删除指定主机的 arp 条目 -D: 使用指定接口的硬件地址 -e: 以 Linux 的显示风格显示 arp 缓冲区中的条目 -i<接口>: 指定要操作 arp 缓冲区的网络接口 -s<主机><MAC地址>:设置指定的主机的 IP 地址与 MAC 地址的静态映射 -n: 以数字方式显示 arp 缓冲区中的条目 -v: 显示详细的 arp 缓冲区条目,包括缓冲区条目的统计信息 -f<文件>: 设置主机的 IP 地址与 MAC 地址的静态映射

示例:

#显示 ARP 表
arp -n	或	ip neigh
#ARP 静态绑定 MAC 地址可以防止 ARP 欺骗
arp -s 10.0.0.6 00:0c:29:32:80:38
#删除 arp 缓存条目
arp -d 10.0.0.6
#指定回复的 MAC 地址
arp -i eth0 -Ds 10.0.0.2 eth1 pub

FTP

FTP(File Transfer Protocol)是一种用于在网络上传输文件的标准协议。你可以使用命令行界面或者专门的 FTP 客户端来测试和使用 FTP 命令。下面是一些基本的 FTP 命令以及如何进行测试:

  1. 连接到 FTP 服务器: 使用以下命令连接到 FTP 服务器,其中 <server_address> 是服务器的地址(域名或 IP 地址):

    ftp <server_address>
    

    输入该命令后,你将会被要求输入用户名和密码来进行身份验证。

  2. 浏览远程目录: 连接成功后,你可以使用 ls 命令列出远程服务器上的文件和目录。

  3. 切换远程目录: 使用 cd 命令来切换远程服务器上的目录:

    cd <directory_name>
    
  4. 下载文件: 使用 get 命令来下载远程服务器上的文件到本地:

    get <remote_file_name>
    
  5. 上传文件: 使用 put 命令来上传本地文件到远程服务器:

    put <local_file_name>
    
  6. 退出 FTP 会话: 使用 quitbye 命令来退出 FTP 会话:

    quit
    

请注意,上述命令只是 FTP 命令的一小部分,而实际的 FTP 客户端可能提供更多功能和选项。如果你在终端或命令提示符中直接使用上述命令,确保你已经连接到一个可用的 FTP 服务器,并且你已经登录并有足够的权限进行操作。