打开端口 80 以进行出站 SMTP 通信会导致 apache 超时

打开端口 80 以进行出站 SMTP 通信会导致 apache 超时

我在 Media Temple 有一个 (dv) 专用虚拟机,运行 Parallels/Plesk。

下列的此指令,我能够打开一个附加端口并配置使用端口 80 作为 SMTP 外发邮件服务器。我的客户经常出差,他们发现许多 ISP 阻止端口 25 和 587,这让他们很沮丧。

这很好,外发电子邮件需要身份验证,但使用端口 80 成功发送。但是,现在当我尝试访问域时,Apache 没有响应。它只是挂起。大概是邮件服务器在 Apache 之前接收了请求。

我想继续使用端口 80 发送外发电子邮件,因为端口 80 几乎在所有地方都开放。有什么想法可以让我将其保持为 SMTP 开放吗?路由/隧道到 Apache(或反之亦然),以便两者都可以使用端口 80?

这是我在 /etc/xinetd.d/smtp_alternate 创建的文件的内容:

service smtp
{
    service         = smtp_alternate
    type            = UNLISTED
    port            = 80
    socket_type     = stream
    protocol        = tcp
    wait            = no
    disable         = no
    user            = root
    instances       = UNLIMITED
    env             = SMTPAUTH=1 SHORTNAMES=1
    server          = /var/qmail/bin/tcp-env
    server_args     = -Rt0 /usr/sbin/rblsmtpd -r sbl.spamhaus.org /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}

答案1

您的问题似乎混淆了传入和传出的流量。

您不能运行多个(类型的)服务器来监听 IP 地址和端口 - 客户端通过这种方式知道要连接的位置。Apache 并非没有响应 - 如果它正在运行,它无法看到端口 80 上的流量,因为您的邮件服务器正在使用它。

您首先应该联系您的 ISP,以查明哪些传入端口未被阻止。

如果失败,如果您尚未使用 HTTPS,可以尝试 443;如果您未运行 DNS 服务器,可以尝试 42;如果您未运行 pop3,可以尝试 110;如果您未运行 imap,可以尝试 143;然后尝试一些 1024 以上的端口号。

答案2

Apache 是一个绑定在端口 80 上的 Web 服务器。您已在端口 80 上设置了一个 SMTP 服务器。唯一的解决方案是使用另一个端口进行 STMP,并且您 100% 确定该端口不会被其他任何东西使用。

您链接的教程在端口 2525 上进行设置。为什么不使用它呢?

service smtp
{
    service         = smtp_alternate
    type            = UNLISTED
    port            = 2525
    socket_type     = stream
    protocol        = tcp
    wait            = no
    disable         = no
    user            = root
    instances       = UNLIMITED
    env             = SMTPAUTH=1 SHORTNAMES=1
    server          = /var/qmail/bin/tcp-env
    server_args     = -Rt0 /usr/sbin/rblsmtpd -r sbl.spamhaus.org /var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/true /var/qmail/bin/cmd5checkpw /var/qmail/bin/true
}

相关内容