golang 创建 tun 设备
源码: package main import ( "flag" "fmt" "github.com/pkg/errors" "net" "os" "syscall" "unsafe" ) var ( HostName, _ = os.Hostname() ETH_P_ARP = 0x0806 AF_INET = int32(2) AF_INET6 = int32(10) AF_BRIDGE = int32(7) ) func Htons(i uint16) uint16 { return (i<<8)&0xff00 | i>>8 } type intfReq struct { name [16]byte flags uint16 } // sendIOCtlMessage ioctl system call func sendIOCtlMessage(fd uintptr, request uintptr, ifReq uintptr) error { fmt.Printf("syscall fd %+v, request %+v, ifReq %+v", fd, request, ifReq) _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, fd, request, ifReq) if errno != 0 { fmt