首页 > 解决方案 > 绑定到本地 IP 地址时的 i/o 超时

问题描述

所以我绑定了一个本地 IP 地址以在 http 请求中使用。这是我正在使用的代码:

    localAddr, err := net.ResolveIPAddr("ip6", laddr)

    if err != nil {
        log.Fatal(err)
    }

    localTCPAddr := net.TCPAddr{
        IP: localAddr.IP,
    }

    client := &http.Client{
        Transport: &http.Transport{
            Proxy: http.ProxyFromEnvironment,
            DialContext: (&net.Dialer{
                LocalAddr: &localTCPAddr,
                Timeout:   30 * time.Second,
                KeepAlive: 30 * time.Second,
                DualStack: true,
            }).DialContext,
            MaxIdleConns:          100,
            IdleConnTimeout:       90 * time.Second,
            TLSHandshakeTimeout:   10 * time.Second,
            ExpectContinueTimeout: 1 * time.Second,
        },
    }

这会因 ai/o 超时而恐慌。我不确定为什么会发生这种情况,因为这段代码昨天还在工作。我能想到的唯一原因是我向网络接口添加了数千个 IP 地址,这是否会导致超时,有人知道任何解决方案吗?

编辑:
错误信息:

Get https://myip.addr.space: dial tcp [myip]:0->[2607:5300:203:118:1:0:3:8b50]:443: i/o timeout

标签: gonetworkingipv6

解决方案


推荐阅读