使用有效的 IP 地址连接到 TCP 端口

使用有效的 IP 地址连接到 TCP 端口

我已经安装Apache James并启用了端口 25 上的 smtp 服务器。我可以通过以下方式连接到服务器内部的端口 25:

telnet localhost 25

但是我无法通过以下命令从服务器外部进行连接:

telnet validip 25

在服务器内部我有以下输出netstat -a -n

tcp6       0      0 :::25                   :::*                    LISTEN

如何使用有效的 IP 地址从服务器外部连接到端口 25 上的 smtp 服务器?

PS:防火墙允许该端口,并在网络中打开该端口。

$ nmap validip
PORT    STATE  SERVICE
25/tcp  open   smtp

在服务器内部:

# ufw status 
Status: active
To                         Action      From
--                         ------      ----
25/tcp                     ALLOW       Anywhere                  
25                         ALLOW       Anywhere                  
25/tcp (v6)                ALLOW       Anywhere (v6)             
25 (v6)                    ALLOW       Anywhere (v6)             

答案1

尝试通过 IPv6 进行连接,它应该可以从外部看到,而不需要端口转发。IPv4 可能需要在路由器上配置端口转发。

如果您打算将邮件发送到您无法控制的服务器,则应获取静态 IP 地址。ISP 经常会阻止动态 IP 上的端口 25 流量,以防止垃圾邮件机器人工作。

尝试将服务器配置为监听端口 587(提交)。该端口被阻止的可能性较小,但可能需要在路由器上转发。

认真考虑使用中继服务器来发送邮件。您的 ISP 可能有一个您可以使用的中继服务器。

答案2

尝试使用 ip 地址而不是 进行本地连接localhost。您的 netstat 输出表明您的 smtp 服务器未在 ipV4 上监听,仅在 V6 上监听。检查您的配置(启用 V4)或确保您具有完整的 V6 连接并在网络上的其他主机上启用了 V6。

相关内容