macOS常用网络管理配置命令

目录

      • [**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:查看和配置网络接口

  • 功能:查看或配置网络接口参数(如 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 示例

    bash 复制代码
    dig google.com          # 查询 A 记录
    dig mx google.com       # 查询 MX 记录
  • nslookup 示例

    bash 复制代码
    nslookup 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 连接。
  • 示例

    bash 复制代码
    netstat -an | grep 80   # 查看 80 端口的连接
    netstat -r              # 显示路由表
  • 场景

    • 检查端口占用或异常连接。
    • 查看路由表配置。

7. route:管理路由表

  • 功能:查看或修改路由表。

  • 常用命令

    • add/delete:添加或删除路由。
  • 示例

    bash 复制代码
    route -n get default    # 查看默认网关
    sudo route add -net 10.0.0.0/24 192.168.1.1  # 添加静态路由
  • 场景

    • 配置 VPN 或访问内部网络时的静态路由。

8. scutil:查看和修改系统配置

  • 功能:管理系统网络参数(如主机名、DNS 配置)。

  • 示例

    bash 复制代码
    scutil --dns            # 查看当前 DNS 配置
    scutil --get HostName   # 获取主机名
    sudo scutil --set HostName MyMac  # 设置主机名
  • 场景

    • 动态修改主机名或查看 DNS 状态。

9. ssh:远程登录

  • 功能:通过 SSH 连接到远程服务器。

  • 常用选项

    • -p <port>:指定端口。
    • -i <key>:使用密钥认证。
  • 示例

    bash 复制代码
    ssh user@example.com
    ssh -p 2222 user@example.com
  • 场景

    • 远程管理服务器或传输文件。

10. airport:无线网络诊断

  • 功能:管理 Wi-Fi 扫描和诊断(需手动链接工具)。

  • 启用命令

    bash 复制代码
    sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/local/bin/airport
  • 示例

    bash 复制代码
    airport -s       # 扫描附近 Wi-Fi
    airport -I       # 查看当前 Wi-Fi 信息
  • 场景

    • 分析 Wi-Fi 信号强度或信道干扰。

11. 常见使用场景及命令组合

  1. 无法连接互联网

    bash 复制代码
    ping 8.8.8.8           # 检查是否可达公网
    dig google.com         # 检查 DNS 解析
    networksetup -setdnsservers Wi-Fi 8.8.8.8  # 重置 DNS
  2. 配置静态 IP

    bash 复制代码
    sudo ifconfig en0 192.168.1.100 netmask 255.255.255.0
    sudo route add default 192.168.1.1
  3. 查看端口占用

    bash 复制代码
    netstat -an | grep 8080
    lsof -i :8080
  4. 诊断 Wi-Fi 问题

    bash 复制代码
    airport -s              # 扫描可用网络
    networksetup -setairportpower en0 off  # 重启 Wi-Fi
相关推荐
rockage12 小时前
【技巧】MacOS下使用LaunchDaemons实现开机自启动
macos
青花锁13 小时前
Mac电脑安装Docker
macos·docker·容器
李玮豪Jimmy2 天前
MacOS 上安装 JDK 并实现多版本灵活切换
macos
mixboot2 天前
VoxCPM 1.5.0 macOS
macos·voxcpm
甜可儿2 天前
mac环境安装不同版本maven
java·macos·maven
bl4ckpe4ch2 天前
从零开始Mac OS 开荒整理笔记
笔记·macos·开荒
张飞签名上架2 天前
深耕全球市场:App上架iOS与Google Play全流程指南
macos·ios·cocoa·ios上架·上架·谷歌上架
DisonTangor3 天前
Mac Studio配备1.5 TB显存——基于雷电5的远程直接内存访问技术
人工智能·macos·开源·aigc
天庭鸡腿哥3 天前
输入序列号,可激活正版软件!
microsoft·macos·visual studio·everything
FreeBuf_3 天前
朝鲜黑客组织“传染性面试“瞄准macOS:新型“DriverFixer“窃密工具浮出水面
macos·面试·职场和发展