我正在努力研究如何将入站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: Connection to address 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
发布于 2019-04-02 12:45:00
我不知道这是否是您的问题,但是在centos 7上运行yum install nc将安装nmap-ncat,这确实在ipv6套接字上设置了SOL_IPV6/IPV6_V6ONLY套接字选项:
# 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的双堆栈套接字特性的忠实粉丝;)
https://unix.stackexchange.com/questions/509999
复制相似问题