当前位置: 首页 > news >正文

Linux 网络编程基础:常用网络命令详解

目录

ip addr

ping

netstat

pidof

telnet

nc


ip addr

基本用法 ip addr 简写 ip a

作用:查看本机所有网络接口(网卡)的 IP 地址、MAC 地址、状态等信息。

ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:16:3e:3f:84:21 brd ff:ff:ff:ff:ff:ff inet 172.24.45.36/18 brd 172.24.63.255 scope global dynamic eth0 valid_lft 1889049998sec preferred_lft 1889049998sec

lo 和 eth0 表示两个网络接口。

lo :回环接口,也叫 loopback。它的 IP 地址:127.0.0.1 (该 IP 地址被称为本地环回地址

特点:数据不经过网卡

示例: 你的机器: 客户端程序 | 127.0.0.1 | 服务端程序 数据直接在内核内部转发

在网络开发中,通常先用 127.0.0.1 IP 地址进行网络通信的测试。

eth0:真实网卡。

IP 地址

inet 172.24.45.36 表示我的机器在局域网中的 IP 地址。

MAC 地址

link/ether 00:16:3e:3f:84:21 表示网卡的物理地址。

补充

ifconfig(老命令) 作用与 ip a 一致 只看 IPv4: ip -4 addr 只看某个网卡 ip a show eth0

ping

最常用: ping www.baidu.com

作用:测试目标主机网络是否连通。

ping www.baidu.com PING www.a.shifen.com (220.181.111.232) 56(84) bytes of data. 64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=1 ttl=51 time=3.57 ms 64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=2 ttl=51 time=3.57 ms 64 bytes from 220.181.111.232 (220.181.111.232): icmp_seq=3 ttl=51 time=3.58 ms ^C --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 3.570/3.576/3.584/0.005 ms

time:表示往返时间,即 请求出去 + 响应回来 的时间

Linux 默认 ping 命令是一直发送请求,需要 Ctrl + C 终止。

ping -c 可以指定发送次数 示例: ping -c 3 www.baidu.com PING www.a.shifen.com (220.181.111.1) 56(84) bytes of data. 64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=1 ttl=52 time=3.21 ms 64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=2 ttl=52 time=3.20 ms 64 bytes from 220.181.111.1 (220.181.111.1): icmp_seq=3 ttl=52 time=3.18 ms --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 3.182/3.199/3.214/0.066 ms

netstat

基本用法 netstat [选项] 最常用: netstat -aunp netstat -atnp netstat -alnp

功能:查看网络状态

选项:

n: 能显示数字的全部转化为数字

l: 仅列出在 listen 状态的服务

p: 显示建立相关连接的程序名和PID

t: 仅显示 tcp 相关的服务

u: 仅显示 udp 相关的服务

a: 显示本主机所有的服务

netstat -ltnp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 14258/./server tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:45243 0.0.0.0:* LISTEN 13991/node tcp6 0 0 :::3306 :::* LISTEN -
netstat -aunp (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:68 0.0.0.0:* - udp 0 0 127.0.0.1:323 0.0.0.0:* - udp 0 0 0.0.0.0:8080 0.0.0.0:* 14784/./server udp6 0 0 ::1:323 :::* -

补充

watch 命令 功能:定时重复执行一个命令,并实施刷新显示结果 示例: 每隔 1 s执行一次 netstat -ltnp watch -n 1 netstat -ltnp

从右上角时间的变化,可以看出 watch 会实施刷新显示结果

pidof

功能:通过程序名称,查看进程 PID。在网络中,通常用来服务器的进程 PID 。

ps axj | head -1 && ps axj | grep tcp_server PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 14694 14981 14981 14694 pts/5 14981 S+ 1001 0:00 ./tcp_server 8080 pidof tcp_server 14981

补充

杀死服务器的进程 pidof tcp_server | xargs kill -9

telnet

基本用法 telnet IP 端口

功能:telnet 相当于一个最简单的 TCP 客户端,主要用于测试 TCP 服务是否能连接。

Centos 安装: sudo yum install -y telnet Ubuntu 安装: apt yum install -y telnet
连接成功的示例: telnet 127.0.0.1 8080 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 连接失败的示例: telnet 127.0.0.1 8080 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused
telnet 127.0.0.1 8080 Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. ^] telnet> quit 退出 telnet 的操作 Ctrl + ] -> 进入 telnet> 输入 quit

nc

理解:nc 是一个万能网络工具,可以充当 TCP/UDP 客户端,也可以充当 TCP/UDP 服务器。

作用:

测试 TCP 连接

测试 UDP 通信

临时启动服务器

临时启动客户端

发送和接收数据

基本用法: nc [参数] IP 端口
用法:TCP 客户端 示例:Echo TCP 服务器 连接成功并发送消息,服务端并回复消息 nc 127.0.0.1 8080 hello server say# hello world server say# world 连接失败 nc 127.0.0.1 8080 Ncat: Connection refused.
用法: TCP 服务器 示例:让 nc 监听一个 TCP 端口 nc -l 8080 其中 "-l" 表示 listen 监听 服务器 nc -l 8080 hello pwd 客户端 nc 127.0.0.1 8080 hello pwd 此时,客户端可以向服务端发消息,服务端也可以向客户端发消息,简单实现了 TCP 双向通信
UDP 测试 启动 UDP 服务: nc -u -l 8888 // 这里的 -l 不是监听,它的意思是让 nc 进入等待接收模式 socket() + bind() + recvfrom() 等待数据 另一个终端: nc -u 127.0.0.1 8888 此时客户端可以向服务器发消息,服务器也可以向客户端发消息,实现了 UDP 双向通信
http://www.jsqmd.com/news/1285659/

相关文章:

  • 飞书机器人集成OpenClaw框架的AI实践指南
  • SSM239与Vue构建二手母婴交易系统的技术实践
  • 雅思笔试取消?打字慢的我该怎么解决
  • 从“白馒头眨眼睛”入门:图形化编程顺序结构与硬件模块衔接指南
  • AI安全测试平台数据加密配置实战:从原理到Vault集成
  • 史密斯圆图原理与应用:从阻抗匹配到射频电路设计实战
  • 余弦调色板 a+b*cos(6.28*(c*t+d))
  • HDL Coder实战:从Simulink模型到FPGA硬件的自动化流程与优化
  • APS1604M-SQR-SN:如何让物联网设备性能飙升?
  • Arduino蓝牙遥控小车:从电机驱动到重力感应控制的完整实现
  • Anaconda与虚拟环境:Python项目依赖管理与环境隔离实战指南
  • 雕铣机厂家怎么选?优质厂商云豪自动化深度解析,高速机/卧式加工中心/两轴线轨立式加工中心/立式加工中心,雕铣机厂家推荐 - 品牌推荐师
  • Java枚举高级应用:从常量到策略模式与状态机的实战指南
  • 月之暗面开放 Kimi K3 模型权重与技术报告,开源关键 Infra 技术加速 AGI 研究
  • 金域医学携手通天晓软件:WMS 如何支撑全国 70 多仓统一管理与医检供应链升级
  • 纳米复合镀层解决离合器冲压件锈蚀问题
  • Harmony os 技术实战|拼豆制图02:50 张图纸的 Repository 与轻量预览
  • UrbanGS:数据驱动的城市绿地规划与管理系统
  • STM32 HAL库串口收发卡死问题深度解析与四大实战解决方案
  • 固定资产管理系统技术演进解析:台账架构、标签打印、盘点模式、维保体系与信创迭代史
  • OLED透明屏驱动实战:从自发光原理到MSP430/STM32应用开发
  • Python自动化实战:200行代码打造B站UP主数据监控助手
  • Tkinter窗口图标设置全攻略:从iconbitmap到iconphoto的跨平台实践
  • 成都哪家全屋智能公司最专业
  • 工业物联网安全连接方案:NVIDIA与NXP硬件协同设计
  • Scratch编程画圆:从数学定义到算法实现,掌握计算思维与图形学基础
  • 驾照翻译件怎么弄?2026线上、线下渠道测评+办理流程
  • PLA材料遇水性能劣化解析与3D打印件防水增强方案
  • ESP32 GPIO中断编程实战:从轮询到事件驱动的实时响应优化
  • 华为云行业大模型团队AI PPT登顶PresentBench榜单