我的网卡上有 IPv4 和 IPv6 地址,当我使用 curl 发送请求时,我只希望使用相应的 IPv4 或 IPv6,并且没有后备,例如当 IPv6 到 IPv4 发生时。
curl --interface XXXX: c020: XXXX: e601: XXXX: 596c: XXXX: db97 http://ip4only.me/api/
curl: (45) bind failed with error 22: Invalid argument
curl -x http: // [2603: XXXX: 8003: e601: XXXX: 596c: XXXX: db97]: 8080 http://ip4only.me/api/
IPv4,130.XX.XXX.81
如果站点仅接受 IPv4 地址,我会收到错误,就像 --interface 变体一样。
IPv4 转发已关闭。
ubuntu @ app-1: ~ $ sudo grep -r ip_forward / etc
/etc/ufw/sysctl.conf:#net/ipv4/ip_forward=1
/etc/sysctl.conf:#net.ipv4.ip_forward=1
显然,当我通过端口发送它时,无论如何都会发生转发。
答案1
-4
您可以使用和选项覆盖所使用的 IP 协议栈-6
,分别将其限制为 IPv4 或 IPv6。请考虑:
$ curl -6 http://ip4only.me/api/
curl: (6) Could not resolve host: ip4only.me
$ curl -4 http://ip4only.me/api/
IPv4,198.51.100.84,Remaining fields reserved for future use,,,