У мене працює 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-з'єднання з громадського ip, наприклад, 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.
Інформація про перевірку циклу, цікаво. Спробував це ... не працював. Перекреслено, щоб перевірити, чи я зробив все правильно - я маю.
Мені цікаво, чи є рішення, використовуючи NAT, або іншим способом переадресації портів - якщо я пересилаю 127.0.0.1:port до 1.2.3.4:port, чи це буде працювати? Зважаючи на те, що додаток прослуховує 0.0.0.0:port, він підключатиме з'єднання 1.2.3.4:port
Файл HOSTS містить localhost 127.0.0.1 - однак, файл хостів використовується лише у пошукових іменах хостів. У цьому випадку наша програма не шукатиме жодного імені хоста, оскільки IP-адреса 127.0.0.1 в неї жорстко кодується (а не localhost ім'я хоста). Таким чином, файл HOSTS тут не грав.
Що стосується портів вище 1024 (ви думаєте, можливо, ви посилаєтесь на проблему MaxUserPort?) Я перевірив це, спробувавши просте підключення до порту 445 - працює з 127.0.0.1, не працює, коли я підключаюся з джерела IP 1.2.3.4. 445 - це стандартна послуга Windows, так що має працювати!
В даний час на машині не працює NAT або RRAS ... цікавилося, чи існує спосіб зробити перенаправлення - я гадаю, що він не буде працювати, оскільки стек TCP / IP відхилить пакет, перш ніж він дістанеться до інтерфейсу петлевого звороту для повторного маршруту.
Друк маршруту, який я перевірив - здається нормальним, спочатку маршрутизовані IP-адреси загального користування, потім нарешті 127.0.0.0 маска 255.255.255.0 і 127.0.0.1 маска 255.255.255.255 обидва до зворотного циклу.
Редагувати Здається, я знайшов відповідь щодо причини проблеми. Я використав eventvwr.msc, включив журнал Winsock, відключив інші сервіси, просто спробував цей тест на з'єднання. Отримала помилку, яка в шістнадцятковому розмірі відображалась на STATUS_INVALID_ADDRESS_COMPONENT, коли я переглядав її в Google
Це мене змусило: http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/d7cb6138-3f67-4467-a068-8325f56739ba
Що підтвердило, що це зміна дизайну в WFP для Vista / 7 / Server 2008 [платформа фільтрації Windows].
[Дивіться відповідь Анупами Васант]
Схоже, мені доведеться пройти важкий шлях і переписати код [важко, бо це означає мати справу з менеджерами!]
Дякуємо, що допомогли мені знайти / підтвердити проблему!