网络编程之端口


2.1 端口作用

  • 端口是操作系统分配给网络应用程序的编号, 当接收到数据之后, 操作系统会根据编号来将数据转发到对应编号的应用程序.
  • 网络编程之端口
    网络程序必须要有端口号.

2.2 端口号

端口号就是标识端口的一个编号. 在 Linux 系统中, 端口号在 0-65535 之间. 端口号不是随意使用的, 而是按照一定的规定(操作系统规定)进行分配. 端口号分:

  • 知名端口号.
  • 动态端口号.
    网络通信的流程先通过 IP 地址找到网络中的设备, 再通过网络端口号来找到对应的程序端口, 然后通过端口把数据传输给对应的应用程序.

2.2.1 知名端口 (Well Known Ports)

知名端口号是系统程序使用的端口号. 知名端口范围从 0 到 1023.

  • 80 端口分配给 HTTP 服务
  • 22 端口分配给 SSH 服务.
  • 21 端口分配给 FTP 服务
    网络编程之端口

2.2.2 动态端口(Dynamic Ports)

动态端口号是普通程序使用的端口号. 动态端口的范围是从 1024 到 65535. 当这个程序关闭时, 同时也就释放了所占用的端口号.

2.2.3 如何查看端口号

  • 用 netstat -an | grep “:8080” 检验本机各端口的网络连接情况.

  • 用 lsof -i [tcp/udp]:8080 列出当前系统端口所对应的程序.