隧道丢弃第一个数据包

隧道丢弃第一个数据包

我想将 GELF(Graylog 扩展日志格式)日志消息从 logstash 实例发送到 Graylog。但由于 logstash 中的 GELF 输出不支持 TLS,因此我想使用 stunnel 来加密通信。

我设置了一个测试环境,它由两个 stunnel、一个客户端、一个服务器和一个模拟接收端(最终是 Graylog)的 netcat 组成。但是,当我配置好一切并通过 stunnel 发送消息时,第一个数据包丢失了。我使用 tshark 捕获了流量,可以看到数据从源发送到 stunnel,但 stunnel 只是用 RST 响应,数据包无处可寻,但第二个数据包传输正常。

我曾尝试将 stunnel 客户端连接到 stunnel 服务器、graylog、HAProxy,但总是出现数据包丢失。

Stunnel 客户端

verify = 0

chroot = /usr/local/var/run/stunnel/
pid = /stunnel.pid

setuid = nobody
setgid = nobody

socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

debug = 7
output = stunnel.log

client = yes

[test]
accept  = 3333
connect = <server>:7777

隧道服务器

cert = /etc/stunnel/stunnel.pem

verify = 0

chroot = /usr/local/var/run/stunnel/
pid = /stunnel.pid

setuid = nobody
setgid = nobody

[test]
accept  = 7777
connect = 4445

logstash 配置

input {
        syslog {
            port => 10514
    }
}
output {
        gelf {
            host => "localhost"
            port => 3333
            protocol => TCP
    }
}

我使用以下方法测试所有功能:

loggen --rate 1 --interval 1 localhost 10514

编辑

通讯的Tshark:

    No.     Time           Source                Destination           Protocol Length Info
      1 0.000000000    127.0.0.1             127.0.0.1             TCP      883    47016 → 3333 [PSH, ACK] Seq=1 Ack=1 Win=342 Len=815 TSval=193491 TSecr=160751

No.     Time           Source                Destination           Protocol Length Info
      2 0.000028908    127.0.0.1             127.0.0.1             TCP      56     3333 → 47016 [RST] Seq=1 Win=0 Len=0

No.     Time           Source                Destination           Protocol Length Info
      3 1.019395050    127.0.0.1             127.0.0.1             TCP      76     47040 → 3333 [SYN] Seq=0 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=194510 TSecr=0 WS=128

No.     Time           Source                Destination           Protocol Length Info
      4 -1525790179.613104197 127.0.0.1             127.0.0.1             TCP      76     3333 → 47040 [SYN, ACK] Seq=0 Ack=1 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=194510 TSecr=194510 WS=128

No.     Time           Source                Destination           Protocol Length Info
      5 1.019427365    127.0.0.1             127.0.0.1             TCP      68     47040 → 3333 [ACK] Seq=1 Ack=1 Win=43776 Len=0 TSval=194510 TSecr=194510

No.     Time           Source                Destination           Protocol Length Info
      6 1.019725293    127.0.0.1             127.0.0.1             TCP      883    47040 → 3333 [PSH, ACK] Seq=1 Ack=1 Win=43776 Len=815 TSval=194510 TSecr=194510

No.     Time           Source                Destination           Protocol Length Info
      7 1.019733354    127.0.0.1             127.0.0.1             TCP      68     3333 → 47040 [ACK] Seq=1 Ack=816 Win=45440 Len=0 TSval=194510 TSecr=194510

[

谢谢!

相关内容