我有一个非常奇怪的问题,我想找到一个解决它的起点。
当我打开 VPN(network-manager-vpnc)时,我的 Ubuntu 笔记本电脑(16.04 和 19.04)上出现了这个问题但只能使用我父母的 WiFi。这对我来说是一件非常奇怪的事情。当我在手机上切换到网络共享时,一切都很好(除了非常弱的 GSM 信号:])。此外,问题似乎只出现在 HTTPS 连接上。curl 在 TLS 上挂起:
$ curl https://www.onet.pl/ -v
* Expire in 0 ms for 6 (transfer 0x55cd601785c0)
... <Expire in... repeated many times>...
* Expire in 0 ms for 1 (transfer 0x55cd601785c0)
* Trying 213.180.141.140...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x55cd601785c0)
* Connected to www.onet.pl (213.180.141.140) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
但是当使用 HTTP 时:
$ curl onet.pl
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
它返回一个响应。
知道哪里出了问题吗?如果您需要更多信息来帮助,请告诉我。
答案1
这可能是因为 WI-FI 路由器丢包了。
当数据包太大时就会发生这种情况。
尝试降低 MTU 大小。
如果你的wifi接口名称是wl0:
sudo ifconfig wl0 mtu 1400
此设置无害,重启后不会持久。
如果它有效并且您接受答案,我将更新并解释为什么会发生这种情况 :)
答案2
如果您的提供商正在使用某种使用地址和端口的负载均衡器,例如 RouterOS PCC(每个连接分类器),那么这可能会出现问题,因为它不能很好地与 HTTPS 配合使用。
另一个可能的原因是透明代理,当一个不太有经验的网络管理员尝试对发往 443 端口的数据包进行端口重定向时。但我还没有测试过,所以我不能 100% 确定是否是这种情况。您可以使用简单的 telnet 测试来检查您是否正在通过代理,如这里。