到端口 80 的 TCP 连接不应该也来自端口 80 吗?或者当普通用户使用普通浏览器时,它们通常来自哪个端口?我想知道,因为我想知道我是否可以限制防火墙上的传入端口
tcp 6 156441 ESTABLISHED src=88.242.44.86 dst=74.208.112.246 sport=1164 dport=80 packets=4 bytes=172 src=74.208.112.246 dst=88.242.44.86 sport=80 dport=1164 packets=1 bytes=52 [ASSURED] mark=0 use=1
tcp 6 156065 ESTABLISHED src=78.186.69.124 dst=74.208.112.246 sport=3133 dport=80 packets=4 bytes=168 src=74.208.112.246 dst=78.186.69.124 sport=80 dport=3133 packets=1 bytes=48 [ASSURED] mark=0 use=1
tcp 6 132805 ESTABLISHED src=88.238.245.86 dst=74.208.112.246 sport=3526 dport=80 packets=4 bytes=172 src=74.208.112.246 dst=88.238.245.86 sport=80 dport=3526 packets=1 bytes=52 [ASSURED] mark=0 use=1
Run Code Online (Sandbox Code Playgroud)
不,它来自临时端口。
首先是一些基础知识。一个套接字,由一个源端口和地址,以及一个目的端口和地址组成。该套接字描述了一条通信线路。一个套接字描述一个连接。当操作系统接收到数据包时,它会查看这些信息位来决定哪个应用程序应该获取数据包。如果您想查看这些连接,请查看 netstat 的输出。
如果所有发往端口 80 的内容都源自端口 80,那么您只能在 2 个 IP 地址之间建立一个连接。在现实世界中,我们经常希望对 Web(或其他)服务器打开多个连接,以便我们可以并行检索事物。
您还应该考虑进行网络转换 ( NAT ) 或更描述性和更常见的情况,端口地址转换。一次只允许 NAT 设备后面的一个系统建立连接是完全不可接受的。因此,每个传出连接都分配了源端口。NAT 设备必须保留一个转换表,用于跟踪外部的哪些端口+地址组合属于内部的哪些端口+地址组合。