我无法使用任何端口通过 telnet 连接到 gmail。我正在使用以下命令:
telnet smtp.gmail.com 25
并出现以下错误:
Trying 74.125.68.108...
Trying 74.125.68.109...
Trying 2404:6800:4003:c02::6d...
telnet: Unable to connect to remote host: Network is unreachable
我用了这使用方法 2 配置我的防火墙,认为这个问题可能是因此引起的。
命令的输出 sudo ufw status
是:
Status: active
To Action From
-- ------ ----
25,53,80,110,443/tcp ALLOW OUT Anywhere
53,67,68/udp ALLOW OUT Anywhere
51413/tcp ALLOW OUT Anywhere
51413/udp ALLOW OUT Anywhere
6969/tcp ALLOW OUT Anywhere
587,2525/tcp ALLOW OUT Anywhere
587,2525/udp ALLOW OUT Anywhere
25,53,80,110,443/tcp (v6) ALLOW OUT Anywhere (v6)
53,67,68/udp (v6) ALLOW OUT Anywhere (v6)
51413/tcp (v6) ALLOW OUT Anywhere (v6)
51413/udp (v6) ALLOW OUT Anywhere (v6)
6969/tcp (v6) ALLOW OUT Anywhere (v6)
587,2525/tcp (v6) ALLOW OUT Anywhere (v6)
587,2525/udp (v6) ALLOW OUT Anywhere (v6)
我甚至尝试使用移动网络而不是局域网,以为我的 ISP 可能阻止了端口,但我遇到了同样的错误。有人能帮忙吗?
更新:
sudo netstat -tunlp
给出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 8390/xinetd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 4310/cupsd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1405/postgres
tcp 0 0 127.0.0.1:5433 0.0.0.0:* LISTEN 1779/postgres
tcp 0 0 127.0.0.1:9306 0.0.0.0:* LISTEN 3275/searchd
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1171/mysqld
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN 2465/dnsmasq
udp 0 0 0.0.0.0:5353 0.0.0.0:* 3414/chrome
udp 0 0 0.0.0.0:5353 0.0.0.0:* 749/avahi-daemon: r
udp 0 0 0.0.0.0:48695 0.0.0.0:* 749/avahi-daemon: r
udp 0 0 0.0.0.0:46846 0.0.0.0:* 9389/dhclient
udp 0 0 127.0.1.1:53 0.0.0.0:* 2465/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 9389/dhclient
udp6 0 0 :::47892 :::* 749/avahi-daemon: r
udp6 0 0 :::5353 :::* 749/avahi-daemon: r
udp6 0 0 :::14340 :::* 9389/dhclient
答案1
许多 ISP 会阻止与端口 25 的连接,作为一种反垃圾邮件措施。我的 ISP (Cox) 就是这样做的,只允许通过端口 25 连接到他们自己的邮件服务器。对于其他电子邮件服务,必须使用备用端口,这可能需要使用 SSL 或 TLS,而不是像端口 25 那样的开放连接。
请查看您的 ISP 网站,特别是有关端口 25 的信息。
首先尝试使用端口 25 连接到您的 ISP 的电子邮件服务器(如果可用)。如果成功,则可能是 ISP 限制。
作为测试,你可以稍微玩一下 netcat:
sudo nc -l -p 25
然后在新的终端中尝试 telnet 连接到 localhost:25。如果您输入的内容反映在 netcat 中,那么这又可能是您的 ISP 的限制。
为了进一步测试和验证这一点,您可以在路由器中为当前 PC 的端口 25 设置端口转发,然后尝试相同的 netcat 技巧。但是,请改为远程登录到您的公共 IP,即端口 25。如果此操作失败,那么几乎可以肯定是 ISP 限制。
注意:许多 ISP 都采用这种做法,包括以下移动提供商威瑞森。因此,仅仅因为它在网络共享连接上无法工作,并不意味着它不是 ISP 问题。
解决方案
可以通过端口 587 以纯文本(无安全协商)连接到 Gmail。因此,您应该会看到它telnet smtp.gmail.com 587
运行正常!