Linux网络相关命令(curl, dig, ping, traceroute, mtr, netstat, ip, iptables, tc, iperf, nc, ufw)

curl

  • -L 跟随重定向,自动跳转
  • -s 静默模式
    • 一旦发生错误,不会显示错误信息
  • -S 如果出错, 则显示错误信息
    • 一般与-s一起使用
curl -sSL <url>
  • -v 输出通信过程

    • 包括具体链接的IP和端口,HTTPS协议的握手过程
  • -I 只显示首部信息

    • 发送HEAD请求
  • -i 显示首部和body

  • -o 保存数据到文件中

    • 相当于wget命令
      • 对应的, wget -O- <url> 相当于curl命令
curl -o <path/to/file> <url>
  • -O 按照源文件名自动保存

  • -u 提供用户名和密码

curl -u <name:password> <url>
  • -H 提供首部信息
    • 例如设置请求设备user-agent参数
      • 因为返回内容可能根据设备不同而不同
curl 'https://ifconfig.me/' -H \
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
  • -x 使用代理
curl -x <proxy_addr:port> <url>
  • curl默认为GET方法,使用-X支持其他方法
  • -d 提供POST数据body
  • -F "upload=@"上传文件
curl -X POST http://github.com
curl -X DELETE http://github.com

# 注意-d后的json信息用单引号而不是反引号
curl -X POST localhost:8000/search -H "Content-Type:application/json" -d '{"key":123, "val":456}'

# @用文件代替命令行输入(-d等价--data)
curl -X POST localhost:8000/search -H "Content-Type:application/json" --data @filename.json

# -F "upload=@"上传文件
curl -X POST http://localhost:8000/upload -F "upload=@/Users/ghost/Desktop/pic.jpg" -H "Content-Type: multipart/form-data"
# 上传多个文件
curl -X POST http://localhost:8000/multi/upload -F "upload=@/Users/ghost/Desktop/pic.jpg" -F "upload=@/Users/ghost/Desktop/journey.png" -H "Content-Type: multipart/form-data"

  • --limit-rate <200k>用来限制 HTTP 请求和回应的带宽,模拟慢网速的环境
  • --trace-time 显示curl过程每一步的时间戳,用于查看时间耗在哪步
  • --cert <cert_file> --key <key_file> 用来进行mTLS认证
  • -k 跳过检查服务器的 SSL 证书是否正确
    • 一般用于服务端证书为自签名时
      在这里插入图片描述
  • --resolve host:port:address 在HTTPS协议下指定访问的IP

dig

  • dig <域名>查询DNS包括CNAME记录,A记录等相关信息的工具

  • dig @<dns ip> <域名>指定DNS查询

    • 例如指定谷歌的8.8.8.8DNS服务器
    • 如果不指定 DNS 服务器,dig 会依次使用 /etc/resolv.conf 里的地址作为 DNS 服务器
  • dig +short <域名> 只显示CNAME和IP

  • dig +trace <域名>显示递归查询的详细过程

  • dig <域名> [A\CNAME\NS\AAAA]指定要查询的信息
    在这里插入图片描述

  • dig命令默认的输出信息可以分为 5 个部分

    • 显示 dig 命令的版本和输入的参数
    • 显示服务返回的一些技术详情
      • 如果 status 的值为 NOERROR 则说明本次查询成功结束
    • QUESTION SECTION 显示我们要查询的域名和字段
      • 默认请求A字段
    • ANSWER SECTION是查询到的结果
      • 第一列为域名
      • 第二列为TTL
        • 缓存时间,单位秒
      • 第三列为要查询信息的类别
        • IN代表类别为IP协议,即Internet
        • 由于现在都是互联网,所以其它基本不用
      • 第四列为要查询的记录类型
      • 第五列为域名对应的结果
        • IP或另一个域名
    • 本次查询的一些统计信息
      • 比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等

ping

  • 用来探测本机与网络中另一主机之间是否可达的命令, 是定位网络通不通的一个重要手段
    • 如果两台主机之间ping不通,则表明这两台主机不能建立起连接
  • 还可以检测往返耗时(延迟),往返时间反映连接质量
    在这里插入图片描述
  • ping -6 www.google.com可以使用IPv6来ping
  • ping -s 1000 www.google.com 指定发送的数据包大小为1000Byte
    • 最大能发送65507byte大小的包,避免DDoS攻击
  • 利用了ICMP协议
    • 基于IP协议实现,不基于TCP或UDP
    • 能ping通不一定tcp或udp通

在这里插入图片描述

traceroute

  • 可以定位从源主机到目标主机之间经过了哪些路由器,以及到达各个路由器的耗时

  • 一般直接使用命令行测试

    • 出现星号(*)一般是防火墙封掉了 ICMP 的返回信息
      • 避免DDoS攻击,或者不想暴露IP地址
    • -n 避免网关IP的DNS解析
    • -q<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值