我遇到了一个让我抓狂的问题。我有一台服务器,在尝试了各种 iptable 规则几次之后,我刷新了 iptable 规则并将默认策略设置为接受。
输出$ sudo iptables -L
:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我确实有 Postfix 在监听端口,如下所示$ sudo netstat -tulnp
:
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 9639/master
当我从本地机器运行 nmap 时$ sudo nmap -p 25 <server-ip>
:
PORT STATE SERVICE
25/tcp filtered smtp
当我从服务器本身运行 nmap 时$ sudo nmap -p 25 localhost
:
PORT STATE SERVICE
25/tcp open smtp
当我从本地计算机远程登录到服务器时,连接超时。但如果我远程登录到服务器本身,$ telnet localhost 25
则会看到:
Connected to localhost.
Escape character is '^]'.
220 <server-domain> ESMTP Postfix
我真的束手无策了。我在这个网站和其他 stack-exchange 上找到了一些关于类似问题的帖子,但问题似乎是服务没有运行,也没有在端口 25 上监听。但从 netstat 命令中可以看到,postfix 进程正在监听此服务器上的端口 25。
有人可以给我指点下一步该尝试什么吗?
$ sudo tcpdump -n port 25
哦,在尝试连接时也尝试了。但没有捕获到数据包。但是当我从服务器本身连接时,tcpdump 捕获了数据包$ telnet localhost 25
。
答案1
许多 ISP 不允许 SMTP 流量。它们会阻止或丢弃所有此类流量。
联系您的 ISP 或托管服务提供商,询问他们是否允许端口 25 流量。