一、ping:最基础的网络连通性检查

当你发现网站打不开或者服务器连不上时,第一个该想到的就是ping。它的原理就像对着山谷喊话——如果有回声,说明路是通的。

示例(Linux环境)

# 检查能否访问百度(默认发送4个包)
ping www.baidu.com

# 持续ping测试(按Ctrl+C停止)
ping -t 192.168.1.1

# 指定ping的次数(比如只测5次)
ping -c 5 github.com

应用场景

  • 快速判断本地网络是否正常
  • 排查服务器是否在线
  • 测试网络延迟(输出中的time=xx ms就是延迟)

注意事项

  1. 有些服务器禁用了ping响应(显示Request timeout不一定真是网络问题)
  2. 高延迟不一定代表网络差,可能是跨运营商或物理距离远

二、ssh:远程登录的瑞士军刀

想安全地管理远程服务器?ssh就是你的钥匙。它不仅加密所有通信,还能直接执行远程命令。

示例(Linux环境)

# 最基础的登录(用户名为root,服务器IP为1.1.1.1)
ssh root@1.1.1.1

# 指定端口登录(比如服务器ssh端口是2222)
ssh -p 2222 user@example.com

# 直接执行远程命令(查看远程服务器的磁盘空间)
ssh root@1.1.1.1 "df -h"

# 使用密钥登录(避免每次输密码)
ssh -i ~/.ssh/id_rsa root@1.1.1.1

技术细节

  • 首次连接时会提示确认服务器指纹(输入yes后会自动保存到~/.ssh/known_hosts
  • 如果修改了服务器密钥,会报错Host key verification failed,需要手动删除known_hosts中对应记录

安全建议
✅ 禁用密码登录,只用密钥认证
✅ 修改默认22端口


三、scp:安全传输文件的利器

scp基于ssh协议,能在本地和远程服务器之间加密传输文件,速度比FTP快,还不用额外装软件。

示例(Linux环境)

# 上传本地文件到远程服务器(将localfile.txt传到远程/home目录)
scp ./localfile.txt root@1.1.1.1:/home/

# 下载远程文件到本地(将远程的/var/log/app.log下载到当前目录)
scp root@1.1.1.1:/var/log/app.log .

# 递归传输整个目录(上传mydata文件夹)
scp -r ./mydata root@1.1.1.1:/tmp/

# 指定端口传输(比如服务器ssh端口是2222)
scp -P 2222 file.txt user@example.com:/home/

性能对比

  • 小文件:scprsync速度接近
  • 大文件:rsync支持断点续传,更适合

常见错误处理

  • Permission denied:检查远程目录写入权限
  • No such file or directory:本地或远程路径写错了

四、curl:万能的数据传输工具

无论是测试API、下载文件还是检查网页状态,curl都能搞定。它支持HTTP/FTP等20多种协议。

示例(Linux环境)

# 获取网页内容(显示百度首页HTML)
curl https://www.baidu.com

# 下载文件到本地(保存为downloaded.html)
curl -o downloaded.html https://example.com

# 发送POST请求(带JSON数据)
curl -X POST -H "Content-Type: application/json" \
-d '{"user":"admin","password":"123"}' \
http://api.example.com/login

# 只显示HTTP头信息(调试用)
curl -I https://github.com

高级技巧

  • -v参数查看详细通信过程(包括握手过程)
  • 配合jq工具处理JSON响应:curl ... | jq .data

应用场景
✔️ 快速测试接口是否正常
✔️ 检查CDN节点分布(通过curl -L跟踪重定向)
✔️ 模拟表单提交


五、常见问题解决方案

场景1:ssh连接超时

# 检查防火墙是否放行(临时关闭防火墙测试)
sudo systemctl stop firewalld

# 增加ssh连接等待时间
ssh -o ConnectTimeout=30 root@1.1.1.1

场景2:scp传输大文件中断

# 改用rsync支持断点续传
rsync -P --rsh=ssh bigfile.iso root@1.1.1.1:/backup/

场景3:curl报SSL证书错误

# 跳过证书验证(仅测试环境用)
curl -k https://expired-ssl-site.com

# 指定使用特定证书
curl --cacert /path/to/cert.pem https://site.com

六、工具对比与总结

工具 最佳场景 优点 缺点
ping 检查网络通断 简单直观 无法测试端口可用性
ssh 远程服务器管理 加密、支持多种认证方式 需要开放端口
scp 安全传输单个文件 无需额外服务 大文件传输效率低
curl API调试/数据获取 支持多种协议 复杂功能需记参数

终极建议

  1. 日常排查先pingcurl,确认是网络问题还是服务问题
  2. 长期管理服务器建议配置ssh密钥+别名(在~/.ssh/config设置)
  3. 大数据传输用rsync替代scp