You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Amazon Linux 2023的DHCP路由上持久化应用initcwnd/initrwnd配置

如何在Amazon Linux 2023的DHCP路由上持久化应用initcwnd/initrwnd配置

我完全懂你遇到的麻烦——手动改路由参数后DHCP续租就失效,硬编码网关又会搞出重复路由,确实挺闹心的。好在systemd-networkd本身就支持在DHCP动态获取路由时自动套用这些TCP窗口参数,不用折腾脚本或者硬写固定配置。

下面是适配Amazon Linux 2023环境的具体解决方案:

核心思路

别手动添加新路由,也不用硬编码网关信息,而是通过systemd-networkd的drop-in配置,告诉DHCP客户端在获取路由时自动带上initcwnd和initrwnd参数。这样既能保留DHCP的动态配置能力,又能持久化你的TCP窗口设置。

操作步骤

  1. 确认网卡的默认配置文件
    先找到对应网卡(比如你的enX0)的systemd默认网络配置文件,通常在/usr/lib/systemd/network/目录下,文件名类似10-enX0.network。可以用以下命令查看:

    ls /usr/lib/systemd/network/ | grep enX0
    
  2. 创建drop-in配置目录
    为了不修改系统默认配置,我们用drop-in方式添加自定义设置。创建对应配置文件的子目录:

    mkdir -p /etc/systemd/network/10-enX0.network.d
    

    (注意把10-enX0.network替换成你实际查到的文件名)

  3. 编写自定义配置文件
    在刚才创建的目录下新建一个配置文件,比如20-tcp-window.conf:

    vi /etc/systemd/network/10-enX0.network.d/20-tcp-window.conf
    

    写入以下内容:

    [Match]
    Name=enX0
    
    [DHCPv4]
    RouteInitialCongestionWindow=50
    RouteInitialAdvertisedReceiveWindow=50
    

    这个配置的作用是:匹配enX0网卡,在处理DHCPv4返回的路由时,自动将初始拥塞窗口和初始接收窗口设置为50。

  4. 应用配置并验证
    重新加载systemd-networkd配置:

    systemctl reload systemd-networkd
    

    然后重新配置网卡让设置生效:

    networkctl reconfigure enX0
    

    现在查看路由,应该已经带上了目标参数:

    ip route show
    

    你会看到类似这样的输出:

    default via 10.0.0.1 dev enX0 proto dhcp src 10.0.0.211 metric 1024 initcwnd 50 initrwnd 50
    
  5. 验证DHCP续租后的效果
    可以手动触发DHCP续租来测试:

    networkctl renew enX0
    

    再次查看路由,参数应该依然存在,且不会出现重复的默认路由。

补充说明

  • 如果你的环境使用IPv6,只需在配置中添加[DHCPv6]段,同样设置RouteInitialCongestionWindow和RouteInitialAdvertisedReceiveWindow即可。
  • 这种方式完全依赖DHCP的动态配置,不需要硬编码网关、metric等信息,完美适配你的需求。

备注:内容来源于stack exchange,提问作者Bobby Impollonia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 16:28:06