我想将应用程序绑定到网络接口上的不同 IPV6 地址。目前/64 池已正确路由到我的服务器,我可以 ping 所有地址,但即使将它们添加到配置中,应用程序仍然无法绑定到它们。
例如,我使用以下方法绑定池:
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 脚本?
附言。该应用程序是我正在编写的Golang应用程序,但是我也使用带有BindSame选项的Tinyproxy进行了测试,但仍然不起作用!
解决方案是将请求 IP 添加到应用程序逻辑中的当前接口。当然,这取决于应用程序的安全措施。
只要所有 IP 都正确路由到服务器
/sbin/ip route add local 2a01:xx:xx:xx::/64 dev lo
例如,在我的情况下使用 Golang
exec.Command("/sbin/ip", "addr", "add", "2a01:xx:xx:xx::1/64", "dev", "eth0").Output()