Saya menjalankan Windows Server 2008 R2, kami memiliki aplikasi yang menghubungkan dari (mengikat ke) IP publik di server ke 127.0.0.1:8334 [terhubung ke layanan mendengarkan pada 0.0.0.0:8334]
Di Windows 2003, tidak ada masalah dengan ini. Kita dapat terhubung menggunakan TCP dari 1.2.3.4 [mis.] Ke 127.0.0.1:8334 baik-baik saja.
Pada Windows 2008, kami menemukan bahwa koneksi TCP dari ip publik misalnya 1.2.3.4 ke 127.0.0.1:8334 gagal, bahkan. tetapi layanan menerima koneksi dari 127.0.0.1 ke 127.0.0.1:8334, dan 127.0.0.1 ke 1.2.3.4:8334.
Mencoba mematikan firewall Windows, mengkonfigurasi pendataannya dll (tidak ada entri log yang berguna), tidak berhasil. Apakah ini masalah dengan tumpukan jaringan baru?
suntingan
1.2.3.4 sedang mencoba untuk terhubung ke localhost [127.0.0.1] pada mesin yang sama
File host adalah file host Windows 2008 default.
Info cek loopback, menarik. Mencoba ... tidak berhasil. Periksa silang untuk memverifikasi bahwa Id melakukan semuanya dengan benar - Saya punya.
Saya bertanya-tanya apakah ada solusi menggunakan NAT atau cara lain untuk meneruskan port - jika saya meneruskan 127.0.0.1:port ke 1.2.3.4:port, apakah itu akan berhasil? Mengingat bahwa aplikasi mendengarkan pada 0.0.0.0:port ia akan mengambil koneksi di 1.2.3.4:port
File HOSTS memang mengandung localhost 127.0.0.1 - namun, file host hanya digunakan pada pencarian hostname. Dalam hal ini, aplikasi kita tidak akan mencari nama host apa pun, karena alamat IP 127.0.0.1 di-hardcode ke dalamnya (daripada nama host host lokal). Jadi file HOSTS tidak akan ikut bermain di sini.
Adapun port di atas 1024 [pikir Anda merujuk pada masalah MaxUserPort mungkin?] Saya menguji ini dengan mencoba koneksi sederhana ke port 445 - bekerja dari 127.0.0.1, tidak bekerja ketika saya terhubung dari IP sumber 1.2.3.4. 445 adalah layanan Windows standar, jadi seharusnya berfungsi!
Saat ini tidak menjalankan NAT atau RRAS di mesin ... bertanya-tanya apakah ada cara untuk melakukan rute ulang - Saya kira itu tidak akan berfungsi karena TCP / IP stack akan menolak paket sebelum mencapai antarmuka loopback untuk rute kembali.
Rute cetak saya telah memeriksa - tampaknya baik-baik saja, IP publik dialihkan pertama, kemudian akhirnya 127.0.0.0 netmask 255.255.255.0 dan 127.0.0.1 netmask 255.255.255.255 keduanya untuk loopback.
Sunting Sepertinya saya telah menemukan jawaban untuk alasan masalah. Saya menggunakan eventvwr.msc, mengaktifkan logging Winsock, mematikan layanan lain, hanya mencoba tes koneksi ini. Mendapat kesalahan yang dipetakan secara heksadesimal menjadi STATUS_INVALID_ADDRESS_COMPONENT ketika saya meng-google-nya.
Itu membuat saya ke: http://social.msdn.microsoft.com/Forums/en-US/wfp/thread/d7cb6138-3f67-4467-a068-8325f56739ba
Yang mengkonfirmasi bahwa ini adalah perubahan menurut desain di WFP untuk Vista / 7 / Server 2008 [platform pemfilteran windows].
[Lihat tanggapan oleh Anupama Vasanth]
Sepertinya saya harus menempuh rute yang sulit dan menulis ulang kode [sulit karena itu berarti berurusan dengan manajer!]
Terima kasih telah membantu saya menemukan / mengkonfirmasi masalah ini!
Jawaban:
Jangan lupa, di windows 2008, firewall dinyalakan secara default. Ini berpotensi dapat memblokir semua & semua lalu lintas bahkan pada antarmuka loopback. Selain itu, jika Anda mengikat ke 0.0.0.0, Anda menerima koneksi pada SEMUA antarmuka. Firewall masih akan memblokir ini. Anda dapat mencoba mematikan firewall saat menguji ... dan kemudian nyalakan kembali. Saya belum memiliki masalah yang menghubungkan ke berbagai program yang saya kembangkan di 127.0.0.1.
sumber
Coba sambungkan ke 127.0.0.2 di Vista / win2k8 dan di atasnya - terdengar lucu tapi berfungsi. Memiliki hasil positif dengan ini di masa lalu
sumber
Saya paling yakin bahwa itu terhubung dengan fitur keamanan cek loopback meskipun saya tidak bisa mendapatkan detail mendalam bagaimana itu diterapkan, hanya bagaimana mengatasinya:
http://chillicode.wordpress.com/tag/loopback-check/
Dan untuk "BERLAKU UNTUK" Windows 2008 lihat http://support.microsoft.com/kb/896861
Nah, apa sebenarnya yang ada di file HOSTS Anda? Saya tidak punya W2008. Apakah maksud Anda tidak ada "127.0.0.1 localhost" di sana?
Saya juga membaca di suatu tempat bahwa pengaturan W2008 default tidak mengizinkan untuk berkomunikasi dengan port yang lebih besar dari 1024.
Anda dapat mengirimkan umpan balik tentang MS Windows Server 2008 langsung ke tim MS melalui
dan mereka akan menjawab
Jika Anda mencoba untuk mematikan "loopback check" melalui metode pengeditan registri maka perlu reboot. Satu lagi - tidak.
NAT di dalam mesin? 127.0.0.1 tidak diteruskan atau dialihkan, saya percaya begitu, ini internal, Anda dapat mencabut kartu jaringan, 1.2.3.4 Anda akan hilang tetapi 127.0.0.1 akan terus ada.
Apa output dari Anda (Jalankan -> cmd -> cetak rute)?
Ada satu momen lagi, saya berpikir, meskipun saya tidak tahu bagaimana menyatukannya.
127.0.0.1 adalah localhost (antarmuka), itu adalah nama berlabel tunggal dan dianggap lokal. 1.2.3.4 adalah nama non-tunggal.
Kemungkinan masalah dengan ini adalah bahwa nama tersebut mungkin dianggap eksternal
Dapatkah Anda mencoba, secara terpisah:
Menonaktifkan (jika diaktifkan dan diaktifkan jika dinonaktifkan) IPv6 pada adaptor jaringan?
Menempatkan beberapa nama label tunggal untuk 1.2.3.4 ke dalam file HOSTS?
Apa deskripsi acara yang sesuai, EventID, dll. Di eventvwr.msc karena kegagalan untuk berkomunikasi dari 1.2.3.4 hingga 127.0.0.1:8334?
Apakah untuk SMB-direct over TCP / IP? untuk berbagi file? CIFS?
Tidak begitu dapat diandalkan ... Itu terus-menerus diretas oleh perbaikan terbaru MS. Baca:
("Penjelajahan NetBIOS di seluruh subnet mungkin gagal setelah memutakhirkan ke Windows Server 2008") - http://blogs.technet.com/b/networking/archive/2008/07/25/netbios-browsing-across-subnets-may-fail -setelah-upgrade-ke-windows-server-2008.aspx? wa = wsignin1.0
Kemudian,
sumber