This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux:如何修复 TCP 套接字上的 SYN 泛洪问题?

Guru**** 2582405 points
Other Parts Discussed in Thread: DP83640, OMAP-L138

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/628663/linux-how-to-fix-syn-flooding-on-tcp-socket

Thread 中讨论的其他器件:DP83640OMAP-L138

工具/软件:Linux

你(们)好。

我将 SDK 4.0.0.4与 Linux 内核 v4.9.28搭配使用  

我已更改器件树、U-boot 通过 RMII 连接 PHY、我使用的 PHY 为 DP83640。  

当 Linux 正在引导时、它确实会检测到 PHY 并且链路已启动。  

我在/usr/share/matrix-gui-2.0/apps 中添加了一个 Web 服务器应用程序

 当我运行其中一个 php 文件时、需要使用 Web 客户端打开 TCP 套接字并发送要在 Web 浏览器上显示的数据。

但我遇到以下错误:  

TCP:REQUEST_SOCK_TCP:可能会在端口9001上进行 SYN 泛洪。 正在放弃请求。

请告诉我 IPv4中是否有要更改的设置。

此致、

Mitesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您使用的是哪种 SoC?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    OMAP-L138。

    新版本的 Linux 似乎出现了这一问题。 (SDK 4.0.0.4)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很抱歉、我错过了这个主题。

    是否可以在禁用 SYN Cookie 的情况下进行测试? 您能否尝试 CONFIG_SYN_Cooki=y 和 CONFIG_SYN_Cookies=n、看看哪一个可以提供更好的性能?

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yordan、您好!

    感谢您回来。

    我将在今天晚些时候对此进行尝试、但我想、您的帖子中有拼写错误。  

    我将设置 CONFIG_SYN_Cookies= y、接下来的数量是多少? 我需要将其设置为 n?

    此致、

    Mitesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我已经开始研究这个。

    当前已禁用:
    未设置# CONFIG_SYN_Cookie


    将尝试使用 CONFIG_SYN_Cooki= y
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    提醒一下、看看 Kconfig 文件中的可靠性。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    root@omapl138-lcdk:/usr/share/matrix-gui-2.0/apps/www-coda php server.php
    UDP 套接字已创建
    UDP 套接字绑定正常

    创建 TCP/IP sream 套接字
    TCP 侦听端口
    TCP:REQUEST_SOCK_TCP:可能会在端口9001上进行 SYN 泛洪。 发送 Cookie。 检查 SNMP 计数器。

    CONFIG_SYN_Cookies= y 没有区别。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    请您详细介绍一下。 我应该检查 kconfig 文件吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mitesh、

    我检查了是否存在依赖项。

    使用 SYN_Cookie=y,尝试使用 sysctl -w 增大内核参数 net.ipv4_tcp_max_syn_backlog、net.core.somaxconn 和传递给他 Listen() syscall 的积压大小:
    sysctl -w net.ipv4_tcp_max_syn_backlog=

    有关详细信息、请参阅以下链接:
    access.redhat.com/.../30453
    blog.dubbelboer.com/.../syn-cookies.html

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    我进行了以下更改:sysctl -w net.ipv1.tcp_max_syn_backlog=1000000
    这仍然是抱怨的,但几秒钟后,就开始工作了。

    但是、当我重新启动系统时、它忘记了设置。 您能否告诉我、我可以在哪里为其进行非易失性更改。

    此致、
    Mitesh
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Mitesh、

    最新 SDK 使用 systemd。
    您可以创建 systemd 服务、在每次启动电路板时设置此参数。 请参阅此处如何设置 systemd 服务:
    e2e.ti.com/.../2055116

    此致、
    Yordan