简单看了看 ipv6 相关的 api, 暂时的结论是, 如果想支持 ipv6, 需要在负载均衡层面, 额外添加 ipv6 的服务, 不能一个服务同时支持 ipv4 和 ipv6.
我的结论是对是错, 如果不对请喷
简单看了看 ipv6 相关的 api, 暂时的结论是, 如果想支持 ipv6, 需要在负载均衡层面, 额外添加 ipv6 的服务, 不能一个服务同时支持 ipv4 和 ipv6.
我的结论是对是错, 如果不对请喷
|
codehzDec 15, 2020
1
你这上下文都不写,直接谜语提问?
|
|
oxromanticDec 15, 2020
2
这要看你怎么定义同一个服务?一个 app(单个或多个进程)同时提供 udp tcp 协议,他算同一个服务还是 不同的服务?
|
|
liangchDec 15, 2020
3
啥都没有,还程序员
|
|
msg7086Dec 15, 2020
4
可以。
|
|
TendernessMiaoDec 15, 2020
5
nginx 可以同时支持 ipv4 和 ipv6,不知道是不是你说的意思
|
|
shinciaoDec 15, 2020
6
你的标题是错误的,现代 web 服务器都是支持 IPv4+IPv6 的。
但从正文来看,你似乎在使用某个服务商提供的负载均衡之类的服务,那就要看服务商的支持情况了。 |
|
lithium4010Dec 15, 2020
7
能啊
|
|
bfdhDec 15, 2020
8
不对
|
|
longaiwpDec 15, 2020
9
你能不能先描述一下你在干嘛?
|
|
cloverzrg2Dec 15, 2020
10
可以看出你计算机基础基本为 0
|
|
IMCA1024Dec 15, 2020
11
应该可以吖
我看某些 app 首页 logo 下面还写着支持 ipv6 了 |
|
cheng6563Dec 15, 2020
12
TCP/IP 你看中间有个斜杠,他们其实是分开的
|
|
ragnaroksDec 15, 2020
13
考虑竞争 csgo 吧年度 TOP 吗?
|
|
ZhuzhuchenyanDec 15, 2020
14
从 tcp socket 上来看的话,双栈 socket 是很常见的吧,
简单举个 C#的例子, var listener = new TcpListener(IPAddress.IPv6Any, Constant.TcpPort); listener.Server.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false); 这样这个 tcp listener 就可以在同一个端口同时监听 v4 和 v6 的流量,v4 的地址会被加上 ffff:前缀变成兼容 v6 的 |
|
flynajDec 15, 2020
15
golang 写的软件都同时支持 ip4/v6 的。最简单的一个程序。 无论你用 http://127.0.0.1:800 还是 http://[::1]:800 或者网卡上的其它 IP 都可以访问!
``` package main import ( "net/http" ) func main() { http.ListenAndServe(":800", http.FileServer( http.Dir("."))) } ``` |
|
jinliming2Dec 15, 2020
16
> 简单看了看 ipv6 相关的 api
我想请问的是,IPv6 的什么 API ? 如果从监听端口提供服务的角度来看,通常监听 [::] 而不指定其他选项的话,那么就是 IPv4 和 IPv6 都可以支持访问。(如果监听 [::] 导致 IPv4 不能访问,要检查一下是否设置了 IPv6 Only 的选项,不同语言 /程序配置不一样) 如果是从程序本身的角度来看,如果程序内部对 IP 地址进行了处理,并且只考虑了 IPv4 的情况(比如拿字符串存 IP,只保留了 char[16] 之类的硬编码),那么则需要对程序进行更新。 |
|
cxy4133Dec 16, 2020
17
@Zhuzhuchenyan 正解 hh
|