Port mendengarkan di localhost: 8000 tetapi tidak pada ip: 8000

9

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!

Boneka
sumber
1
Aplikasi ini mungkin mendengarkan alamat localhost (127.0.0.1) daripada semua alamat lokal (0.0.0.0). Anda belum memberikan informasi yang cukup tentang aplikasi Anda agar orang-orang dapat membantu Anda memperbaikinya.
James Henstridge
Aplikasi saya yang berjalan di port 8000 hanyalah sebuah situs web. Mungkin copy / paste netstat ini akan mengungkapkan lebih banyak tentang jaringan saya:
Marionette
3
Nah, berlari netstat -tln | grep 8000mungkin memberi cahaya pada masalah. Jika alamat lokal server 127.0.0.1:8000bukan 0.0.0.0:8000, maka itu hanya akan dapat dicapai melalui antarmuka loopback.
James Henstridge
periksa iptables Anda

Jawaban:

5

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).

Sergey
sumber
Apakah Anda juga akrab dengan penerusan port pada router Anda? Jika Anda akan menghubungkannya dari internet pada port 8000, Anda perlu meneruskan port 8000 ke mesin ip tersebut.
wlraider70
0

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.

Nicolas Guérinet
sumber