Tôi đang chạy Windows Server 2008 R2, chúng tôi có một ứng dụng kết nối từ (liên kết đến) một IP công cộng trên máy chủ tới 127.0.0.1:8334 [kết nối với một dịch vụ nghe trên 0.0.0.0:8334]
Trong Windows 2003, không có vấn đề gì với điều này. Chúng tôi có thể kết nối bằng TCP từ 1.2.3.4 [ví dụ] đến 127.0.0.1:8334.
Trong Windows 2008, chúng tôi thấy rằng các kết nối TCP từ ip công cộng, ví dụ 1.2.3.4 đến 127.0.0.1:8334, thậm chí không thành công. nhưng dịch vụ chấp nhận các kết nối từ 127.0.0.1 đến 127.0.0.1:8334 và 127.0.0.1 đến 1.2.3.4:8334.
Đã thử tắt tường lửa Windows, định cấu hình ghi nhật ký của nó, v.v. (không có mục nhật ký hữu ích nào xuất hiện), nhưng không có kết quả. Đây có phải là một vấn đề với ngăn xếp mạng mới?
chỉnh sửa
1.2.3.4 đang cố gắng kết nối với localhost [127.0.0.1] trên cùng một máy
Tệp máy chủ là tệp máy chủ Windows 2008 mặc định.
Thông tin kiểm tra loopback, thú vị. Đã thử nó ... không hoạt động. Kiểm tra chéo để xác minh rằng Id đã thực hiện mọi thứ chính xác - tôi có.
Tôi tự hỏi nếu có một giải pháp sử dụng NAT hoặc một số cách khác để chuyển tiếp các cổng - nếu tôi chuyển tiếp 127.0.0.1:port sang 1.2.3.4:port, điều đó có hiệu quả không? Cho rằng ứng dụng nghe trên 0.0.0.0:port, nó sẽ nhận các kết nối trên 1.2.3.4:port
Tệp HOSTS không chứa localhost 127.0.0.1 - tuy nhiên, tệp máy chủ chỉ được sử dụng trên tra cứu tên máy chủ. Trong trường hợp này, ứng dụng của chúng tôi sẽ không tìm kiếm bất kỳ tên máy chủ nào, vì địa chỉ IP 127.0.0.1 được mã hóa cứng vào nó (chứ không phải tên máy chủ localhost). Vì vậy, tệp HOSTS sẽ không xuất hiện ở đây.
Đối với các cổng trên 1024 [có thể bạn nghĩ đến vấn đề MaxUserPort có lẽ?] Tôi đã kiểm tra điều này bằng cách thử kết nối đơn giản với cổng 445 - hoạt động từ 127.0.0.1, không hoạt động khi tôi kết nối từ IP nguồn 1.2.3.4. 445 là một dịch vụ Windows tiêu chuẩn, vì vậy nên hoạt động!
Hiện tại không chạy NAT hoặc RRAS trên máy ... đang tự hỏi liệu có cách nào để thực hiện việc định tuyến lại không - Tôi đoán nó sẽ không hoạt động vì ngăn xếp TCP / IP sẽ từ chối gói trước khi đến giao diện loopback để định tuyến lại.
Bản in tuyến đường tôi đã kiểm tra - có vẻ ổn, các IP công khai được định tuyến trước, sau đó cuối cùng là 127.0.0.0 netmask 255.255.255.0 và 127.0.0.1 netmask 255.255.255.255 để lặp lại.
Chỉnh sửa Có vẻ như tôi đã tìm thấy câu trả lời cho lý do của vấn đề. Tôi đã sử dụng eventvwr.msc, kích hoạt ghi nhật ký Winsock, tắt các dịch vụ khác, chỉ cần thử kiểm tra kết nối này. Có một lỗi trong bản đồ thập lục phân thành STATUS_INVALID_ADDRESS_COMPONENT khi tôi googled nó.
Điều đó đã đưa tôi đến: http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/d7cb6138-3f67-4467-a068-8325f56739ba
Điều này đã xác nhận rằng đây là một thay đổi theo thiết kế trong WFP cho Vista / 7 / Server 2008 [nền tảng lọc windows].
[Xem phản hồi của Anupama Vasanth]
Có vẻ như tôi sẽ phải đi theo con đường khó khăn và viết lại mã [khó vì nó có nghĩa là giao dịch với người quản lý!]
Cảm ơn bạn đã giúp tôi xác định vị trí / xác nhận vấn đề!