源端口与目标端口

Posted

技术标签:

【中文标题】源端口与目标端口【英文标题】:Source Port vs Destination Port 【发布时间】:2014-02-10 18:32:05 【问题描述】:

我是 TCP/IP 的新手,正在努力学习基础知识。好吧,我真的很想知道防火墙的入站规则和出站规则以及源地址:端口,目标地址:端口的概念。

例如,我正在调查端口 80。我知道 http 使用端口 80。但是当我尝试监听流量时,我发现我的浏览器没有使用 80。从图片中可以看出,只使用了目标端口 80 “目标”应该是托管网页的服务器,而不是我的计算机。而且源端口上也没有使用80端口,“源”应该是我的电脑。

我的浏览器使用其他一些端口作为源并转到服务器端口 80。据此,我知道我的计算机的端口 80 不用于 http,只有托管网页的服务器计算机使用端口 80,但如果我关闭出站规则中的端口 80 或我的计算机无法正常工作。但正如我之前从图像中了解的那样,我的计算机上没有使用端口 80。

真的很困惑。谁能帮我解释一下?

【问题讨论】:

【参考方案1】:

您是对的:通信从您的计算机(“随机”选择的源端口)到 Web 服务器(目标端口 80)。并从 Web 服务器(源端口 80)到您的计算机(目标端口 xxxxx)获取服务器的响应。

如果您在出站规则中关闭端口 80,您的计算机将无法访问任何 Web 服务器,因为此规则意味着您的防火墙会丢弃从您的计算机发送到端口 80 上的目标的任何数据包。

编辑

其实你发送的数据包中包含如下参数:

Your_IP, Server_IP, Source_port (xxxxx), Destination port (80)

当您的防火墙看到这种数据包时,它会应用出站规则(关于从您的计算机到 Web 服务器的通信的规则)。如果您的出站规则是关闭端口 80(即意味着丢弃任何目标端口为 80 的数据包)看到您尝试发送到 Web 服务器的数据包被丢弃是正常的。

在出站规则中关闭端口 80 并不意味着您关闭了计算机的 80 端口。这意味着您的防火墙会丢弃目标端口为 80 的数据包。

【讨论】:

以上是关于源端口与目标端口的主要内容,如果未能解决你的问题,请参考以下文章

Python - 使用套接字设置源端口号

交换机SPAN功能配置

移动互联网方向 第九组 抓包

linux下iptables防火墙详解

Firewalld防火墙:端口转发与流量均衡

tcpudpipicmp报文格式分析