被阻止的端口

被阻止的端口

代理服务商可以禁止连接特定网络端口。例如,它可能允许浏览网页,却拒绝连接用于发送电子邮件的端口。代理仍接受客户的连接,但不会按请求建立通往邮件服务器的连接。

端口限制属于代理使用限制,决定服务能处理哪些任务。要理解它的影响,需要区分连接代理的那一段,以及代理代表你连接目标的那一段。

被阻止的是哪个端口?

网络端口是用于区分同一网络地址上不同服务的编号。同一服务器可以在一个端口接收网页连接,在另一个端口接收通往其他应用的连接。应用程序需要知道服务器地址、适当端口,以及所用的传输协议:TCP 或 UDP。

代理连接涉及两个独立目标。首先,应用程序通过服务商提供的地址和端口连接代理。随后,它请求代理通过目标服务器的地址和端口访问该服务器。代理设置中的端口属于第一步;目标端口限制则作用于第二步。

例如,程序可以连接 proxy.example:1080,并请求访问 portal.example:443。同一代理入口也可以接收访问 mail.example:587 的请求。如果服务商允许第一个目标端口,却阻止第二个,那么网页连接可以成功,而邮件连接会被拒绝。

客户端通过 TCP 端口 1080 连接代理。服务商允许连接 portal.example 的 TCP 端口 443,却在连接离开服务商之前,阻止其访问 mail.example 的 TCP 端口 587。
图 1. 一个代理入口端口,两个目标端口:服务商允许 TCP 443,阻止 TCP 587。被阻止的请求不会到达邮件服务器。这是示意性示例;实际规则取决于服务商。

这些限制针对代理到外部服务的出站连接。允许这类连接,并不会为你计算机上的应用提供一个可供其他互联网用户访问的入站端口。入站端口转发是另一项独立能力。

服务商为什么限制端口

最直接的原因是防止某种服务被滥用。直接访问邮件服务器可能被用于群发垃圾邮件。投诉和发件方屏蔽名单会影响承载流量的 IP 地址,因此后果可能波及发送邮件的客户之外的其他用户。服务商可以在任何邮件发出之前,拒绝连接用于发送邮件的端口,从而降低风险。

远程管理、文件共享或数据库服务也可能存在类似问题。服务商可能限制访问与这些服务有关的端口,以减少未授权登录尝试及其他攻击。限制针对连接本身:即使是合法管理员,也可能无法通过该产品访问自己的服务器。

规则并非总由代理销售方制定。托管公司或网络运营商可能对代理所用基础设施的出站连接进行过滤。代理软件自身的许可,无法覆盖路径后续环节实施的限制。

端口过滤是一种范围较广的措施。它无须检查每条消息,也无须判断每次操作是否合法,就能阻止不受欢迎的流量,但同时也限制了需要相同端口的正常应用。这种取舍解释了为什么即使付费客户有合理任务,服务商仍可能不开放端口。

端口访问规则如何工作

基本上有两种方式。黑名单列出客户不能使用的端口;其他连接则按服务剩余规则判断。允许列表的方向相反:服务商仅允许指定的一组端口,拒绝其余端口。在第二种模式中,一个使用非标准端口的普通网页应用,可能仅因端口不在允许范围内就无法访问。

规则可以覆盖所有外部地址上的某个端口,也可以将端口与特定目标结合。服务商还可以根据不同产品或获准用途采用不同规则。因此,通过一个网络获得的访问能力,并不能说明同一公司销售的另一个产品具有哪些权限。

代理无须解密应用流量,就能执行目标端口规则。HTTP CONNECT 请求由客户端提供目标主机和端口。SOCKS5 的连接请求也会携带所请求的目标。代理可以在与目标服务器的受保护会话开始之前拒绝该请求。

使用相同端口编号的 TCP 和 UDP 流量,可以分别获准或被阻止。成功连接 TCP 端口 443,不能证明 UDP 端口 443 也可用。还有另一种可能:所选代理产品根本不传输 UDP。此时限制针对的是传输协议,而非某一个 UDP 端口。

仅凭端口编号,也不能证明应用在执行什么操作。服务可以运行在非标准端口上,而某个编号获准使用,并不代表其所有用途都可接受。服务商可以将端口过滤与目标限制、活动规则结合使用。

对应用程序有什么影响

应用程序通过连接实现特定功能。浏览器测试检查的是它所建立的网页连接,并未测试另一个程序可能需要的所有连接。以下示例说明,端口限制如何影响其他方面正常工作的服务。

连接本例使用的端口限制的影响
通过 TCP 访问网页443无法通过该连接获取页面。
发送电子邮件TCP 25 用于服务器之间投递;TCP 465 或 587 用于邮件应用提交邮件无法通过受影响的连接直接发送邮件。
被动 FTPTCP 21 用于命令,服务器另行指定一个端口用于数据登录可能成功,但目录列表或文件传输失败。
使用自定义端口的网页应用例如 TCP 8443即使 TCP 443 上的网站正常,应用也可能无法访问。

电子邮件尤其能说明这种区别。邮件应用通常通过端口 587 或 465 向邮件服务器提交待发邮件。端口 465 从一开始就使用 TLS 加密;端口 587 通常使用 STARTTLS 建立加密。端口限制可以在邮件发送之前阻止任一种连接。加密保护通信,但不会取消服务商的访问规则。

使用网页邮箱界面时,浏览器通过 HTTPS 与网站通信,由邮件服务处理投递。浏览器并没有请求代理建立同样的 SMTP 连接。因此,即使 SMTP 访问被阻止,网页邮箱仍可能可用。在独立应用中接收邮件,则又是另一种连接:IMAP 或 POP 访问必须与发送邮件分开考虑。

FTP 说明为什么只测试登录可能漏掉问题。在被动模式下,客户端先通过一个连接发送命令,再连接服务器指定的端口传输数据。如果第二个连接受限,身份验证可能正常,文件列表或下载却会失败。分别使用独立连接处理登录、语音或文件交换的应用,也可能出现类似的部分功能失败。

为什么更改代理设置可能无效

更改代理设置中的入口端口,改变的是应用程序连接代理的位置,不会改变请求外部服务时使用的目标端口。如果服务商提供端口 443 的入口,连接该入口后,对邮件服务器端口 587 的请求仍然受邮件端口限制。

当应用需要新连接方式所支持的能力时,从 HTTP 代理改为 SOCKS5 可以解决兼容性问题,但不会自动取消服务商的规则。SOCKS5 定义如何请求 TCP 连接和 UDP 转发;服务则决定接受其中哪些请求。

更换出口 IP,也不会解除适用于整个产品的限制。如果故障来自某个外部网络,不同路径可能有不同表现,但轮换不是移除整个产品通用规则的办法。增加 IP 数量或流量额度,同样不会改变该权限。

如何识别端口限制

最有用的证据,是服务商明确回应所请求的目标端口不被允许。笼统的拒绝访问提示则不够准确。例如,SOCKS5 对因规则集而被拒绝请求的回复,可以说明是策略拒绝,却不会指出是哪条规则造成。仅有超时或重置信息,证据更弱。

目标服务器可能没有服务监听该端口,也可能只接受特定来源地址,或暂时不可用。应用也可能使用了错误协议,或让部分流量绕过已配置的代理。一次成功的网页请求,无法将这些原因与影响另一连接的限制区分开。

要让客服请求有效,应提供代理产品、目标主机名或 IP、目标端口、TCP 或 UDP、应用程序,以及准确错误和尝试时间。这些详情让客服能够检查相关连接,而不只是确认代理在线。计划购买时,相同信息也有助于确认产品是否支持任务。

如果服务商允许例外,批准范围应明确所需目标和用途。有些限制是永久性的,或来自服务商无法控制的基础设施。真正有用的问题,是这条具体连接能否在服务规则内获得支持;笼统要求“开放所有端口”,会让需求和限制都不明确。

返回知识库