网络配置与诊断 操作与命令
专用工具与其他操作
curl · 从服务器接收数据或者向服务器发送数据
支持包括 HTTP、HTTPS、FTP 和 SCP 在内的大多数协议。 另请参阅:
wcurl,wget。 更多信息:https://curl.se/docs/manpage.html。
- 发起 HTTP GET 请求,将响应内容输出到
stdout:
bash
curl {{https://example.com}}- 发起 HTTP GET 请求,自动跟随所有
3xx重定向,将响应头和内容输出到stdout:
bash
curl {{[-L|--location]}} {{[-D|--dump-header]}} - {{https://example.com}}- 按照 URL 指定的文件名保存下载内容:
bash
curl {{[-O|--remote-name]}} {{https://example.com/filename.zip}}- 以表单编码格式发送数据(
application/x-www-form-urlencoded类型的 POST 请求)。如需从stdin读取数据,可使用--data @file_name或--data @'-':
bash
curl {{[-X|--request]}} POST {{[-d|--data]}} '{{name=bob}}' {{http://example.com/form}}- 通过代理(如 BurpSuite)使用自定义 HTTP 方法发送带有额外请求头的请求,同时忽略不安全的自签名证书:
bash
curl {{[-k|--insecure]}} {{[-x|--proxy]}} {{http://127.0.0.1:8080}} {{[-H|--header]}} '{{Authorization: Bearer token}}' {{[-X|--request]}} {{GET|PUT|POST|DELETE|PATCH|...}} {{https://example.com}}- 设置正确的
Content-Type请求头,以 JSON 格式发送数据:
bash
curl {{[-d|--data]}} '{{{"name":"bob"}}}' {{[-H|--header]}} '{{Content-Type: application/json}}' {{http://example.com/users/1234}}- 跳过证书验证,使用客户端证书和私钥发起请求:
bash
curl {{[-E|--cert]}} {{client.pem}} --key {{key.pem}} {{[-k|--insecure]}} {{https://example.com}}- 将主机名解析为自定义 IP 地址,以详细模式输出结果(类似于通过编辑
/etc/hosts文件自定义 DNS 解析):
bash
curl {{[-v|--verbose]}} --resolve {{example.com}}:{{80}}:{{127.0.0.1}} {{http://example.com}}ssh · 安全 Shell 是一种用于安全登录远程系统的协议
它可用于在远程服务器上记录或执行命令。 更多信息:https://man.openbsd.org/ssh。
- 连接到远程服务器:
bash
ssh {{用户名}}@{{远程主机地址}}- 使用特定身份(私钥)连接到远程服务器:
bash
ssh -i {{路径/到/私钥文件}} {{用户名}}@{{远程主机地址}}- 使用指定端口号连接到远程服务器:
bash
ssh {{用户名}}@{{远程主机地址}} -p {{端口号}}- 在具有伪终端分配的远程服务器上运行命令,允许与远程命令进行交互:
bash
ssh {{用户名}}@{{远程主机地址}} -t {{命令}} {{命令参数}}- SSH 隧道:动态端口转发(
localhost:1080上的 SOCKS 代理):
bash
ssh -D {{1080}} {{用户名}}@{{远程主机地址}}- SSH 隧道:转发特定端口(
localhost:9999到example.org:80)以及禁用伪终端分配和远程命令的执行:
bash
ssh -L {{9999}}:{{example.org}}:{{80}} -N -T {{用户名}}@{{远程主机地址}}- SSH 转发:通过跳转主机连接到远程服务器(可以指定多个跳转,以逗号分隔):
bash
ssh -J {{用户名}}@{{跳转主机地址}} {{用户名}}@{{远程主机地址}}- 关闭挂起的会话:
bash
<回车键><~><.>ssh-add · 在 ssh 代理中管理加载的 ssh 密钥
需要确保 ssh 代理已启动并正在运行以加载其中的密钥。 更多信息:https://man.openbsd.org/ssh-add。
- 将
~/.ssh中的默认 SSH 密钥添加到 SSH 代理:
bash
ssh-add- 向 ssh 代理添加指定密钥:
bash
ssh-add {{路径/到/私钥文件}}- 列出当前加载的密钥的指纹:
bash
ssh-add -l- 从 ssh 代理中删除密钥:
bash
ssh-add -d {{路径/到/私钥文件}}- 从 ssh 代理中删除所有当前已有的密钥:
bash
ssh-add -D- 向 ssh 代理和密钥链添加密钥:
bash
ssh-add -K {{路径/到/私钥文件}}ssh-copy-id · 在远程机器的 authorized_keys 中安装您的公钥
- 将您的密钥复制到远程主机:
bash
ssh-copy-id {{用户名}}@{{远程主机}}- 将给定的公钥文件复制到远程主机:
bash
ssh-copy-id -i {{路径/到/公钥文件}} {{用户名}}@{{远程主机}}- 将给定的公钥文件通过特定端口复制到远程主机:
bash
ssh-copy-id -i {{路径/到/公钥文件}} -p {{端口}} {{用户名}}@{{远程主机}}示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。
继续阅读
- 知识专题
- 知识专题
- 应用实践