我正在使用WSL2运行Windows 10并安装了Docker。我创建了一个Docker容器,并且可以从该容器中ping和ssh到与Windows主机位于同一物理LAN上的主机,但是arping只是表面上平平。
在Windows上从命令提示符启动容器的示例:
user@HOST C:\Users\user>wsl --list --verbose
* Ubuntu Running 2
docker-desktop Running 2
docker-desktop-data Running 2
user@HOST C:\Users\user>bash
user@host:~$ sudo docker run -it --rm alpine:3.12.0
/ # ping -c1 -w1 192.168.32.21
PING 192.168.32.21 (192.168.32.21): 56 data bytes
64 bytes from 192.168.32.21: seq=0 ttl=37 time=1.588 ms
--- 192.168.32.21 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 1.588/1.588/1.588 ms
/ # arping -c1 -w1 192.168.32.21
ARPING 192.168.32.21 from 172.17.0.4 eth0
Sent 1 probe(s) (0 broadcast(s))
Received 0 response(s) (0 request(s), 0 broadcast(s))
我尝试使用默认网络和'--net = host'运行容器;相同的结果。上面示例中的'-c1 -w1'选项简洁明了。删除它们会导致arping超时。
任何建议/建议将不胜感激。我真的需要从容器内部进行琶音工作。
最佳答案
因此,通常ARP仅在客户端连接到的本地LAN网段上起作用,它不会遍历任何分组路由器。
查看您那里的输出,您尝试从172.17.0.4转到192.168.32.21,它将位于不同的子网中,因此ARP无法正常工作。
关于windows - 如何从Windows上运行的Docker容器中设置LAN端点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64574780/