Saya bukan orang paling berpengetahuan luas dengan jaringan, tapi begini ...
Saya telah membuat aplikasi dengan NodeJS dan saya ingin menguji aplikasi pada LAN saya bersama keluarga saya. Aplikasi mendengarkan pada port 1337
untuk koneksi dan saya dapat mengakses aplikasi dengan baik melalui PC saya sendiri dengan mengetik localhost:1337
, 192.168.0.3:1337
atau bahkan http://joel-pc:1337/
ke bilah alamat browser saya.
Saya juga akan menjalankan apache bersama NodeJS, dan saya dapat mengakses denda ini dengan mengetik 192.168.0.3
atau http://joel-pc/
ke bilah alamat peramban asalkan terhubung ke jaringan yang sama.
Sekarang inilah bagian yang aneh; Jika saya menghentikan layanan apache, mengubah aplikasi node saya untuk mendengarkan pada port 80
(http) insted 1337
, itu akan dapat diakses di pc saya dengan mengetik localhost
, 192.168.0.3
atau bahkan http://joel-pc
ke bilah alamat browser saya. Namun, saya masih tidak dapat mengakses NodeJS di PC lain di jaringan saya selain dari milik saya.
Saya sudah mencoba membuat aturan keluar dalam Windows 7 untuk memungkinkan akses ke port 1337, tapi saya masih tidak bisa mendapatkan akses ke server NodeJS saya pada PC lain selain saya sendiri, bahkan jika itu mendengarkan pada port 80. Apakah ada sesuatu yang jelas Saya ketinggalan di sini?
sumber
Jawaban:
Kemungkinan besar aplikasi simpul Anda mengikat ke alamat IP loopback
127.0.0.1
alih-alih "semua IP"0.0.0.0
karena ini adalah perilaku defaultlisten
. Tentukan port dan IP dalam panggilan seperti Andaserver.listen(80, '0.0.0.0');
dan coba lagi.sumber
localhost
berfungsi sebagai string, tetapi pada yang lain Anda harus mengetiknya sebagai127.0.0.1
Dapatkan Anda IP jaringan lokal saat ini dan, jalankan http server seperti ini:
sumber
::
atau0.0.0.0
)Pertama, Anda perlu menambahkan
C:\Program Files (x86)\node
ke daftar aplikasi tepercaya di firewall Anda.Kemudian, di aplikasi simpul Anda, Anda dapat menulis:
atau:
atau:
atau:
atau:
atau:
Masing-masing dari 6 kombinasi ini berfungsi dalam kasus saya: node.js di Windows Server 2016, dilindungi oleh proksi perusahaan.
sumber
Melakukan hal berikut berfungsi untuk saya di PC windows. Coba ini: buka
Selanjutnya cari node.js dalam daftar dan klik ubah pengaturan> Pastikan akses pribadi dicentang dan kemudian klik ok.
sumber
Saya menemukan solusi yang bagus untuk masalah ini. Daripada melakukan semua konfigurasi (Pengaturan firewall, port forwarding dll) Saya menggunakan localtunnel yang merupakan utilitas untuk mengekspos server node lokal melalui Internet. Anda dapat menggunakannya untuk pengembangan, pengujian, tujuan berbagi, hanya saja jangan menggunakannya untuk produksi.
Pertama, Anda harus menginstal localtunnel sebagai berikut:
Setelah itu konfigurasikan aplikasi simpul Anda sehingga server simpul Anda harus berjalan di localhost. Misalnya:
Catat your_port yang dalam kasus saya adalah 3000 , dan mulai server node Anda.
Buka terminal lain dan ketik perintah berikut untuk menjalankan localtunnel.
Setelah ini, di terminal Anda akan mendapatkan URL yang dapat Anda gunakan untuk tujuan pengembangan / pengujian. URL ini akan tersedia di Internet sehingga Anda dapat membaginya dengan orang lain juga. Selama saluran lokal Anda berjalan, orang lain dapat mengakses server simpul lokal Anda.
Untuk opsi / bantuan konfigurasi lebih lanjut, Anda dapat melihat dokumentasi: https://www.npmjs.com/package/localtunnel
sumber