SVNDrv虚拟网卡替换即可用,SVNDrv虚拟网卡替换即可用

“SVNClient”客户端登录时提示

“用户与对方建立连接超时,配置错误或网络故障,链接VPN网关失败”

设备管理器 --> 网络适配器 --> SVN Adapter V1.0(有个小黄色感叹号),点击属性查看。

解决方法:

1.设备管理器 --> 网络适配器 --> SVN Adapter V1.0(有个小黄色感叹号) 右键禁用。

2.进入C:\Windows\System32\drivers 删除“SVNDrv.sys”。

3.复制新的“SVNDrv.sys”,放到C:\Windows\System32\drivers里。

4.设备管理器 --> 网络适配器 --> SVN Adapter V1.0(有个小黄色感叹号) 右键启用

5.链接VPN客户端则可。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用golang实现tun虚拟网卡读写的示例代码: ```go package main import ( "fmt" "net" "os" "golang.org/x/sys/unix" ) func main() { // 打开tun虚拟网卡设备 fd, err := unix.Open("/dev/net/tun", os.O_RDWR, 0) if err != nil { fmt.Printf("Error opening tun device: %v\n", err) return } // 设置tun虚拟网卡的名称和类型 ifr := &unix.Ifreq{} copy(ifr.IfrnName[:], []byte("mytun")) ifr.IfruFlags = unix.IFF_TUN | unix.IFF_NO_PI _, _, errno := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), unix.TUNSETIFF, uintptr(unsafe.Pointer(ifr))) if errno != 0 { fmt.Printf("Error setting tun device: %v\n", errno) return } // 获取tun虚拟网卡的IP地址和掩码 addr := &unix.Ifreq{} copy(addr.IfrnName[:], []byte("mytun")) _, _, errno = unix.Syscall(unix.SYS_IOCTL, uintptr(fd), unix.SIOCGIFADDR, uintptr(unsafe.Pointer(addr))) if errno != 0 { fmt.Printf("Error getting tun device address: %v\n", errno) return } ip := net.IPv4(addr.IfruAddr[0], addr.IfruAddr[1], addr.IfruAddr[2], addr.IfruAddr[3]) mask := &unix.Ifreq{} copy(mask.IfrnName[:], []byte("mytun")) _, _, errno = unix.Syscall(unix.SYS_IOCTL, uintptr(fd), unix.SIOCGIFNETMASK, uintptr(unsafe.Pointer(mask))) if errno != 0 { fmt.Printf("Error getting tun device netmask: %v\n", errno) return } netmask := net.IPv4(mask.IfruAddr[0], mask.IfruAddr[1], mask.IfruAddr[2], mask.IfruAddr[3]) fmt.Printf("Tun device IP is %s, netmask is %s\n", ip.String(), netmask.String()) // 读取tun虚拟网卡的数据包 buf := make([]byte, 1500) n, err := unix.Read(fd, buf) if err != nil { fmt.Printf("Error reading from tun device: %v\n", err) return } fmt.Printf("Received %d bytes from tun device: %v\n", n, buf[:n]) // 向tun虚拟网卡发送数据包 n, err = unix.Write(fd, []byte("hello world")) if err != nil { fmt.Printf("Error writing to tun device: %v\n", err) return } fmt.Printf("Sent %d bytes to tun device\n", n) } ``` 在以上示例代码中,我们首先使用`unix.Open()`函数打开tun虚拟网卡设备,然后使用`unix.Syscall()`函数调用`ioctl()`系统调用来设置tun虚拟网卡的名称和类型,以及获取tun虚拟网卡的IP地址和掩码。然后,我们使用`unix.Read()`函数从tun虚拟网卡读取数据包,并使用`unix.Write()`函数向tun虚拟网卡发送数据包。 需要注意的是,以上示例代码仅用于演示如何使用golang实现tun虚拟网卡读写,并不能直接运行。完整的实现应该考虑更多的细节和错误处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值