目录
-
-
- [**1. `ifconfig`:查看和配置网络接口**](#1.
ifconfig
:查看和配置网络接口) - [**2. `networksetup`:管理系统网络配置**](#2.
networksetup
:管理系统网络配置) - [**3. `ping`:测试网络连通性**](#3.
ping
:测试网络连通性) - [**4. `traceroute`:跟踪数据包路径**](#4.
traceroute
:跟踪数据包路径) - [**5. `nslookup`/`dig`:DNS 查询**](#5.
nslookup
/dig
:DNS 查询) - [**6. `netstat`:查看网络连接和统计**](#6.
netstat
:查看网络连接和统计) - [**7. `route`:管理路由表**](#7.
route
:管理路由表) - [**8. `scutil`:查看和修改系统配置**](#8.
scutil
:查看和修改系统配置) - [**9. `ssh`:远程登录**](#9.
ssh
:远程登录) - [**10. `airport`:无线网络诊断**](#10.
airport
:无线网络诊断) - [**11. 常见使用场景及命令组合**](#11. 常见使用场景及命令组合)
- [**1. `ifconfig`:查看和配置网络接口**](#1.
-
1. ifconfig
:查看和配置网络接口
-
功能:查看或配置网络接口参数(如 IP 地址、子网掩码、MAC 地址等)。
-
常用选项:
-a
:显示所有接口(包括未激活的)。up
/down
:启用或禁用接口。inet [IP]
:设置 IPv4 地址。
-
示例
bash#临时修改 IP 地址或禁用网卡 ifconfig en0 # 查看 en0 接口信息 sudo ifconfig en0 down # 禁用 en0 接口 sudo ifconfig en0 192.168.1.100 netmask 255.255.255.0 # 手动设置 IP 和子网掩码
2. networksetup
:管理系统网络配置
-
功能:管理网络服务(Wi-Fi、以太网等)、代理、DNS、位置配置。
-
常用子命令:
-listallnetworkservices
:列出所有网络服务。-setairportpower <service> on/off
:启用/禁用 Wi-Fi。-setdnsservers <service> <DNS1> <DNS2>
:设置 DNS。-setwebproxy <service> <host> <port>
:设置 HTTP 代理。
-
示例:
bash#networksetup 命令在 macOS 中修改的是系统的永久配置 networksetup -listallnetworkservices # 列出所有网络服务 sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 # 设置 Wi-Fi 的 DNS 为 8.8.8.8 sudo networksetup -setairportpower en0 off # 关闭 Wi-Fi
3. ping
:测试网络连通性
- 功能:检测与目标主机的连通性。
通用选项
选项 | 功能描述 |
---|---|
-c count |
指定发送次数后停止(例如 -c 5 发送 5 次) |
-i wait |
设置发送间隔时间(单位:秒,默认 1 秒) |
-s packetsize |
设置数据包大小(单位:字节,默认 56) |
-t timeout |
设置等待响应超时时间(单位:秒) |
-v |
显示详细输出 |
-n |
不解析域名(直接显示 IP 地址) |
-o |
收到第一个响应包后立即停止 |
-Q |
静默模式(仅显示摘要) |
高级选项
选项 | 功能描述 |
---|---|
-p pattern |
设置数据包填充模式(十六进制格式,如 -p abcd ) |
-m ttl |
设置 TTL(Time To Live)值 |
-I iface |
指定网络接口(例如 -I en0 ) |
-G sweepmaxsize |
设置最大数据包大小(用于 MTU 探测) |
Apple 特有选项
选项 | 功能描述 |
---|---|
-b boundif |
绑定到指定网络接口(如 -b en0 ) |
-k traffic_class |
设置流量类别(用于 QoS) |
-K net_service_type |
设置网络服务类型(如 -K VoIP ) |
--apple-connect |
在套接字中调用 connect() |
--apple-time |
显示当前时间戳 |
bash
#示列
ping google.com # 持续 ping
ping -c 4 8.8.8.8 # 发送 4 次后停止
4. traceroute
:跟踪数据包路径
bash
feng / % traceroute --help
Version 1.4a12+Darwin
Usage: traceroute [-adDeFInrSvx] [-A as_server] [-f first_ttl] [-g gateway] [-i iface]
[-M first_ttl] [-m max_ttl] [-p port] [-P proto] [-q nqueries] [-s src_addr]
[-t tos] [-w waittime] [-z pausemsecs] host [packetlen]
选项 | 功能描述 |
---|---|
-a |
显示 AS (自治系统) 编号信息 |
-d |
启用调试模式(显示更多详细信息) |
-F |
设置不分片标志(Don't Fragment) |
-I |
使用 ICMP ECHO 请求代替 UDP 数据包 |
-n |
不解析 IP 地址到域名(直接显示 IP) |
-r |
绕过正常路由表(直接发送到主机) |
-v |
显示详细输出 |
-x |
启用 IP 校验和验证 |
-A as_server |
指定 AS 查询服务器(默认:whois.radb.net) |
-f first_ttl |
设置起始 TTL(Time To Live)值(默认:1) |
-m max_ttl |
设置最大 TTL 值(默认:30) |
-p port |
设置目标端口(默认:33434) |
-q nqueries |
设置每跳的探测次数(默认:3) |
-w waittime |
设置等待响应时间(单位:秒,默认:5) |
bash
#示列
traceroute google.com
traceroute -n 8.8.8.8
5. nslookup
/dig
:DNS 查询
-
功能:查询 DNS 记录。
-
dig
示例:bashdig google.com # 查询 A 记录 dig mx google.com # 查询 MX 记录
-
nslookup
示例:bashnslookup google.com
bash#===================== # dig 常见使用场景(10个) #===================== 1. 查询A记录(默认) dig example.com 2. 指定DNS服务器查询 dig @8.8.8.8 example.com 3. 查询MX记录 dig example.com MX 4. 反向DNS查询 dig -x 8.8.8.8 5. 显示简短结果 dig +short example.com 6. 跟踪完整DNS解析过程 dig +trace example.com 7. 查询TXT记录(常用于SPF/DKIM验证) dig example.com TXT 8. 查询NS记录 dig example.com NS 9. 显示TTL信息 dig example.com +nocmd +noall +answer +ttlid 10. 批量查询多个域名 dig -f domains.txt +short #===================== # nslookup 常见场景(10个) #===================== 1. 基础A记录查询 nslookup example.com 2. 指定DNS服务器查询 nslookup example.com 8.8.8.8 3. 查询MX记录 nslookup -type=MX example.com 4. 反向DNS查询 nslookup 8.8.8.8 5. 查询TXT记录 nslookup -type=TXT example.com 6. 查询SOA记录 nslookup -type=SOA example.com 7. 查询AAAA记录(IPv6) nslookup -type=AAAA example.com 8. 显示详细调试信息 nslookup -debug example.com 9. 指定查询端口(非标准DNS端口) nslookup -port=5353 example.com 10. 交互模式批量查询 nslookup > server 8.8.8.8 > set type=MX > example.com > exit
6. netstat
:查看网络连接和统计
-
功能:显示网络连接、路由表、接口统计等。
-
常用选项:
-an
:显示所有连接(不解析域名)。-r
:显示路由表。-p tcp
:显示 TCP 连接。
-
示例:
bashnetstat -an | grep 80 # 查看 80 端口的连接 netstat -r # 显示路由表
-
场景:
- 检查端口占用或异常连接。
- 查看路由表配置。
7. route
:管理路由表
-
功能:查看或修改路由表。
-
常用命令:
add
/delete
:添加或删除路由。
-
示例:
bashroute -n get default # 查看默认网关 sudo route add -net 10.0.0.0/24 192.168.1.1 # 添加静态路由
-
场景:
- 配置 VPN 或访问内部网络时的静态路由。
8. scutil
:查看和修改系统配置
-
功能:管理系统网络参数(如主机名、DNS 配置)。
-
示例:
bashscutil --dns # 查看当前 DNS 配置 scutil --get HostName # 获取主机名 sudo scutil --set HostName MyMac # 设置主机名
-
场景:
- 动态修改主机名或查看 DNS 状态。
9. ssh
:远程登录
-
功能:通过 SSH 连接到远程服务器。
-
常用选项:
-p <port>
:指定端口。-i <key>
:使用密钥认证。
-
示例:
bashssh user@example.com ssh -p 2222 user@example.com
-
场景:
- 远程管理服务器或传输文件。
10. airport
:无线网络诊断
-
功能:管理 Wi-Fi 扫描和诊断(需手动链接工具)。
-
启用命令:
bashsudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
-
示例:
bashairport -s # 扫描附近 Wi-Fi airport -I # 查看当前 Wi-Fi 信息
-
场景:
- 分析 Wi-Fi 信号强度或信道干扰。
11. 常见使用场景及命令组合
-
无法连接互联网:
bashping 8.8.8.8 # 检查是否可达公网 dig google.com # 检查 DNS 解析 networksetup -setdnsservers Wi-Fi 8.8.8.8 # 重置 DNS
-
配置静态 IP:
bashsudo ifconfig en0 192.168.1.100 netmask 255.255.255.0 sudo route add default 192.168.1.1
-
查看端口占用:
bashnetstat -an | grep 8080 lsof -i :8080
-
诊断 Wi-Fi 问题:
bashairport -s # 扫描可用网络 networksetup -setairportpower en0 off # 重启 Wi-Fi