Pemahaman saya tentang artikel ini , per halaman yang membawa saya ke sana *, adalah bahwa saya dapat mengkonfigurasi Windows Firewall untuk memungkinkan semua lalu lintas masuk pada port apa pun yang digunakan oleh executable yang ditentukan.
Saya menyadari bahwa jawaban defacto kemungkinan adalah "Jangan lakukan ini", jadi harap dipahami ; Saya menjalankan Visual Studio dan IIS Express di dalam mesin virtual, dan ingin dapat terhubung dari OS host untuk tujuan pengujian, dan dengan demikian tidak benar-benar peduli dengan implikasi keamanan membuka semua port yang digunakan oleh IIS Express.
Saya membuat aturan masuk dengan Program diatur ke %ProgramFiles% (x86)\IIS Express\iisexpress.exe
, yang merupakan eksekusi berjalan sesuai dengan task manager. Semua spesifikasi aturan lainnya dibiarkan kosong (alamat lokal, alamat jarak jauh, dan port lokal, port jarak jauh apa pun, "semua" pengguna yang diizinkan, "komputer apa saja" yang diizinkan). Namun, koneksi hanya berfungsi jika saya memiliki aturan untuk port tertentu yang dilayani oleh IIS Express.
Karena itu akan membuat hidup saya lebih mudah (dan sebagian besar berdasarkan prinsip karena teknisi mengatakan itu harus bekerja), saya lebih suka tidak perlu menambahkan aturan firewall untuk setiap aplikasi yang saya buat.
* Tugas "Buat aturan yang memungkinkan program untuk mendengarkan dan menerima lalu lintas jaringan masuk pada port apa pun yang diperlukan."
sumber
Jawaban:
Ada beberapa masalah yang Anda alami di sini. Pertama adalah bahwa
iisexpress.exe
sebenarnya bukan proses yang bertanggung jawab untuk mendengarkan lalu lintas HTTP. Fungsi itu diimplementasikanhttp.sys
sebagai bagian mode-kernel dari tumpukan jaringan Windows . (Ini dilakukan karena alasan kinerja. Untuk informasi lebih lanjut, lihat Pengantar Arsitektur IIS .) Oleh karena itu, membuat aturan untukiisexpress.exe
tidak akan melakukan apa pun.Kedua,
http.sys
secara default tidak memungkinkan program berjalan karena non-admin mendengarkan komputer lain. Menurut Melayani Lalu Lintas Eksternal dengan WebMatrix , Anda perlu menjalankan perintah ini dalam prompt perintah administratif untuk memungkinkan semua pengguna mendengarkan mesin lain melaluihttp.sys
:Ganti
MACHNAME
dengan nama host yang akan digunakan untuk menghubungi situs danPORT
dengan port traffic. Saya telah membaca bahwa menggunakan*
bukannya nama host tertentu memungkinkannya mendengarkan semua nama / antarmuka, tetapi saya belum mengujinya secara pribadi, dan beberapa dokumentasi+
malah menggunakannya . Either way, setelah Anda mengatur ACL, Anda kemudian dapat membuat aturan firewall masuk untuk port .Bacaan lebih lanjut: Mengkonfigurasi HTTP dan HTTPS .
Komentar Side: Ada variabel lingkungan sebenarnya yang poin ke versi 32-bit dari Program Files:
%PROGRAMFILES(X86)%
. (Jalan itu bukan masalahmu.)sumber