潜心修战潜心修战
首页
Get Started
产品
运维
前端
后端
系统网络
  • foo
  • bar
  • FOO
Gitee
首页
Get Started
产品
运维
前端
后端
系统网络
  • foo
  • bar
  • FOO
Gitee
  • 网络

网络

网络接口

eth0 有线以太网接口

eth0 提供物理网络连接
作用: 主机的 物理有线网卡,用于连接外部网络(如路由器、交换机)。 通常分配 主 IP 地址(如 192.168.1.100),是主机与外界通信的主要通道。

典型场景: 服务器通过 eth0 提供网络服务(如 Web、SSH)。 家用电脑通过 eth0 连接宽带。

lo 本地回环接口

lo 提供本地网络连接, 虚拟网络接口保障本地通信。 IP 固定为 127.0.0.1(IPv4)或 ::1(IPv6) 即使没有物理网络(如拔掉网线),本地服务仍可通过 lo 相互访问

docker0(Docker 默认网桥)

Docker 创建的 虚拟网桥,默认 IP 为 172.17.0.1。 运行 Docker 容器时,容器通过 docker0 获取 IP(如 172.17.0.2)并访问外网。

docker0 和 br-* 是 Docker 为容器创建的虚拟网络,实现:容器间通信(通过网桥)。 容器访问外网(通过 NAT 或主机网络)

停止 Docker 服务后,网桥会自动消失

# 查看所有网络端口
ifconfig
# or
ip addr show    # 或简写为 ip a
# 查看接口信息
ip addr show eth0


# 启动/禁用网卡
sudo ifconfig eth0 up    # 启用网卡
sudo ifconfig eth0 down  # 禁用网卡

# 检查路由表
ip route show

操作调试网络

ping 测试

traceroute

用于显示数据包到主机间的路径。 traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

追踪数据包到达目标主机的路径(每跳路由器 IP),发送 TTL 递增的 ICMP/UDP 包,记录路径响应。 TTL:time to live,生存时间,数据包在路由中经过的跳数,超过最大跳数则丢弃。

curl

curl 是一个命令行工具,用于从 URL 下载文件。 (Client URL)是在 Linux/Unix 系统中传输数据。支持 HTTP、HTTPS、FTP、SFTP 等协议

核心参数:

- -X	指定 HTTP 方法	curl -X POST https://example.com
- -d	发送 POST 数据	curl -d "name=John" https://example.com
- -G	将 -d 数据作为 GET 参数发送	curl -G -d "q=keyword" https://search.com
- -H	添加请求头	curl -H "Content-Type: application/json" https://api.com
- -I	只获取头部信息	curl -I https://example.com
- -L	跟随重定向	curl -L https://short.url
- --limit-rate	限制传输速度	curl --limit-rate 100K https://largefile.com
- -o	将输出保存到文件	curl -o output.html https://example.com
- -O	使用远程文件名保存	curl -O https://example.com/file.zip
- -s	静默模式(不显示进度)	curl -s https://api.com/data.json
- -v	显示详细通信过程	curl -v https://example.com

wget

功能强大的非交互式网络下载工具,名称来源于 "World Wide Web" 和 "get" 的组合。它支持通过 HTTP、HTTPS 和 FTP 协议下载文件,具有断点续传、递归下载等实用特性

常用参数:

* -O <文件名>	指定保存文件名	wget -O myfile.zip https://example.com/file.zip
* -P <目录>	指定下载目录	wget -P ~/downloads https://example.com/file.zip
* -c	断点续传	wget -c https://example.com/bigfile.iso
* -b	后台下载	wget -b https://example.com/largefile.mp4
* -r	递归下载	wget -r https://example.com/directory/
* -l <深度>	设置递归深度	wget -r -l 2 https://example.com/

注意:

  1. -O 和 -P 不能同时使用
  2. 断点续传:断点续传功能下载一个大文件,中断后重新连接继续下载,避免重复下载。
  3. 注意 递归深度一般设置1,wget -r -l 1 URL_ADDRESS.com/path/ 否则会下载所有服务器目录下的所有文件,设置深度1,代表只下载当前path下的所有文件,这很实用。

ss

socket statistics ,查看套接字统计信息的命令,功能类似于 netstat,但速度更快,提供更详细的网络连接状态信息

技巧:

  1. ‌查看所有活跃连接 ss -tunap
  2. ‌只看监听中的端口 ss -lnt
  3. 查看网络状态 ss -s

参数说明:

  • -a, --all:显示所有的套接字,包括监听和非监听的。
  • -t, --tcp:仅显示 TCP 套接字。
  • -u, --udp:仅显示 UDP 套接字。
  • -l, --listening:仅显示监听状态的套接字 端口。
  • -p, --processes:显示与套接字关联的进程信息。
  • -n, --numeric:以数字形式显示地址,而不是解析成主机名。
  • -r, --resolve:将主机名解析为 IP 地址。
  • -s, --summary:显示套接字的摘要信息。
  • -4:仅显示 IPv4 套接字。
  • -6:仅显示 IPv6 套接字。
  • -i, --info:显示详细的内部信息。
  • -o, --options:显示 TCP 计时器信息。
  • -K, --kill:通过 ID 杀死指定的 socket。
  • -f, --family=FAMILY:指定协议族(如 inet, inet6, unix, link)。
  • -m, --memory:显示每个套接字使用的内存。
  • -H, --no-header:不显示标题行。
  • -v, --verbose:显示详细的输出

tcpdump 用于捕获和分析网络数据包

网络抓包分析器

tcpdump -i eth0 port 80 -w http.pcap # 抓取80端口流量存文件

iftop

实时显示网络接口的流量 同理推荐 top htop(top 升级版 可交互top) iotop

dig

DNS 查询,强于 nslookup 安装:apt install bind9-dnsutils

监控扫描网络

  • nc(Netcat)网络测试的瑞士军刀
  • nmap 用于网络扫描和安全审计
nmap -sS 192.168.1.0/24        # SYN扫描(快速发现主机)
nmap -p 22,80,443 10.0.0.1     # 扫描指定端口
nmap -O --osscan-guess 10.0.0.5 # 猜测操作系统
nmap -sV --script=http-title example.com  # 识别服务版本+执行脚本

nc -zv 192.168.1.100 1-100   # 端口扫描(1-100端口)
nc -l 8080 > file.txt         # 监听端口接收数据存文件
echo "GET /" | nc baidu.com 80  # 手动发送HTTP请求
nc -u 8.8.8.8 53             # UDP模式连接DNS服务器

lsof

列出当前系统打开的所有文件及相关进程信息。在 Linux 中,"一切皆文件"的理念意味着 lsof 不仅能显示常规文件,还能显示网络连接、设备文件、管道和套接字等

参数:

- -a	使用 AND 逻辑组合多个条件
- -c <进程名>	显示指定进程打开的文件
- -d <文件描述符>	显示指定文件描述符的文件
- -i	显示网络连接相关信息
- -n	不解析主机名(显示 IP 地址)
- -P	不解析端口名(显示端口号)
- -p <PID>	显示指定进程 ID 打开的文件
- -u <用户名>	显示指定用户打开的文件
- +D <目录>	递归显示目录下被打开的文件
- -t	仅输出进程 ID(适合脚本使用)
lsof -p 1234  # 查看 PID 为 1234 的进程打开的文件
lsof -c nginx # 查看所有 nginx 进程打开的文件
lsof -i      # 查看所有网络连接
lsof -i :80  # 查看所有使用 80 端口的连接
lsof -i TCP  # 查看所有 TCP 连接
lsof | grep deleted  # 找到被删除的文件和进程
lsof -i -P -n # 列出所有端口占用
Edit this page
最近更新:: 2026/6/19 22:21
Contributors: haoyong3