Linux/RHEL5:IPv6上的UDP不能在同一台pc上工作
我尝试在同一台pc上设置具有UDP和IPv6的netcat服务器/客户端 以下是我电脑上的界面:Linux/RHEL5:IPv6上的UDP不能在同一台pc上工作,linux,sockets,udp,ipv6,Linux,Sockets,Udp,Ipv6,我尝试在同一台pc上设置具有UDP和IPv6的netcat服务器/客户端 以下是我电脑上的界面: [root@rh55hp360g7ss7 trunk_dir]# ifconfig eth0 Link encap:Ethernet HWaddr xxx inet addr:192.168.255.166 Bcast:192.168.255.255 Mask:255.255.255.0 inet6 addr: fe80::1ec1:deff:
[root@rh55hp360g7ss7 trunk_dir]# ifconfig
eth0 Link encap:Ethernet HWaddr xxx
inet addr:192.168.255.166 Bcast:192.168.255.255 Mask:255.255.255.0
inet6 addr: fe80::1ec1:deff:fef3:4870/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:21948499 errors:0 dropped:0 overruns:0 frame:0
TX packets:24300265 errors:0 dropped:0 overruns:0 carrier:0
collisions:360733 txqueuelen:1000
RX bytes:3645218404 (3.3 GiB) TX bytes:1672728274 (1.5 GiB)
Interrupt:162 Memory:f4000000-f4012800
然后启动netcat服务器:
nc -6ul fe80::1ec1:deff:fef3:4870%eth0 5678
和netcat客户端(仍在同一台pc上)
但是,当我在NetCat客户机中键入内容时,没有任何内容传输到服务器
同样的例子也适用于以下情况:
- 我在另一台pc上启动netcat客户端
- 我正在使用TCP而不是UDP(即,当我删除-u选项时)
- 当我使用IPv4而不是IPv6时(即,当我删除-6选项并且使用IPv4地址时)
[root@rh55hp360g7ss7 trunk_dir]# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
fe80::/64 * U 256 0 0 eth0
::1/128 * U 0 265 5 lo
fe80::1ec1:deff:fef3:4870/128 * U 0 10551 1 lo
ff00::/8 * U 256 0 0 eth0
[root@rh55hp360g7ss7 trunk_dir]#
##新增日期:2012-03-13
- 对于::1,它正在工作
- 我在尝试在pc上运行SIP堆栈时也遇到同样的问题
Linux BETESIP02.6.18-194.el5PAE#1 SMP周二3月16日22:00:21 EDT 2010 i686 i686 i386 GNU/Linux这只是红帽和链接本地范围的问题。当使用具有全局作用域的地址时,它将起作用 我试用了Ubuntu 10.4,在这里它也在使用link-local-address 这是我的红帽发行版: [root@BETESIP02sipp]#uname-a
Linux BETESIP02.6.18-194.el5PAE#1 SMP周二3月16日22:00:21美国东部夏令时2010 i686 i686 i386 GNU/Linux本地主机(
::1
)工作吗?我将尝试不使用链接本地地址进行任何操作。绑定地址不应包括区域说明符(%eth0)。还建议使用socat和ip路由代替(而不是netcat,route),因为它们具有更大的灵活性。我没有发现任何错误。可能是一个bug…With::1,它正在工作。如果我省略了区域说明符,则bind()不工作(它似乎填充了sockaddr\u in 6::sin6\u scope\u id字段)。localhost(::1
)工作吗?我将尝试不使用链接本地地址进行任何操作。绑定地址不应包括区域说明符(%eth0)。还建议使用socat和ip路由代替(而不是netcat,route),因为它们具有更大的灵活性。我没有发现任何错误。可能是一个bug…对于::1,它正在工作。如果我省略了区域说明符,那么bind()将不工作(它似乎填充了sockaddr_in6::sin6_scope_id字段)。
[root@rh55hp360g7ss7 trunk_dir]# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
fe80::/64 * U 256 0 0 eth0
::1/128 * U 0 265 5 lo
fe80::1ec1:deff:fef3:4870/128 * U 0 10551 1 lo
ff00::/8 * U 256 0 0 eth0
[root@rh55hp360g7ss7 trunk_dir]#