Bagaimana cara mengakses server web lokal di laptop saya dari komputer lain? [Tutup]

37

Saya memiliki aplikasi yang berjalan di komputer saya di 127.0.0.1:3000

Saya ingin mengakses aplikasi itu dari iPhone yang terhubung ke jaringan yang sama. Saya telah melakukan ini sebelumnya tetapi tidak menjelaskan bagaimana saya melakukannya. Ada ide?

Tony
sumber
2
coba rails server -b 0.0.0.0, lalu peramban ini di iPhone Anda.
zx1986

Jawaban:

37

Pertama, Anda perlu menentukan alamat ip atau nama mesin tempat Anda menjalankan server web. Saya berasumsi Anda menjalankan server web pada mac karena Anda menandai posting Anda meskipun macosxinstruksinya mirip untuk mesin linux. Jadi, di mac Anda:

  • Terbuka Terminal.app. Di bawah Applications->Utilities.
  • Jalankan ifconfigdi terminal. Itu menunjukkan Anda semua antarmuka jaringan pada mesin. Salah satunya adalah jaringan yang terhubung dengan mesin Anda. Jika Anda mac pada koneksi kabel yang seharusnya en0. Catat alamat setelah inet- yang seharusnya menjadi alamat yang digunakan mesin Anda.
    • Mari kita asumsikan Anda menemukan itu 192.168.10.1.
  • Verifikasi bahwa Anda dapat terhubung ke alamat itu dari server Anda dengan nc -v 192.168.10.1 3000.
    • Anda akan melihat pesan seperti Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Jika itu tidak berhasil, lihat di bawah.
    • Jika berhasil, tekan ctrl-Cuntuk keluar dari sesi nc.
  • Sekarang cobalah untuk terhubung pada mesin klien Anda.

Jika Anda tidak dapat terhubung ke aplikasi Anda di alamat asli server, itu berarti aplikasi Anda tidak mendengarkan alamat itu. Anda perlu menyelidiki cara mengubah konfigurasi aplikasi Anda untuk memodifikasi perilaku itu. Karena saya tidak tahu aplikasi apa yang Anda jalankan, saya tidak dapat menawarkan ide bagus tentang itu.

Phil Hollenback
sumber
10x mate ... apa bedanya ketika berbicara tentang sistem berbasis windows dengan Wamp server di atasnya ... apakah ada perbedaan?
Sagive SEO
Saya menggunakan mac sierra. Saya dapat mengakses server dari mac saya (di mana server berjalan) melalui 10.55.18.22:3000 tetapi tidak dapat mengaksesnya dari komputer lain meskipun keduanya berada di jaringan yang sama. Opsi berbagi web tidak tersedia di sierra. Bagaimana kita bisa membuat ini berhasil?
santhosh kumar
saanthosh: Lihat ke port forwarding di router Anda. Itulah yang saya lakukan sebelum saya menemukan fitur berbagi internet OSX (yang tampaknya telah tersedia setidaknya OSX 10.6). Saya melakukan pengujian localhost pada berbagai perangkat seluler di ruang / jaringan yang sama dengan mesin dev OSX saya, dimungkinkan oleh perubahan standar / kecil pada konfigurasi router (yaitu port forwarding). Artikel lain dan utas SO memberikan info tentang konfigurasi router. Pada akhirnya, saya berada di lokasi baru sekarang dan tidak memiliki akses ke router, jadi saya menggunakan internet sharing OSX (High Sierra) untuk mencapai hal yang sama.
MarsAndBack
12

Temukan nama Mac Anda menggunakan hostname(di Terminal prompt) dan gunakan itu di URL Anda. Misalnya http: //Tysys-iMac.local: 3000 /

Jika karena alasan tertentu Bonjour tidak berfungsi di lingkungan Anda, temukan alamat Airport di iMac atau MacBook

ipconfig getifaddr en1

atau secara umum dengan

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')

James
sumber
Jawaban ini memiliki beberapa optimisasi yang baik atas saya tentang menemukan nama host dan alamat ip Anda.
Phil Hollenback
2
mengapa bonjour tidak bekerja? Saya menemukan nama host saya adalah gm20152.local. Tetapi ketika saya mencoba gm20152.local: 3000 pada mesin yang sama, ia menampilkan halaman yang valid. Tetapi ketika saya mencoba gm20152.local: 3000 di ponsel android saya, browser di ponsel saya tidak dapat menemukan host. Saya pikir ini karena ponsel saya tidak memiliki cara untuk memetakan gm20152.local ke ip addr macbook saya. Bagaimana saya bisa mencapai ini?
gprasant
@ gpasant Mendapatkan Android untuk menggunakan Bonjour tampaknya cukup sulit
James
5

Pada dasarnya, dari pengaturan firewall Anda dapat mengizinkan aplikasi tertentu (misalnya ruby) untuk menerima koneksi masuk. Plus untuk memungkinkan akses ke dunia luar (misalnya www), Anda harus meneruskan lalu lintas ke gateway internal Anda: port melalui pengaturan router Anda.

Berikut cara melakukannya:

  1. Mac-> Preferensi Sys-> Berbagi-> Aktifkan kotak centang “Berbagi Web”
  2. Mac-> Preferensi Sys-> Keamanan-> memungkinkan aplikasi Anda (misalnya ruby) untuk menerima koneksi masuk
  3. Buka port pada router (melalui 192.168.1.1) untuk meneruskan traffic dari your_web_ip: port ke local_gateway: port

    1. Misalnya dari pengaturan router Verizon saya -> Port Forwarding -> create rule: forward ke gateway lokal (mis. 192.168.1.4), port khusus, protokol tcp, source = any, destination = 3280, semua tipe koneksi, forward to port = 3000.

Selesai Sekarang dari komputer jarak jauh, buka browser Anda ke alamat ip web Anda (temukan melalui http://www.whatismyip.com/ ) + port tujuan # di atas, mis. 72.189.194.65:3280, ini akan terhubung ke 192.168.1.4 lokal Anda : 3000

Catatan: Saya menggunakan Mac OSX 10.7.5

Chase T.
sumber
2

127.0.0.1 adalah alamat lokal yang dimiliki setiap komputer untuk dirinya sendiri. Anda harus mencari tahu apa alamat IP asli (atau nama Host / Bonjour) dari mesin tersebut. Pergi ke System Preferences, Network dan cari IP mesin, baik untuk port Ethernet jika Anda menggunakan kabel atau Bandara jika Anda menggunakan WLAN. Kemudian buka alamat ini bersama-sama dengan: 3000 bagian dalam Safari di iPhone.

Sven
sumber
Juga Sharing Preference Pane selalu menunjukkan nama atau alamat yang digunakan komputer Anda dapat dicapai.
James
2

Jika aplikasi hanya mendengarkan 127.0.0.1:3000 maka Anda tidak dapat mengaksesnya dari komputer lain. Untuk melakukannya, Anda perlu memodifikasi konfigurasi untuk Mendengarkan IP atau 0.0.0.0 (semua antarmuka yang tersedia). Opsi satu.

Opsi kedua adalah menggunakan proxy.

Opsi ketiga adalah jika Anda dapat ssh dari iphone Anda juga dapat menggunakan ssh forwarding.

ssh user @ host -L 3000: 127.0.0.1: 3000

Kemudian pada iphone Anda, buka 127.0.0.1:3000

Sameer
sumber
1
AFAIK, Anda tidak bisa melakukan ssh port forwarding di iPhone. Tidak jika itu tidak rusak.
Sven
Dengarkan 0.0.0.0! Bagaimana mungkin aku tidak memikirkan itu?
Gustavo Straube