将所有 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()
我想将应用程序绑定到网络接口上的不同 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()