Bagaimana membuat server web lokal terlihat dari internet * tanpa * mengatur penerusan port pada router?


12

Saya mengembangkan situs web pada laptop (kelas atas) saya, dan saya bekerja dari berbagai lokasi fisik.

Saya ingin menyimpan kerumitan untuk terus menyinkronkan dengan server web yang terlihat secara eksternal agar klien dapat menguji kemajuan situs (atau untuk tujuan terkait). Oleh karena itu, saya mencoba mencari cara untuk memungkinkan laptop saya secara otomatis terbuka untuk umum. terlihat dari internet, dari lokasi mana pun, bahkan ketika saya tidak memiliki akses ke router untuk mengatur port forwarding (seperti dari kedai kopi, atau dari koneksi nirkabel umum lainnya).

Saya sudah menggunakan DynDNS untuk membuat pilihan nama domain saya maju ke server desktop melalui router yang telah saya atur ... tapi seperti yang saya katakan, saya ingin membatalkan langkah memanfaatkan server desktop ini.

Saya berharap bahwa layanan reverse-proxy berbayar (membebankan biaya bulanan untuk sebuah akun) akan memberikan perangkat lunak "reverse proxy" tingkat klien soket / server yang dapat digunakan untuk tujuan ini. Saya tidak dapat menemukannya. Saya sudah menggunakan TeamViewer dan LogMeIn, yang menyediakan layanan eksklusif serupa. Bahkan, saya mencoba menggunakan LogMeIn Hamachi VPN untuk membuat ini mungkin - dengan membuat desktop saya (sudah terlihat oleh internet) meneruskan lalu lintas IP yang meminta port 80 melalui VPN ke laptop saya. Namun, sepertinya tidak mungkin untuk mengatur Hamachi / Windows seperti ini (tapi saya mungkin salah).

Saya harap ada cara sederhana dan kuat untuk mencapai ini.


Anda sebenarnya dapat mengatur server web dasar menggunakan browser web Opera (Opera unite), tetapi ini adalah solusi hanya dalam kasus aplikasi HTML + JavaScript yang saya percaya tidak sesuai dengan kebutuhan Anda.
jakub.g

Saat ini saya memiliki server web yang operasional - Apache (diatur sebagai bagian dari XAMPP untuk instalasi Windows). Server web ini berfungsi dengan baik, dan ketika berjalan di desktop saya di belakang router permanen tidak ada masalah yang terlihat dari internet, karena saya mengatur port forwarding pada router saya. Saya tertarik menemukan cara untuk membuat server web lokal saya terlihat oleh publik dari internet ketika saya tidak memiliki akses ke router untuk mengatur port forwarding.
Dan Nissenbaum

Jawaban:


8

Jika Anda memiliki server Anda dapat SSH ke dan bahwa server memungkinkan Anda untuk mendengarkan pada port yang relevan alamat IP publik (yang jika Anda mengendalikannya, itu akan - mungkin bahkan mesin desktop yang Anda jelaskan jika Anda menginstal SSHd melalui cygwin atau serupa) Anda bisa menggunakan opsi tunneling SSH untuk menarik lalu lintas ke server lokal Anda.

Sesuatu seperti: ssh root@your.server.tld -g -R 11.22.33.44:80:127.0.0.1:80akan, setelah terkoneksi dan dikonfirmasi, membuat port 80 pada 11.22.33.44 (dengan asumsi itu adalah alamat publik server) mengambil koneksi yang kemudian diteruskan ke port lokal 80 Anda. Anda memerlukan opsi GatewayPorts diaktifkan di server untuk mendengarkan alamat non-localhost dengan cara ini, dan perlu masuk sebagai root untuk mendengarkan pada port di bawah 1024, dan jika sudah ada layanan mendengarkan pada port 80 di sana Anda jelas perlu memilih sesuatu yang lain pula. -CDianjurkan untuk menambahkan opsi untuk mengaktifkan kompresi aliran melalui SSH, terutama jika Anda menghubungkan laptop melalui jaringan yang lambat (mungkin macet di antah berantah dengan hanya koneksi seluler GPRS yang tersedia).

Untuk menggunakan ssh di Windows, Anda memiliki beberapa opsi. Anda dapat menginstal port cygwin [maka perintah yang saya berikan di atas seharusnya JustWork (tm)] atau menggunakan klien lain. Putty adalah pilihan yang sangat populer dan mendukung tunneling port jarak jauh.

Dengan cara ini server web mesin Anda akan selalu tersedia pada alamat yang sama saat terhubung juga, di mana pun Anda terhubung, sehingga tidak perlu menggunakan DNS dinamis untuk nama-nama ramah manusia yang mungkin ingin Anda tetapkan (dengan asumsi server yang Anda sambungkan ke memiliki alamat publik tetap, tentu saja).

Daripada menggunakan server rumah atau kantor untuk ini, yang dapat memperlambat segalanya lebih jauh kecuali Anda memiliki koneksi cepat yang bagus di kedua arah di sana, Anda mungkin mendapatkan hasil yang lebih baik dengan menyewa VPS Linux kecil di suatu tempat (lebih disukai di negara yang sama) hanya untuk tujuan ini. Anda hanya perlu mesin terkecil selama ada bandwidth yang cukup sehingga ini hanya akan dikenakan biaya $ beberapa atau beberapa per bulan.

Selain SSH, Anda juga dapat mempertimbangkan alat VPN seperti OpenVPN dan menggunakan aturan iptables sederhana di server untuk meneruskan koneksi ke mesin Anda saat terhubung. Ini mungkin lebih efisien dan tidak terlalu merepotkan sekali setup, tetapi mungkin sedikit kerumitan tambahan untuk mengkonfigurasi jika Anda tidak terbiasa dengan itu dan routing pada umumnya sudah. Sekali lagi VPS murah atau server kantor / rumah Anda sendiri akan berfungsi sebagai server ujung VPN.


+1: Saya baru saja akan menyarankan ssh tunneling, tetapi Anda mengalahkan saya untuk itu dan menjelaskannya lebih jelas daripada yang saya miliki, untuk boot.
Dave Sherohman

Jawaban yang bagus, terima kasih. Saya sudah memiliki WinSSHD (dari Bitvise - program berbayar), jadi saya harus dapat menggunakannya. Saya mungkin mencoba menggunakan iptables untuk merutekan data (awalnya ketika memikirkan hal ini, saya menjadi bingung karena saya tahu bahwa data itu tiba di komputer di jaringan lokal yang dibagikan dengan router, tetapi tidak di jaringan lokal yang dibagikan dengan VPN - bukankah ini seharusnya membingungkan saya). Siapa pun yang ingin memposting contoh entri iptable yang diperlukan yang bekerja dengan router, dan meneruskan data ke jaringan VPN, akan sangat disambut dan dihargai!
Dan Nissenbaum

1

Tunneling IPV6 pada laptop, dikombinasikan dengan ipv4 hingga 6 proxy - gogo6 memiliki layanan yang bagus dan gratis dengan klien untuk memutakhirkan secara otomatis sebagai bagian dari freenet6 -. Gabungkan bahwa dengan catatan AAAA dan proxy yang menerjemahkan dari ipv6 ke 4 ( sixxs menjalankan yang publik), atau untuk solusi yang lebih elegan, server proxy Anda sendiri ( polipo mungkin berfungsi) yang menjalankan terjemahan yang berjalan pada alamat yang sama

Diatur dengan benar, ini sebagian besar harus transparan, selain dari latensi kecil yang terpental berkali-kali.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.