在Golang中,如果您想实现在接口重启后不会消失的效果,可以考虑使用netlink
库。以下是一个简单的示例代码,演示了如何使用netlink
来添加IP地址并使其在接口重启后保留:
package main
import (
"fmt"
"net"
"syscall"
"github.com/vishvananda/netlink"
)
func main() {
linkName := "eth0"
ipAddr := "192.168.1.100/24"
link, err := netlink.LinkByName(linkName)
if err != nil {
fmt.Printf("Failed to get link: %v\n", err)
return
}
addr, err := netlink.ParseAddr(ipAddr)
if err != nil {
fmt.Printf("Failed to parse IP address: %v\n", err)
return
}
err = netlink.AddrAdd(link, addr)
if err != nil {
fmt.Printf("Failed to add IP address: %v\n", err)
return
}
syscall.Sync() // 将更改写入磁盘以确保持久性
fmt.Println("IP address added successfully")
}
请注意,上述代码需要使用github.com/vishvananda/netlink
库。您可以使用以下命令获取该库:
go get github.com/vishvananda/netlink
这段代码将添加指定的IP地址到指定的网络接口,并通过调用syscall.Sync()
将更改同步到磁盘以确保持久性。这样,在接口重启后,IP地址应该能够保留下来。
请注意,执行此代码需要管理员权限。
内容由零声教学AI助手提供,问题来源于学员提问