将所有 IPV6 池 /64 地址添加到 Ubuntu 上的 eth0

Add all IPV6 pool /64 addresses to eth0 on Ubuntu

我想将应用程序绑定到网络接口上的不同 IPV6 地址。目前 /64 池已正确路由到我的服务器,我可以 ping 所有地址,但即使将它们添加到配置中,应用程序仍然无法绑定到它们。

对于 ex,我使用以下方式绑定池:

ip route add local 2a01:xx:xx:xx::/64 dev lo

但是当我运行

ip -6 address list

我看不到任何路由地址,所以我将它们一一添加,例如

ip -6 addr add 2a01:xx:xx:xx::1/64 dev eth0

我想我的应用程序无法绑定到它。任何线索我怎么能绕过然后将不得不创建一个带有巨大循环的 bash 脚本?

PS。该应用程序是我正在编写的 Golang 应用程序,但我也使用带有 BindSame 选项的 Tinyproxy 进行了测试,但仍然无法正常工作!

解决方法是在应用程序逻辑中将请求IP添加到当前接口。当然这取决于应用程序的安全措施。

只要所有 IP 都正确路由到服务器

/sbin/ip route add local 2a01:xx:xx:xx::/64 dev lo

对于 ex 在我的例子中使用 Golang

exec.Command("/sbin/ip", "addr", "add", "2a01:xx:xx:xx::1/64", "dev", "eth0").Output()