标签: timeout

为什么我的 ssh 超时因网络位置而异?

当我从家里通过 ssh 连接到我们的一台办公室服务器(运行 Fedora 10)时,我的会话在相当短的活动时间(5 分钟左右)后超时。我试过TcpKeepAlive在客户端使用,没有效果。

我不明白的是,如果我在公司 LAN 上的办公室,我可以让会话整天处于非活动状态而不会超时,因此这种行为似乎取决于我的位置。

任何想法为什么会发生这种情况以及如何在我不在 LAN 上时防止超时?如果有帮助,我正在 Mac OSX 上使用终端客户端。

更新- 戴夫·德拉格 (Dave Drager) 建议使用ServerAliveInterval非零设置TcpKeepAlive=no对我有用。关于其他一些答案,ClientAliveMac OSX SSH 客户端不接受 ... 设置。

linux ssh fedora timeout mac-osx

15
推荐指数
1
解决办法
9872
查看次数

SSH 连接因“写入失败:管道损坏”而冻结

我正在通过 SSH 从 Ubuntu 11.04 机器连接到 CentOS 5.5 机器。

当它处于活动状态时(即没有延迟或丢失),连接似乎按预期工作,但如果它处于非活动状态一段时间,它将冻结并变得无响应。最终将返回错误消息“写入失败:管道损坏”,我将返回本地计算机的提示。

我可以做些什么来帮助调试这个问题,找出发生了什么,并解决这个问题?作为一名开发人员,这让我的生活变得痛苦,不得不不断地重新连接。

ubuntu ssh timeout centos

12
推荐指数
2
解决办法
2万
查看次数

浏览器如何处理多个 IP

当浏览器获取给定主机名(例如 ip1 和 ip2)的多个 A 记录并且其中一个无法访问时,有人可以指导我了解有关确切浏览器行为的信息。

我对确切的细节感兴趣,例如(但不限于):

  1. 浏览器会从操作系统获得 2 个 IP,还是只会获得一个?
  2. 浏览器将首先尝试哪个 ip(随机或总是第一个)?现在,假设浏览器以失败的 ip1 启动
  3. 浏览器会尝试多长时间 ip1 ?
  4. 如果用户在等待 ip1 时点击“停止”,然后点击刷新
    • 浏览器会尝试哪个 IP?
  5. 当它超时时会发生什么 - 它会开始尝试 ip2 还是给出错误?(如果出现错误,当用户点击刷新时浏览器将尝试哪个 ip)。
  6. 当用户点击刷新时,任何浏览器都会尝试新的 DNS 查找吗?

现在让我们假设浏览器首先尝试使用 ip2。

  1. 对于下一个页面请求,浏览器是否仍然使用ip2,或者它可能会随机切换ips?
  2. 浏览器在其缓存中保留 IP 多长时间?
  3. 当浏览器发送一个新的 DNS 请求并获得相同的 ips 时,它会继续使用相同的已知正在工作的 IP,还是该过程从头开始,它可能会尝试两者中的任何一个?

当然,这一切都可能取决于浏览器,也可能因版本和平台而异,我很乐意提供最多的细节。

这样做的目的 - 我试图了解当使用基于循环 DNS 并且其中一台主机出现故障时,用户会体验到什么。

拜托,我不是在问 DNS 负载平衡有多糟糕,请不要回答“不要这样做”、“这是一个坏主意”、“您需要心跳/代理/BGP/任何东西”等等。

domain-name-system failover timeout

11
推荐指数
1
解决办法
1万
查看次数

为 cron 作业设置超时

Ubuntu Linux cron(Vixie cron?)是否支持为其作业设置超时?

具体来说,该进程将在 X 秒后被终止,除非它到那时成功完成。

我遇到过一些由于网络连接和各种问题而导致任务挂起的情况。除非您手动清理并杀死它们,否则该过程将永远挂起。

linux ubuntu timeout cron

11
推荐指数
1
解决办法
2万
查看次数

使用 Linux/Systemd 增加启动时的磁盘检测超时

我有一台有很多磁盘的机器,还有一个 HBA 模式下的额外 SAS 控制器。这似乎导致 Linux 在磁盘实际出现之前在 initramfs 中思考至少 8-10 秒。磁盘检测超时时间为 10 秒。这会导致 BTRFS/MDADM/etc 无法挂载我系统中的 RAID1,将我置于紧急 shell 中,从那里我可以实际挂载磁盘并继续正常工作。

我的问题是,如何从 10 秒增加启动时的超时时间?它在systemd中吗?是在udev吗?别的地方?我不确定从哪里开始寻找,谷歌搜索这个问题似乎主要是让人们希望提高 I/O 超时或其他一些(scsi/lun/etc)超时,但我不是在寻找那个。

linux timeout boot btrfs systemd

11
推荐指数
1
解决办法
2038
查看次数

太多的 TIME_WAIT 状态连接!

我一整天都在到处阅读有关此内容的信息,从我收集到的信息来看,TIME_WAIT 是一种相对无害的状态。即使数量太多,它也应该是无害的。

但是,如果他们跳到我过去 24 小时看到的数字上,那就真的有问题了!

[root@1 ~]# netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n
  1 established)
  1 Foreign
 12 CLOSE_WAIT
 15 LISTEN
 64 LAST_ACK
201 FIN_WAIT2
334 CLOSING
605 ESTABLISHED
816 SYN_RECV
981 FIN_WAIT1
26830 TIME_WAIT
Run Code Online (Sandbox Code Playgroud)

这个数字从 20,000 到 30,000+ 不等(到目前为止,我看到的最大值是 32,000)。让我担心的是,它们都是来自各种随机位置的不同 IP 地址。

现在这应该是(或应该是)DDoS 攻击。我知道这是事实,但我不会深入研究无聊的细节。它最初是一个 DDoS,它确实影响了我服务器的性能几分钟。在那之后,一切都恢复了正常。我的服务器负载正常。我的网络流量是正常的。没有服务器资源被滥用。我的网站加载正常。

我也禁用了 IPTABLES。这也有一个奇怪的问题。每次我启用防火墙/iptables 时,我的服务器开始遇到数据包丢失。很多。大约 50%-60% 的数据包丢失。它会在启用防火墙后的一个小时或几个小时内发生。一旦我禁用它,我会测试来自所有位置的 ping 响应,从开始清理并再次稳定下来。很奇怪。

自昨天以来,TIME_WAIT 状态连接一直在这些数字上波动。24 小时以来,我一直有这种感觉,虽然它没有以任何方式影响性能,但已经足够令人不安了。

我当前的 tcp_fin_timeout 值为 30 秒,默认值为 60 秒。然而,这似乎根本没有帮助。

任何想法,建议?任何东西都将不胜感激,真的!

timeout centos

10
推荐指数
2
解决办法
3万
查看次数

mod_proxy_ajp (70007)指定的超时时间已过期:ajp_ilink_receive()无法接收报头

我在 Tomcat 中使用 mod_proxy_ajp 并且收到以下错误:

(70007) 指定的超时已过期:ajp_ilink_receive() 无法接收标头

我该如何解决?

tomcat timeout mod-proxy-ajp apache-2.2

10
推荐指数
1
解决办法
3万
查看次数

tcptrack 显示 SYN_SENT 连接,这是否意味着 SYN 包到达了服务器?

我们的服务器遇到了严重的连接超时问题,所以我们用tcptrack跟踪tcp连接

我们发现,如果客户端开始连接到服务器,tcptrack 显示连接,但处于 SYN_SENT 状态,并且netstat -nat什么也不显示。(tcptrack & netstat 都在服务器上运行)

  1. 这是否意味着syn请求到达了服务器?没有发回同步/确认?
  2. 为什么 tcptrack 可以报告此连接但 netstat 不能?
  3. 一般apache无法与客户端建立连接可能是什么问题?

ab在同一个内网中做了一个基准测试,到指定的网卡,它处理了 10000 个并发连接和 400000 个请求

ps:这不是每次都发生,但确实发生了很多

pps:有没有什么好的工具可以追踪tcp连接丢失的地方?

timeout connection tcp

9
推荐指数
1
解决办法
8万
查看次数

Haproxy - 超时 http 请求 vs 超时 http-keep-alive vs 超时服务器

我正在努力思考 haproxy 选项的方式

timeout http-request <timeout>
timeout http-keep-alive <timeout>
timeout server <timeout>
Run Code Online (Sandbox Code Playgroud)

彼此互动。我在位于 haproxy 负载均衡器后面的两个应用服务器上运行一个 Apache 网站。现在我没有启用 keep-alive,但我一直在尝试启用它,因为我认为它有助于优化网站。我的目标是为浏览器和 haproxy 之间的连接启用 keep-alive,但禁用 haproxy 和 apache 之间的 keep-alive。我用

option http-server-close
Run Code Online (Sandbox Code Playgroud)

现在我正在研究设置保持活动超时。我一直在研究超时 http-request 选项、超时 http-keep-alive 选项和超时服务器选项的haproxy 手册。如果我正确理解手册,超时 http-keep-alive 是在新请求之间保持连接打开的时间,超时 http-request 是在关闭连接之前等待响应标头的时间。但我似乎无法弄清楚的是超时服务器规定的内容。我想说超时服务器是等待完整响应的时间,但有人可以确认吗?如果我是对的,超时服务器是等待完整响应的时间,那么我是否正确,它不应该对保持活动超时设置有任何影响?

这是我正在修改的 haproxy 配置:

global
    maxconn 4096
    pidfile /var/run/haproxy.pid
    daemon

defaults
    mode http
    retries 3
    option redispatch
    maxconn 5000        
    timeout connect 5000
    timeout client 300000
    timeout server 300000        

listen HTTP *:80
    mode http
    cookie HTTP insert nocache
    balance roundrobin   
    #option httpclose …
Run Code Online (Sandbox Code Playgroud)

timeout haproxy keepalive keep-alive apache-2.2

9
推荐指数
1
解决办法
3万
查看次数

通过 SSH 连接的 AWS EC2 超时

我刚刚开始使用 Amazon 的免费试用版,并按照“启动 Amazon EC2 实例”指南来设置 t2.micro 实例,但我无法通过 SSH 连接到它。我已经为安全组设置了入站规则,以允许从我的本地 IP 进行 SSH 访问,并尝试通过 Putty 和 Cygwin+openssh 进行连接,但两种方式都失败并出现超时错误:

输出 ssh -vvv

$ ssh -i .ssh/aws-general.pem ubuntu@REDACTED.sa-east-1.compute.amazonaws.com -vvvvvvvv
OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014
debug2: ssh_connect: needpriv 0
debug1: Connecting to REDACTED.sa-east-1.compute.amazonaws.com [REDACTED] port 22.
debug1: connect to address REDACTED port 22: Connection timed out
ssh: connect to host REDACTED.sa-east-1.compute.amazonaws.com port 22: Connection timed out
Run Code Online (Sandbox Code Playgroud)

如何获得对我的实例的 SSH 访问权限?

编辑:尝试连接 Java 客户端并通过 Ubuntu 机器,两者都以相同的方式超时。

入站规则: ssh:我的 ip http:anywhere https:anywhere 出站规则:所有流量:任何地方

ssh timeout amazon-web-services

9
推荐指数
1
解决办法
4万
查看次数