linux命令详解,网络连接相关

时间:2024-11-13 07:39:43

网络连接

一、网络连接状态查看工具

netstat
netstat [选项]

选项

  • -a:显示所有连接和监听端口。
  • -n:显示数字形式的地址和端口号,而不是尝试解析成主机名或服务名。
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -p:显示每个连接的进程 ID (PID) 和程序名称。
  • -r:显示路由表。
  • -i:显示网络接口统计信息。
  • -s:显示每个协议的统计信息。
  • -l:显示监听的端口。
  • -e:显示扩展信息。
  • -c:连续显示网络连接信息,每秒刷新一次。
netstat -natup
  • -n:显示数字形式的地址和端口号,而不是尝试解析成主机名或服务名。
  • -a:显示所有连接和监听端口,包括 TCP 和 UDP。
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -p:显示每个连接的进程 ID (PID) 和程序名称。
    image.png
    输出字段解释
  • Proto:协议类型(TCP 或 UDP)。
  • Recv-Q:接收队列中的数据包数量。
  • Send-Q:发送队列中的数据包数量。
  • Local Address:本地地址和端口号。
  • Foreign Address:远程地址和端口号。
  • State:连接状态(仅适用于 TCP 连接)。
  • PID/Program name:进程 ID 和程序名称。由于权限不足,这里显示为 -
ss

ss(Socket Statistics)是一个用于显示套接字统计信息的命令行工具,它比传统的 netstat 更高效,提供了更丰富的网络连接信息。ssiproute2 包的一部分,在大多数现代 Linux 发行版中都预装了这个工具。

ss [选项] [地址:端口]

常用选项

  • -a:显示所有连接,包括监听和非监听的。
  • -t:显示 TCP 连接。
  • -u:显示 UDP 连接。
  • -n:显示数字形式的地址和端口号,而不是尝试解析成主机名或服务名。
  • -p:显示每个连接的进程 ID (PID) 和程序名称。
  • -l:显示监听的端口。
  • -i:显示网络接口统计信息。
  • -s:显示每个协议的统计信息。
  • -e:显示扩展信息。
  • -r:显示路由信息。
  • -m:显示内存使用情况。
  • -o:显示定时器信息。
  • -z:显示零计数的连接。
  • -A:指定要显示的地址族,可以是 allinetunixpacketnetlink 等。
  • -4:只显示 IPv4 连接。
  • -6:只显示 IPv6 连接。
  • -f:指定地址族,如 inet(IPv4 和 IPv6),unixpacket 等。
sudo ss -natup

image.png
解释

  1. UDP 连接
    • Local Address:Port192.168.80.136%eth0:68 — 本地 IP 地址 192.168.80.136,端口 68,通过 eth0 网络接口。
    • Peer Address:Port192.168.80.254:67 — 远程 IP 地址 192.168.80.254,端口 67。这通常是 DHCP 服务器的地址和端口。
    • ProcessNetworkManager 进程(PID 680)正在使用这个连接,文件描述符为 27。
  2. TCP 连接
    • Local Address:Port127.0.0.1:36065 — 本地回环地址 127.0.0.1,端口 36065
    • Peer Address:Port0.0.0.0:* — 没有远程地址和端口,表示这是一个监听端口,可以接受来自任何地址的连接。
    • Processcontainerd 进程(PID 992)正在使用这个连接,文件描述符为 9。

二、二层地址查看工具

arp
arp [选项] [主机名或IP地址]

常用选项

  • -a:显示所有接口的 ARP 缓存条目。
  • -n:以数字形式显示地址,不进行域名解析。
  • -d:删除指定的 ARP 缓存条目。
  • -s:添加静态 ARP 缓存条目。
  • -i:指定网络接口。
  • -v:显示详细信息。
  • -e:以易于阅读的格式显示 ARP 缓存条目。
sudo arp -en

选项 -e 表示以更易于阅读的格式显示 ARP 缓存中的条目,而 -n 则表示以数字形式显示地址,而不是尝试解析主机名。
image.png

  • Address: 192.168.80.2
    • 这是设备的 IP 地址。
  • HWtype: ether
    • 这表示硬件类型为以太网(Ethernet)。
  • HWaddress: 00:50:56:ff:b0:85
    • 这是设备的 MAC 地址。
  • Flags: C
    • 这个标志表示该 ARP 条目是动态创建的(Committed)。这意味着该条目是由系统自动添加的,并且会在一段时间后自动老化并删除。
  • Mask: (空)
    • 子网掩码,通常为空。
  • Iface: eth0
    • 这表示该 ARP 条目是通过 eth0 接口获取的。eth0 通常是系统中的第一个以太网接口。

三、路由信息相关工具

route

route 命令用于显示和操作 IP 路由表。路由表决定了数据包如何从一个网络传输到另一个网络。通过 route 命令,可以查看当前的路由表、添加新的路由条目、删除现有的路由条目等。

route [选项] [命令] [目标] [网关] [接口]

常用选项

  • -n:以数字形式显示地址,不进行域名解析。
  • -v:显示详细信息。
  • -A 或 -4:使用 IPv4 地址族。
  • -6:使用 IPv6 地址族。
    常用命令
  • add:添加新的路由条目。
  • del 或 delete:删除现有的路由条目。
  • change:更改现有的路由条目。
  • replace:替换现有的路由条目。
    实例
    显示当前的路由表
route -n

查看详细的路由信息

route -v

image.png

  • Destination:目标网络或主机的地址。
  • Gateway:到达目标网络或主机的下一跳网关地址。
  • Genmask:子网掩码。
  • Flags
    • U:路由是活动的(Up)。
    • G:目标是网关。
    • H:目标是主机。
    • D:路由是动态添加的。
    • M:路由是修改过的。
  • Metric:路由的度量值,用于选择最佳路径。
  • Ref:路由引用计数。
  • Use:路由使用计数。
  • Iface:使用的网络接口。
    添加新的路由条目
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth0
  • -net:指定目标是一个网络。
  • 192.168.2.0:目标网络的地址。
  • netmask 255.255.255.0:子网掩码。
  • gw 192.168.1.254:网关地址。
  • dev eth0:指定使用的网络接口。

删除现有的路由条目

route del -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth0

添加默认路由

route add default gw 192.168.1.1 dev eth0
  • default:表示默认路由。
  • gw 192.168.1.1:网关地址。
  • dev eth0:指定使用的网络接口。
ip route
  • 显示当前的 IP 路由表
    ip route 、ip route show、ip r之间的关系
    ip route showip route 的完整形式,明确指定了显示路由表的操作。虽然 ip routeip route show 在大多数情况下是等价的,但 ip route show 更加明确,更容易理解。ip r是简写
ip route show
ip route
可以简写为
ip r

image.png

sudo ip route add/del

添加

sudo ip route add 10.13.37.0/24 dev eth0
  • sudo:以超级用户权限执行命令。添加或删除路由条目通常需要超级用户权限。
  • ip:调用 ip 命令,这是一个多功能的网络配置工具。
  • route add:指定要添加一个新路由条目。
  • 10.13.37.0/24:目标网络的地址和子网掩码。10.13.37.0/24 表示目标网络是 10.13.37.0,子网掩码是 255.255.255.0
  • dev eth1:指定使用的网络接口。eth0 是目标网络 10.13.37.0/24 所在的网络接口。
    image.png
    可以已经加了到eth0中了
    删除
sudo ip route del  10.13.37.0/24 dev eth0

image.png

四、路由跟踪工具

traceroute:是一个用于跟踪数据包从本地主机到目标主机所经过的路由路径的工具。

traceroute [选项] 目标主机

常用选项

  • -I:使用 ICMP 协议(默认使用 UDP)。
  • -T:使用 TCP 协议。
  • -m:设置最大跳数(默认为 30)。
  • -w:设置超时时间(默认为 5 秒)。
  • -q:设置每次探测的次数(默认为 3 次)。
  • -f:设置第一个探测的 TTL 值(默认为 1)。
  • -p:设置 UDP 或 TCP 探测的端口号。
  • -n:以数字形式显示地址,不进行域名解析。
  • -g:指定中间网关(用于源路由)。
  • -z:设置两次探测之间的等待时间(以秒为单位)。
traceroute wwwww.offsec.com
traceroute -I www.offsec.com

image.png