程序员应该掌握的网络命令telnet、ping和curl

简介: 本文分享开发中遇到的服务调用问题,通过运维指导使用telnet排查网络连通性,引出常用网络工具的使用场景:telnet测端口、ping测主机、curl模拟接口请求,助力快速定位问题。

这篇文章源于开发中发现的一个服务之间调用问题,在当前服务中调用了其他团队的一个服务,看日志一直报错没有找到下游的服务实例,然后就拉上运维来一块排查,运维让我先 telnet 一下网络,我一下没反应过来是要干啥!

v2-773a2e07dcf2e537b626b3e7f4fa704d_r.jpg

telnet

telnet是电信(telecommunications)和网络(networks)的联合缩写,它是一种基于 TCP 的网络协议,用于远程登录服务器(数据均以明文形式传输,存在安全隐患,所以现在基本不会用了)或测试主机上的端口开放情况。

# 命令格式
telnet IP或域名 端口

# telnet ip地址
telnet 192.168.1.1 3306

# telnet 域名
telnet cafe123.cn 443

ping

ping 是一种基于 ICMP(Internet Control Message Protocol)的网络工具,用于测试主机之间的网络连通性,它不能指定端口。

# 命令格式
ping IP或域名

# ping ip地址
ping 192.168.1.1

# ping 域名
ping cafe123.cn

日常开发中测试某台服务器上的web后端、数据库、redis等服务的端口是否开放可用,就可以用 telnet 命令;若只需确认服务器主机是否在线,就可以用 ping 命令。

像一般服务之间调用出现问题,我就需要先从服务器网络开始测试,一步步来缩小范围,如果当前服务器上都没法 telnet 通目标服务器的某个端口,那就是网络问题,那就可以从网络入手来排查是网络不让访问还是目标服务压根不存在。

curl

curl(Client URL)是一个强大的网络请求命令工具,可以理解为命令行中的 postman。

比如如果我们要在服务器上去请求某个接口,看能不能请求通,总不能在 Linux 上去装个 postman 来请求吧。这种情况 curl 命令就派上用场了。

1、请求某个网页

# 命令格式
curl 网址

# 示例
curl https://cafe123.cn

2、发送 get 请求

参数 -X 指定 HTTP 方法,不指定默认就是 get

# 示例
curl -X GET https://cafe123.cn?name=zhou&age=18

3、发送 post 请求

请求头用 -H 指定,多个直接分开多次指定就行,-d 指定 post 请求参数

curl -X POST -H "Content-Type: application/json" -H "token: 1345102704" -d '{"name":"ZHOU","age":18}'  https://api.cafe123.cn/users

实际上面的这些也不用记,浏览器的 network 前端接口请求查看面板里右键实际是可以直接复制出来对应接口的 curl 命令的,然后直接复制出来去服务器上执行就行了,postman 中也支持直接导入 curl 命令给自动转成 postman 对应的参数。

相关文章
|
1月前
|
Shell 开发工具 git
使用代理访问网络各项命令总结
工作中常需设置代理,容易导致环境混乱。本文总结了 SourceTree 无法拉取代码的问题,排查了环境变量、Git 全局配置及系统代理设置,最终通过清除 Git 代理配置解决。内容涵盖排查步骤、命令整理及脚本处理,帮助快速定位并解决代理相关网络问题。
81 2
|
10月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
349 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
9月前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
359 11
|
10月前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
1147 20
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
233 17
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
190 10
|
10月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
202 10
|
10月前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
10月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
下一篇
oss教程