计算机和防火墙上的端口及其目的 - 101问题

时间:2009-10-30 01:33:40

标签: firewall

好的,计算机有应用程序端口,可以将数据从外部世界传输到防火墙,然后传输到计算机中。

那么firefox和Internet Explorer如何在同一台计算机上使用相同的端口?

为什么我们不能使用端口80将所有地方的所有流量传递到计算机中。

那么为什么我们需要特定的端口?

4 个答案:

答案 0 :(得分:5)

一般来说,本地的港口并不重要。这是远程端口。

因此,当您打开浏览器并转到某个站点时,您正在建立从您端的(有点)随机端口到服务器端的端口80的连接。服务器在同一连接上回复您。 Web服务器使用TCP / IP,因此这就是所谓的已建立的连接。如果您在网络流量期间查看连接到服务器上的netstat -an,那就是您所看到的:

tcp        0      0 ::ffff:192.168.1.223:22     ::ffff:192.168.1.230:2369   ESTABLISHED

该行表示我的本地计算机已在端口22上建立了与远程计算机的连接。我的本地计算机选择了一个随机出站端口2369来建立此连接。 在这种情况下,这是我在地下室的网络服务器的ssh连接。

服务器应该用于特定服务的端口列为here,但是如果您要控制连接的两端,如果您愿意,没有什么能阻止您在端口8383上运行Web服务器。只是不要指望其他人在没有你告诉他们的情况下去做。 (或者在端口扫描中找到它。)

如果您在计算机上运行网络服务器,它将打开端口80并侦听连接。每个IP地址只能监听一个服务,因此您无法同时运行两个Web服务器。如果您随后连接到本地Web服务器也是如此。您将打开一个随机本地端口并连接到同一IP上的本地端口80。

打开随机本地端口允许您与已知的远程端口(如80)建立多个本地连接。

有65536个端口可供使用,因此您不太可能用完,但许多端口具有“众所周知”的用途,因此可以避免连接结束。一般来说,1023以上的一切都是公平的。 (所有需要任何特权的服务都在1023以下的端口上运行)

这是TCP / IP连接。 TCP / IP具有内部语言,可确保信息的可靠传递,并在每个连接开放时进行握手,以确保数据的传输。

另一种常见的连接类型是UDP。 UDP没有建立连接,因此速度更快,延迟更低,但使用它的程序必须能够丢失信息并仍然可以工作。它基本上是一个发送数据和祈祷协议。许多在线游戏以这种方式运作。

答案 1 :(得分:2)

每个连接都有一个源端口和目标端口。这使您可以从机器到(例如)在端口80上运行的Web服务器之间建立多个连接。连接由SourceIP唯一标识:SourcePort和DestIP:DestPort。

因此,在您的示例中,Firefox和IE将在远程Web服务器(端口80)上使用相同的端口,但在您的计算机上将使用不同的端口来区分它们。

尝试在命令提示符下运行netstat以查看当前连接。

答案 2 :(得分:0)

端口可用于任何事情,但在某些端口上存在协议的约定。

并且您可以将80用于其他功能,有些人这样做是绕过防火墙的简单方法......

但是,只有一个应用程序可以侦听端口。

答案 3 :(得分:0)

一些netstat输出可以显示正在发生的事情:

C:\Temp> netstat -an

  TCP    192.168.XXX.150:1493   74.125.45.100:80       ESTABLISHED
  TCP    192.168.XXX.150:1504   69.59.196.213:80       ESTABLISHED
  TCP    192.168.XXX.150:1507   74.125.91.138:80       ESTABLISHED
  TCP    192.168.XXX.150:1510   65.55.11.162:80        ESTABLISHED
  TCP    192.168.XXX.150:1518   69.59.196.211:80       ESTABLISHED
  TCP    192.168.XXX.150:1519   69.59.196.216:80       ESTABLISHED
  TCP    192.168.XXX.150:3711   64.208.186.96:80       CLOSE_WAIT

请注意,192.168.XXX.150地址是我家庭网络上的计算机地址。 IP地址后面的4位数字是我的计算机用来与许多不同服务器上的端口80通信的本地端口。