linux查看绑定ipv6的端口号,[原创]如何在windows和linux绑定IPV6

脚本方式:

windows系统:

linux系统:wget http://downinfo.myhostadmin.net/vps/setipv6.sh

Usage: ./setipv6.sh -s[-b] ipv6 [ipv6]

OPTIONS:

-s | --single: Binding IPV6

-b | --batch: Batch Binding IPV6

-h | --help: Show Help

执行如下:

添加一个ipv6地址

sh ./setipv6.sh -s 240e:d9:c200:101:7bb2::120

批量添加所有ipv6地址,前面ip是我司后台ipv6列表显示的第一个ip,后面ip是最后一个显示的ip

sh ./setipv6.sh -b 240e:d9:c200:101:7bb2::120 240e:d9:c200:101:7bb2::130

手工处理方法

一、windows

1、启用IPV6,仅支持win7 及以上版本系统(win7、win2008、win2012、win2016支持)(win2003不支持)

130a888638eab5027ad0cb62b9be7726.png

必须勾中“Internet 协议版本6(TCP/IPv6)”

2、下载对应补丁:

我司云服务器可直接在:

下载后直接运行, 下一步,完成后会提示重启系统,需要重启才能正常使用IPV6。

微软官方说明及补丁

3、防火墙配置(可在重启后设置,如果系统防火墙未启用可跳过此步)

在入站规则项启用下图(启用核心网络所有项目/文件和打印机共享(回显请求 - ICMPv6-In))红框中所有项

9329c543d77bd14128cda451d99d6a84.png

94c8a074d2353496241bc074b69d36bd.png

4、配置IPV6测试连通情况。

IPV6地址、网关、dns登录管理中心》业务管理》服务器管理可查看。子网前缀长度为:64

8a1ceb30b5fd23ace15a544de79c0efd.png

二、Linux

以centos7为例

IP配置:

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=211.149.xxx.xxx

NETMASK=255.255.255.0

TYPE=Ethernet

NM_CONTROLLED=no

ONBOOT=yes

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6ADDR=240E:D9:C200:xx:xx::A0/64

IPV6_DEFAULTGW=240e:d9:c200:xx::1

DNS:

/etc/resolv.conf

nameserver 223.5.5.5

nameserver 114.114.114.114

nameserver 240e:56:4000:8000::69

nameserver 240C::6666

重启网卡

service  network   restart

三、配置成功之后,如何测试IPV6是否通。

1.使用命令:ping -6 IPV6地址。

注意若要测试ping IPV6是否正常,服务端和客户端都必须支持并正确配置了IPV6地址。

1fb2fab6c712cf250f7a60f5540d4ab8.png

2.使用第三方网站提供的ping,比如: https://noc.ah.edu.cn/lg/

f873f82af7e76bd3a7bcb8987dad82f9.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以回答这个问题。以下是使用C语言实现UDPIPv6地址和23232口,并接收该口数据的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <arpa/inet.h> #include <netinet/in.h> #define PORT "23232" // 口号 #define BUF_SIZE 1024 // 缓冲区大小 int main() { int sockfd; // socket描述符 struct addrinfo hints, *res, *p; // addrinfo结构体 struct sockaddr_storage client_addr; // 客户地址结构体 socklen_t client_addr_len; char buf[BUF_SIZE]; int num_bytes; memset(&hints, 0, sizeof hints); hints.ai_family = AF_INET6; // 使用IPv6 hints.ai_socktype = SOCK_DGRAM; // UDP协议 hints.ai_flags = AI_PASSIVE; // 使用本机IP地址 // 获取地址信息 if (getaddrinfo(NULL, PORT, &hints, &res) != 0) { perror("getaddrinfo"); return 1; } // 遍历地址信息链表,直到成功或遍历完所有地址信息 for (p = res; p != NULL; p = p->ai_next) { sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol); if (sockfd == -1) { perror("socket"); continue; } if (bind(sockfd, p->ai_addr, p->ai_addrlen) == -1) { close(sockfd); perror("bind"); continue; } break; } // 释放地址信息链表 freeaddrinfo(res); if (p == NULL) { fprintf(stderr, "failed to bind socket\n"); return 2; } printf("listening on port %s...\n", PORT); // 接收数据并打印 while (1) { client_addr_len = sizeof client_addr; num_bytes = recvfrom(sockfd, buf, BUF_SIZE - 1, 0, (struct sockaddr *)&client_addr, &client_addr_len); if (num_bytes == -1) { perror("recvfrom"); continue; } // 将接收到的数据转换为字符串 buf[num_bytes] = '\0'; // 打印客户地址和接收到的数据 char client_addr_str[INET6_ADDRSTRLEN]; inet_ntop(client_addr.ss_family, &((struct sockaddr_in6 *)&client_addr)->sin6_addr, client_addr_str, INET6_ADDRSTRLEN); printf("received %d bytes from %s: %s\n", num_bytes, client_addr_str, buf); } // 关闭socket close(sockfd); return 0; } ``` 此代码会本机IPv6地址和23232口,并接收该口的数据。你可以将代码保存为文件,使用以下命令编译并运行: ``` $ gcc udp_server.c -o udp_server $ ./udp_server ``` 当接收到数据时,程序会打印客户地址和接收到的数据。你可以使用其他设备发送UDP数据包到本机的IPv6地址和23232口,然后在终上观察程序的输出。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值