我正在尝试找出如何将入站IPv4连接连接到侦听CentOS盒子上IPv6端口的端口。
要在普通CentOS 7服务器上演示:
bindV6only
已禁用 $ cat /proc/sys/net/ipv6/bindv6only
0
nc -lvn6p 80
telnet 127.0.0.1 80
尝试127.0.0.1 ... telnet:连接到地址127.0.0.1:连接被拒绝
socat TCP4-LISTEN:80,reuseaddr,fork TCP6:[::1]:80
参考:https : //sysctl-explorer.net/net/ipv6/bindv6only/
参考:https : //stackoverflow.com/questions/6343747/ipv6-socket-creation
我不知道这是否是您的问题,但是yum install nc
在centos 7上运行将安装nmap-ncat
,它会SOL_IPV6/IPV6_V6ONLY
在ipv6套接字上设置套接字选项本身:
# strace -e trace=setsockopt nc -lvn6p 80
Ncat: Version 7.50 ( https://nmap.org/ncat )
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
Ncat: Listening on :::80
如果省略-6
和-4
选项,它将绑定两个不同的ipv6
和ipv4
套接字:
# strace -e trace=bind,setsockopt nc -lvnp 80
Ncat: Version 7.50 ( https://nmap.org/ncat )
setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(3, SOL_IPV6, IPV6_V6ONLY, [1], 4) = 0
bind(3, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, 28) = 0
Ncat: Listening on :::80
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
bind(4, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("0.0.0.0")}, 16) = 0
Ncat: Listening on 0.0.0.0:80
显然,nmap
人们不是Linux双堆栈套接字功能的忠实拥护者;-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句