Linux下sMail伺服器經常無法連接

Linux下sMail伺服器經常無法連接

在此輸入影像描述iredmail我有一個在Centos6.5系統上 搭建的郵件伺服器A。郵件伺服器有一個公共IP aaa。

在本地網路中大約有40~50個作業系統為windows的郵件用戶端,它們都NAT為公網ip ccc(路由器C是linux系統建構的)。另一方面,在同一本地網路中很少有機器使用linux系統。其中一些無法經常與郵件伺服器連線。

例如,我使用帶有 Fedora 19 的桌面到郵件伺服器 443 端口,並使用命令telnet在郵件伺服器上捕獲tcpdump

15:16:55.144222 IP xxx.xxx.xxx.xxx.46989 > xxx.xxx.xxx.xxx.https: Flags [S], seq 939563650, win 29200, options [mss 1460,sackOK,TS val 23633360 ecr 0,nop,wscale 7], length 0
15:17:03.160282 IP xxx.xxx.xxx.xxx.46989 > xxx.xxx.xxx.xxx.https: Flags [S], seq 939563650, win 29200, options [mss 1460,sackOK,TS val 23641376 ecr 0,nop,wscale 7], length 0

但使用 Windows 7,它與 Feodra 19 位於同一集線器上,以 telnet 郵件伺服器 443 端口

15:20:54.484991 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [S], seq 31344922, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
15:20:54.485034 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [S.], seq 1361958840, ack 31344923, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
15:20:54.485558 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 1, win 4380, length 0
15:20:55.685554 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [S.], seq 1361958840, ack 31344923, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 7], length 0
15:20:55.686359 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 1, win 4380, options [nop,nop,sack 1 {0:1}], length 0
15:21:05.122927 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [F.], seq 1, ack 1, win 4380, length 0
15:21:05.123193 IP xxx.xxx.xxx.xxx.https > xxx.xxx.xxx.xxx.49218: Flags [F.], seq 1, ack 2, win 115, length 0
15:21:05.123813 IP xxx.xxx.xxx.xxx.49218 > xxx.xxx.xxx.xxx.https: Flags [.], ack 2, win 4380, length 0

所有的Windows 7和Feodra19都在同一網路環境中,但Windows 7總是成功,而Feodar 19有時會失敗。但是,當我使用具有公共IP bbb到郵件伺服器的Linux伺服器B時telnet,它成功且從未失敗。我考慮是否是linux連接到同一個來源ip的問題。

Windows 本機網路郵件用戶端通常以 3 分鐘間隔連線至郵件伺服器來檢查郵件。不知道對解決問題有用還是沒用。

答案1

我終於自己找到原因了。
這一切都是因為:

net.ipv4.tcp_tw_recycle=1

由於 Windows 的 SYN 套件中始終沒有時間戳選項,而 Linux 的 SYN 套件中始終
有時間戳選項,因此郵件伺服器不會建立帶有錯誤時間戳記的新 TCP/IP 連線請求。

相關內容