Halo Saya menjalankan aplikasi web pada port 8000. Ketika saya mengaksesnya dari server host localhost: 8000 merespons ok, 127.0.0.1:8000 juga berfungsi, tetapi 192.168.1.7:8000 tidak berfungsi. 192.168.1.7 adalah ip dari server saya.
Juga jika saya mencoba untuk pergi ke aplikasi web lain yang berjalan pada port 80 itu berfungsi 192.168.1.7
Saya mengaktifkan ufw firewall dan mengatur ufw default allow. Saya menggunakan server ubuntu 12.04
Adakah saran mengapa saya tidak bisa mengakses aplikasi saya di port 8000 menggunakan ip-address: 8000?
Terima kasih sebelumnya!
netstat -tln | grep 8000
mungkin memberi cahaya pada masalah. Jika alamat lokal server127.0.0.1:8000
bukan0.0.0.0:8000
, maka itu hanya akan dapat dicapai melalui antarmuka loopback.Jawaban:
Seperti yang ditunjukkan oleh @JamesHenstridge, perilaku yang Anda amati bukan karena Ubuntu memblokir aplikasi Anda pada beberapa IP, tetapi karena aplikasi Anda secara eksplisit mengikat hanya ke antarmuka loopback lokal (127.xxx). Setidaknya jika Anda tidak menginstal dan mengatur firewall untuk secara khusus memblokir port itu.
Anda perlu membaca dokumentasi aplikasi Anda untuk melihat apakah ada pengaturan untuk membuatnya mendengarkan pada antarmuka lain (atau pada semua).
sumber
Dalam satu file konfigurasi aplikasi Anda, Anda harus mengatur aplikasi Anda untuk mendengarkan externalIP eksternal: port Anda. Ini berarti ada file konfigurasi di mana Anda dapat menemukan arahan yang memberitahu aplikasi untuk mendengarkan 127.0.0.1:xxxx atau localhost: xxxx Ini adalah IP untuk diubah dengan IP Internal (mis .: 192.168.1.40) atau IP eksternal
Terkadang, IP localhost harus diganti dengan 0.0.0.0:xxxx yang berarti bahwa aplikasi harus menjawab permintaan dari IP apa pun.
Iptables juga dapat membantu meneruskan paket dari IP internal ke IP eksternal.
sumber