因此,我绑定了一个本地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,
},
}
这将因I / O超时而出现紧急情况。我不确定为什么会发生这种情况,因为此代码昨天在起作用。我能想到的唯一原因是我在网络接口上添加了数千个IP地址,这是否可能导致超时,并且有人知道任何解决方案吗?
编辑:
错误消息:
Get https://myip.addr.space: dial tcp [myip]:0->[2607:5300:203:118:1:0:3:8b50]:443: i/o timeout