ฉันมีซีลีเนียมทำงานบนเครื่องโฮสต์ และแอปของฉันอยู่ในคอนเทนเนอร์นักเทียบท่า (ภายใน WSL2)
ฉันกำลังพยายามให้แอปเชื่อมต่อกับซีลีเนียมซึ่งกำลังฟังอยู่ที่พอร์ต 4445
มันเคยใช้งานได้ไม่กี่เดือนที่ผ่านมา ฉันคิดว่ามีบางอย่างเปลี่ยนไปใน WSL
โฮสต์กำลังฟังอยู่ที่ 4445:
PS> netstat -ano | ค้นหาstr :4445
TCP 0.0.0.0:4445 0.0.0.0:0 กำลังฟัง 11604
TCP [::]:4445 [::]:0 กำลังฟัง 11604
ฉันสามารถเข้าถึงซีลีเนียมจากเครื่องโฮสต์ windows:
> curl -X โพสต์ http://DESKTOP-HED9HVG:4445/wd/hub
{"สถานะ":".....}
แต่ไม่ใช่จาก WSL2:
$ curl -X โพสต์ http://172.22.241.214:4445/wd/hub
curl: (7) ไม่สามารถเชื่อมต่อกับพอร์ต 172.22.241.214 4445: การเชื่อมต่อถูกปฏิเสธ
ฉันลองใช้หลายตัวเลือกสำหรับ ip ที่ฉันใช้ใน curl:
ไอพีแอดเดรส
eth0 ไอพี
$(ชื่อโฮสต์)
- ที่อยู่ IP จากผลลัพธ์ของ
ipconfig /ทั้งหมด | ค้นหา IPv4
- ผลลัพธ์ที่อยู่ IP ของ
เส้นทาง -n | grep UG | หัว -n1 | awk '{พิมพ์ $2}'
ฉันติดตั้ง tcptraceroute บน WSL และเรียกใช้ นี่คือผลลัพธ์:
$ tcptraceroute $ (ชื่อโฮสต์) 4445
อุปกรณ์ที่เลือก, ที่อยู่ 127.0.0.1, พอร์ต 53915 สำหรับแพ็กเก็ตขาออก
ติดตามเส้นทางไปยัง DESKTOP-WXYZ1 (127.0.1.1) บนพอร์ต TCP 4445, 30 hops สูงสุด
1 DESKTOP-WXYZ1.localdomain (127.0.1.1) [ปิด] 0.075 ms 0.082 ms 0.074 ms
อย่างไรก็ตาม การ ping จาก WSL ไปยังโฮสต์นั้นใช้งานได้:
$ ping $ (ชื่อโฮสต์)
PING DESKTOP-WXYZ1.localdomain (127.0.1.1) 56(84) ไบต์ของข้อมูล
64 ไบต์จาก DESKTOP-WXYZ1.localdomain (127.0.1.1): icmp_seq=1 ttl=64 เวลา=0.053 ms
ฉันพยายามปิดการใช้งานไฟร์วอลล์ของ windows ทั้งหมด แต่ก็ไม่ได้ช่วยอะไร ฉันยังเพิ่มกฎใน "Windows Defender Firewall" เพื่อเปิดใช้งานพอร์ต 4445 โดยเฉพาะ มันยังไม่ได้ช่วย
ข้อมูลเกี่ยวกับ WSL:
>wsl -l -v
ชื่อรุ่นของรัฐ
* Ubuntu-20.04 ทำงาน 2
นักเทียบท่าเดสก์ท็อปกำลังทำงาน 2
docker-desktop-data กำลังรัน 2
มีความคิดวิธีแก้ปัญหานี้หรือไม่?