• Linux端口及端口监听


    一、端口

    1.什么是端口?

      我们知道,IP 地址是计算机在互联网上的地址编号,每台联网的计算机都必须有自己的 IP 地址,而且必须是唯一的,这样才能正常通信。也就是说,在互联网上是通过 IP 地址来确定不同计算机的位置的。

      大家可以把 IP 地址想象成家庭的"门牌号码",不管你住的是大杂院、公寓楼还是别墅,都有自己的门牌号码,而且门牌号码是唯一的。

      如果知道了一台服务器的 IP 地址,我们就可以找到这台服务器。但是这台服务器上有可能搭建了多个网络服务,比如 WWW 服务、FTP 服务、Mail 服务,那么我们到底需要服务器为我们提供哪个网络服务呢?这时就要靠端口(Port)来区分了,因为每个网络服务对应的端口都是固定的。

      比如,WWW 服务对应的端口是 80,FTP 服务对应的端口是 20 和 21,Mail 服务对应的端口是 25 和 110。也就是说,IP 地址可以想象成"门牌号码",而端口可以想象成"家庭成员",找到了 IP 地址只能找到你们家,只有找到了端口,寄信时才能找到真正的收件人。

    通俗来讲,端口就是网络服务对外提供服务的接口,当ip上存在一个端口时,说明该服务正常运行且对外提供服务。

    2.tcp和udp协议的端口

    为了统一整个互联网的端口和网络服务的对应关系,以便让所有的主机都能使用相同的机制来请求或提供服务,同一个服务使用相同的端口,这就是协议。

    计算机中的协议主要分为两大类:

    面向连接的可靠的TCP协议(Transmission Control Protocol,传输控制协议);
    面向无连接的不可靠的UDP协议(User Datagram Protocol,用户数据报协议);

    无论数tcp协议或者是udp协议的端口可以有65536个(2的16次方)

    二、监听

    1.netstat查看网络状态

    Linux netstat 命令用于显示网络状态。

    利用 netstat 指令可以得知整个 Linux 系统的网络情况。

    语法:

    netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
    
    • 1

    参数说明:

    -a或--all 显示所有连线中的Socket。
    -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
    -c或--continuous 持续列出网络状态。
    -C或--cache 显示路由器配置的快取信息。
    -e或--extend 显示网络其他相关信息。
    -F或--fib 显示路由缓存。
    -g或--groups 显示多重广播功能群组组员名单。
    -h或--help 在线帮助。
    -i或--interfaces 显示网络界面信息表单。
    -l或--listening 显示监控中的服务器的Socket。
    -M或--masquerade 显示伪装的网络连线。
    -n或--numeric 直接使用IP地址,而不通过域名服务器。
    -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
    -o或--timers 显示计时器。
    -p或--programs 显示正在使用Socket的程序识别码和程序名称。
    -r或--route 显示Routing Table。
    -s或--statistics 显示网络工作信息统计表。
    -t或--tcp 显示TCP传输协议的连线状况。
    -u或--udp 显示UDP传输协议的连线状况。
    -v或--verbose 显示指令执行过程。
    -V或--version 显示版本信息。
    -w或--raw 显示RAW传输协议的连线状况。
    -x或--unix 此参数的效果和指定"-A unix"参数相同。
    --ip或--inet 此参数的效果和指定"-A inet"参数相同
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    实例效果图
    在这里插入图片描述

    Local Address

    (1) Local Address 部分的0.0.0.0:22 表示监听服务器上所有ip地址的22端口(0.0.0.0表示本地所有ip),比如你的服务器是有172.25.254.1和172.25.254.2两个ip地址,那么0.0.0.0:22此时表示监听172.25.254.1,172.172.230.2,127.0.0.1三地址的22端口

    (2) :::22 这个也表示监听本地所有ip的22端口,跟上面的区别是这里表示的是IPv6地址,上面的0.0.0.0表示的是本地所有IPv4地址NOTE “:::”这三个:的前两个"::“,是"0:0:0:0:0:0:0:0"的缩写,相当于IPv6的"0.0.0.0”,就是本机的所有IPv6地址,第三个:是IP和端口的分隔符

    (3) 127.0.0.1:25 这个表示监听本机的loopback地址的25端口(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)

    (4) ::1:25这个表示监听IPv6的回环地址的25端口,::1表示IPv6的loopback地址

    Foreign Address

    与本机端口通信的外部socket。显示规则与Local Address相同

  • 相关阅读:
    RobotStudio实现喷漆、打磨等功能(曲面路径生成与仿真)
    老司机带带你,教你学会Java中又骚又暴力的“反射”技术
    无代码编程时代的到来:新兴工具和平台的前瞻展望
    git clone项目报错文件名过长
    Maven 基本使用及依赖管理。
    5G终端标识SUPI,SUCI及IMSI解析
    45.Redis核心数据结构实战与高性能原理剖析
    数据结构·找数
    RMarkdown进阶操作
    Winform 多语言化快速解析替换工具-1分钟一个界面
  • 原文地址:https://blog.csdn.net/qq_42343557/article/details/125887103