ฉันกำลังเรียกใช้ Windows Server 2008 R2 เรามีแอปพลิเคชันที่เชื่อมต่อจาก (ผูกกับ) IP สาธารณะบนเซิร์ฟเวอร์ไปที่ 127.0.0.1:8334 [เชื่อมต่อกับบริการฟังใน 0.0.0.0:8334]
ใน Windows 2003 ไม่มีปัญหากับสิ่งนี้ เราสามารถเชื่อมต่อโดยใช้ TCP จาก 1.2.3.4 [เช่น] ถึง 127.0.0.1:8334 ได้ดี
ใน Windows 2008 เราพบว่าการเชื่อมต่อ TCP จากไอพีสาธารณะเช่น 1.2.3.4 ถึง 127.0.0.1:8334 นั้นล้มเหลว แต่บริการยอมรับการเชื่อมต่อจาก 127.0.0.1 ถึง 127.0.0.1:8334 และ 127.0.0.1 ถึง 1.2.3.4:8334
พยายามปิดไฟร์วอลล์ Windows การกำหนดค่าการบันทึก ฯลฯ (ไม่มีรายการบันทึกที่มีประโยชน์ปรากฏขึ้น) เพื่อประโยชน์ นี่เป็นปัญหากับสแต็กเครือข่ายใหม่หรือไม่
การแก้ไข
1.2.3.4 กำลังพยายามเชื่อมต่อกับ localhost [127.0.0.1] บนเครื่องเดียวกัน
ไฟล์โฮสต์คือไฟล์โฮสต์ Windows 2008 ที่เป็นค่าเริ่มต้น
ข้อมูลการตรวจสอบย้อนกลับที่น่าสนใจ พยายามออกมา ... ไม่ได้ผล Crosschecked เพื่อตรวจสอบว่า Id ทำทุกอย่างถูกต้อง - ฉันมี
ฉันสงสัยว่ามีวิธีแก้ปัญหาโดยใช้ NAT หรือวิธีอื่น ๆ ในการส่งต่อพอร์ต - ถ้าฉันส่งต่อ 127.0.0.1:port ไปที่ 1.2.3.4:port จะทำงานได้ไหม ระบุว่าแอปฟังบน 0.0.0.0: พอร์ตจะรับการเชื่อมต่อที่ 1.2.3.4: พอร์ต
ไฟล์โฮสต์มี localhost 127.0.0.1 - อย่างไรก็ตามไฟล์โฮสต์จะใช้กับการค้นหาชื่อโฮสต์เท่านั้น ในกรณีนี้แอปพลิเคชันของเราจะไม่ค้นหาชื่อโฮสต์ใด ๆ เนื่องจากที่อยู่ IP 127.0.0.1 นั้นถูกฮาร์ดโค้ด (แทนที่จะเป็นชื่อโฮสต์ท้องถิ่น) ดังนั้นไฟล์โฮสต์จะไม่เข้ามาเล่นที่นี่
สำหรับพอร์ตที่สูงกว่า 1024 [คิดว่าคุณหมายถึงปัญหา MaxUserPort?] ฉันทำการทดสอบโดยการลองเชื่อมต่อกับพอร์ต 445 อย่างง่าย - ทำงานได้ตั้งแต่ 127.0.0.1 ไม่ทำงานเมื่อฉันเชื่อมต่อจากแหล่ง IP 1.2.3.4 445 เป็นบริการ Windows มาตรฐานดังนั้นควรใช้งานได้!
ขณะนี้ไม่ได้รัน NAT หรือ RRAS บนเครื่อง ... กำลังสงสัยว่ามีวิธีการเปลี่ยนเส้นทางหรือไม่ - ฉันเดาว่ามันจะไม่ทำงานเนื่องจากสแต็ก TCP / IP จะปฏิเสธแพ็กเก็ตก่อนที่จะถึงเส้นทางลูปแบ็ค
พิมพ์เส้นทางที่ฉันตรวจสอบแล้ว - ดูเหมือนว่าดี IP สาธารณะที่กำหนดเส้นทางไว้ก่อนจากนั้นในที่สุด 127.0.0.0 netmask 255.255.255.0 และ 127.0.0.1 netmask 255.255.255.255 ทั้งคู่ไปที่ลูปแบ็ค
แก้ไข ดูเหมือนว่าฉันได้พบคำตอบว่าสาเหตุของปัญหา ฉันใช้ eventvwr.msc, เปิดใช้งานการบันทึก Winsock, ปิดบริการอื่น ๆ , ลองทดสอบการเชื่อมต่อนี้แล้ว มีข้อผิดพลาดซึ่งเป็นเลขฐานสิบหกที่แมปกับ STATUS_INVALID_ADDRESS_COMPONENT เมื่อฉัน googled
ที่ทำให้ฉัน: http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/d7cb6138-3f67-4467-a068-8325f56739ba
ซึ่งยืนยันว่านี่เป็นการเปลี่ยนแปลงตามการออกแบบใน WFP สำหรับ Vista / 7 / Server 2008 [แพลตฟอร์มการกรอง windows]
[ดูการตอบสนองโดย Anupama Vasanth]
ดูเหมือนว่าฉันจะต้องไปเส้นทางยากและเขียนรหัส [ยากเพราะมันหมายถึงการจัดการกับผู้จัดการ!]
ขอบคุณที่ช่วยฉันค้นหา / ยืนยันปัญหา!