AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-182307

Matija Nalis's questions

Martin Hope
Matija Nalis
Asked: 2017-03-06 08:05:33 +0800 CST

即使在非交互模式下,Windows 上的 OpenSSH 服务器也拒绝在没有 STDIN 的情况下工作

  • 3

(与这个问题有关)

在 Windows 上使用 sshd 服务器(Win32-OpenSSH)时(使用基于密钥的身份验证进行自动化),除非它具有 STDIN(或 PTY),否则它不起作用。例如,运行这个(从 Debian Jessie openssh 客户端)可以正常工作(返回 windows 用户名):

ssh -4 -T -o Batchmode=yes winserver whoami

但是,这两个没有(它们只是在不执行命令且不返回任何输出的情况下终止):

ssh -4 -T -o Batchmode=yes winserver whoami < /dev/null
ssh -4 -n -T -o Batchmode=yes winserver whoami

这会带来问题,因为无法从没有打开 STDIN 的程序(如cron(8)或atd(8))运行非交互式 ssh 命令。

当使用 Debian openssh 服务器时,它当然可以正常工作。问题只发生在 windows ssh 服务器上(Win32-OpenSSH和FreeSSHD失败。但是Bitvise SSHD似乎工作正常,但我们正在寻找 windows ssh 服务器的免费解决方案;开源、简单和维护是奖励)

这已经被报道了,但是在此期间有人有解决方案或解决方法吗?

windows ssh
  • 2 个回答
  • 2194 Views
Martin Hope
Matija Nalis
Asked: 2017-02-03 03:54:34 +0800 CST

后缀reject_unverified_recipient 自动重试?

  • 1

我们有一个 postfix SMTP 服务器,用于为客户的 Web 脚本中继邮件。Postfix 正在使用带有in 的收件人地址验证(这是必须的,否则会有大量不需要的退回):reject_unverified_recipientsmtpd_recipient_restrictions

smtpd_recipient_restrictions = 
    reject_unknown_recipient_domain
    reject_unverified_recipient
    permit_mynetworks
    reject_unauth_destination
    check_recipient_access hash:/etc/postfix/validrcptto

问题是第一次使用某个电子邮件地址时,会导致450 4.1.1 <[email protected]>: Recipient address rejected: unverified address: Address verification in progress临时错误,客户端应该稍后重试(如RFC 5321的第4.5.4.1节中所定义)

虽然4xx错误在几秒钟内消失(在绝大多数情况下,或被5xx永久错误取代),但客户的 Web 脚本(当然)只尝试一次。

虽然在 Web 脚本中实现(替换SEND_MAIL为while (count++ < 10) { SEND_MAIL; sleep(3) }伪代码)相对微不足道,但不同客户的数量、具有自动升级功能的第三方代码库等)只是一遍又一遍地解释问题是非常耗费资源的......

我想要的是reject_unverified_recipient_after_autoretry=30s不会立即回复的东西RCPT TO,450 Address verification in progress而是会阻塞,等待几秒钟以希望verify(8)完成,然后再试一次,只有450在(比如说)30秒后代码仍然存在时才返回450.

注意:接受来自网络脚本的所有邮件是不可接受的(即使将发件人设置为或一些无人看管/黑洞的邮箱) - 我们真的想要地址验证,并且如果我们知道邮件不会是<>,我们希望网络应用程序出错5xx能够到达收件人。

spam postfix
  • 1 个回答
  • 1750 Views
Martin Hope
Matija Nalis
Asked: 2014-10-27 14:19:30 +0800 CST

bacula 备份非常慢,TCP 套接字处于“unkn-4”状态

  • 2

几个 bacula-fd 客户端正在备份一个 bacula SD(使用大规模 RAID 上的 2G 磁盘文件,而不是磁带),通常同时备份 2-3 个。它工作正常,除非 2 个更大的客户端(每个大约 400-900GB)需要运行完全备份,这会变得非常慢(通常大约 200-2500 KB/s),所以完全备份不会在几天内完成,这是对我们来说有问题(所以我们取消它并使用增量)。

服务器和客户端位于不同的 VLAN/子网中,因此通过另一台具有 VLAN 和少量交换机的 debian wheezy 机器进行路由。所有机器上的 NIC 都是 1Gbps(具有主动-被动网络绑定的机器 - 故障转移对速度没有帮助),交换机也是如此。机器是四核和 8 核,具有 8-64GB RAM,不进入交换,负载在 0.2-2 之间,所以我猜这不是 CPU、I/O 或内存不足。Bacula-sd 也在硬件 RAID 上,似乎没有负载。当时网络也大多是空闲的,所以应该不是带宽拥塞。Bacula 版本是标准 wheezy 5.2.6+dfsg-9,Linux 内核也是标准 wheezy 3.2.60-1+deb7u3。

似乎传输开始得很好(大约 20+ Mbytes/sec,这是对大量小文件的预期),而不是在某一时刻 Send-Q 上升并且在几十秒(或几分钟)内没有下降,并且 netstat 在“unkn-4”计时器中显示套接字,并以指数上升的超时重新启动:

# netstat -tpno   | grep bacula
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name Timer
tcp        0 967688 10.66.3.135:49668   10.66.2.11:9103         ESTABLISHED 2964/bacula-fd   unkn-4 (1.86/0/0)
tcp        0      0 10.66.3.135:9102    10.66.2.11:54499        ESTABLISHED 2964/bacula-fd   keepalive (5882.64/0/0)

然后过了一段时间,数据包似乎又开始了:

# netstat -tpno    | grep bacula
tcp        0  38054 10.66.3.135:49668   10.66.2.11:9103         ESTABLISHED 2964/bacula-fd   on (0.21/0/0)
tcp        0      0 10.66.3.135:9102    10.66.2.11:54499        ESTABLISHED 2964/bacula-fd   keepalive (385.49/0/0)

并且备份继续(status client=blowgun-fd在 bconsole 上确认)。例如:

* status client=axe-fd
newaxe-fd Version: 5.2.6 (21 February 2012)  x86_64-pc-linux-gnu debian 7.0
Daemon started 24-Oct-14 17:27. Jobs: run=0 running=0.
 Heap: heap=683,600 smbytes=761,617 max_bytes=807,280 bufs=396 max_bufs=426
 Sizeof: boffset_t=8 size_t=8 debug=200 trace=1 
Running Jobs:
JobId 12640 Job axe.2014-10-24_23.05.01_40 is running.
    Full Backup Job started: 24-Oct-14 23:05
    Files=2,529,050 Bytes=253,018,715,824 Bytes/sec=1,479,901 Errors=6
    Files Examined=2,529,050
    Processing file: /home/users/novoselo/public_html/~2511/templates/js_corp/images/bg.jpg
    SDReadSeqNo=5 fd=5
Director connected at: 26-Oct-14 21:34

bg.jpg 大小为 1.2MB,它在上面停留了几分钟......

在 director、SD 和文件守护程序配置中,心跳间隔设置为 120,并且似乎工作正常。使用 启用调试跟踪文件setdebug level=200 trace=1 all,我看到:

newaxe-fd: backup.c:371-0 FT_REG saving: /home/users/novoselo/public_html/~2511/templates/js_corp/images/bg.jpg
newaxe-fd: backup.c:469-0 bfiled: sending /home/users/novoselo/public_html/~2511/templates/js_corp/images/bg.jpg to stored
newaxe-fd: crypto.c:607-0 crypto_digest_new jcr=2f01748
newaxe-fd: backup.c:1467-0 No strip for /home/users/novoselo/public_html/~2511/templates/js_corp/images/bg.jpg
newaxe-fd: backup.c:609-0 type=3 do_read=1
newaxe-fd: bfile.c:963-0 open file /home/users/novoselo/public_html/~2511/templates/js_corp/images/bg.jpg
newaxe-fd: backup.c:1194-0 Send data to SD len=65135
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: backup.c:1194-0 Send data to SD len=65562
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0
newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0

strace 似乎证实了这一点:

# strace -tt -ff -s999 -p 3907
Process 3907 attached with 4 threads - interrupt to quit
[pid 27650] 22:25:15.705796 write(5, "[....]"..., 55110 <unfinished ...>
[pid 27661] 22:25:15.706103 select(6, [5], NULL, NULL, {2, 804806} <unfinished ...>
[pid  3912] 22:25:15.706147 restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid  3907] 22:25:15.706168 select(4, [3], NULL, NULL, NULL <unfinished ...>
[pid  3912] 22:25:16.619938 <... restart_syscall resumed> ) = -1 ETIMEDOUT (Connection timed out)
[pid  3912] 22:25:16.620008 futex(0x397d82d0240, FUTEX_WAKE_PRIVATE, 1) = 0
[pid  3912] 22:25:16.620092 futex(0x397d82d0284, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 13229, {1414358746, 620076000}, ffffffff <unfinished ...>
[pid 27661] 22:25:18.513819 <... select resumed> ) = 0 (Timeout)
[pid 27661] 22:25:18.513858 write(15, "newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0\n", 47) = 47
[pid 27661] 22:25:18.513928 select(6, [5], NULL, NULL, {5, 0}) = 0 (Timeout)
[pid 27661] 22:25:23.519025 write(15, "newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0\n", 47) = 47
[pid 27661] 22:25:23.519139 select(6, [5], NULL, NULL, {5, 0}) = 0 (Timeout)
[pid 27661] 22:25:28.524240 write(15, "newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0\n", 47) = 47
[pid 27661] 22:25:28.524317 select(6, [5], NULL, NULL, {5, 0}) = 0 (Timeout)
[pid 27661] 22:25:33.529409 write(15, "newaxe-fd: heartbeat.c:96-0 wait_intr=0 stop=0\n", 47) = 47
[pid 27661] 22:25:33.529508 select(6, [5], NULL, NULL, {5, 0}^C <unfinished ...>

fd 5 是到 bacula-sd 的网络连接,并且在写入时进程被阻塞。研究unkn-4似乎表明它实际上是“零窗口探测计时器待定”。

因此,在我看来,它要么是 bacula-sd 出于某种原因(错误?)或(更可能是恕我直言)某种网络问题而进行节流。

活动以太网适配器似乎没有错误。我尝试使用ethtool禁用卸载和其他功能,但没有帮助。ping -f即使 TCP 中出现问题,也不会丢失数据包:

axe# ping -s1400 -f -c1000 10.66.2.11
--- slingshot.tomsoft.lan ping statistics ---
1000 packets transmitted, 1000 received, 0% packet loss, time 607ms
rtt min/avg/max/mdev = 0.391/0.582/0.672/0.039 ms, ipg/ewma 0.608/0.585 ms

我正在寻找如何进行故障排除(当然最后解决)这个问题的想法?

更新1:即使在调整 TCP 缓冲区后情况也没有好转——只是队列变大了,但仍然阻塞,备份仍然很慢。在查看了更多wireshark转储之后,这似乎是bacula-sd软件问题,并且在这种情况下TCP ZeroWindow是限制TCP的正常内核方式。所以机器似乎可以接收数据,但是 bacula-sd 似乎无法足够快地处理数据,尽管机器没有处于负载状态;这是在 bacula-sd 方面:

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name Timer
tcp   3952353      0 10.66.2.11:9103         10.66.3.132:45226   ESTABLISHED 15839/bacula-sd  keepalive (4863.09/0/0)
# uptime
 05:23:13 up 2 days, 14:40,  2 users,  load average: 0.42, 0.32, 0.27
linux-networking
  • 1 个回答
  • 4498 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve