Akses IP internal menggunakan IP publik

37

Saya memiliki modem DSL dengan alamat IP publik ( 201.206.x.x), dan saya memiliki server web di jaringan internal saya ( 192.168.0.50).

Saya mengatur modem untuk meneruskan permintaan ke port 80 ke server web saya, jadi, jika saya mengakses 201.206.x.xdari luar jaringan saya, itu menunjukkan halaman web saya, hal yang sama terjadi jika saya mengakses 192.168.0.50dari komputer di dalam jaringan saya.

Sekarang, masalahnya adalah ketika saya mencoba mengakses 201.206.x.xdari jaringan internal saya, browser mencoba untuk terhubung ke konfigurasi modem DSL, alih-alih mengarahkan permintaan saya ke server Web saya.

Pengaturan mana yang harus saya ubah di modem untuk mengatur pengalihan ini?

willvv
sumber
Variasi untuk masalah ini, saya memiliki beberapa (2) server hosting, dan saya telah mengkonfigurasi DNS (BIND9) untuk permintaan internal. Bagaimana cara memetakan (ke Server Hosting yang berbeda) permintaan eksternal (ke IP publik) berdasarkan nama host?
Kunal B.

Jawaban:

20

Masalahnya adalah bahwa penulisan ulang paket umumnya hanya dapat terjadi ketika melintasi firewall. Secara umum router tidak dapat melakukan penulisan ulang yang diperlukan ketika permintaan datang dari jaringan yang sama dengan permintaan yang akan ditulis ulang. Solusi umum untuk masalah ini adalah menempatkan proxy web di luar jaringan yang mengembalikan permintaan melalui firewall Anda.

Saya menduga masalah khusus Anda adalah bahwa Anda ingin mengakses situs web melalui nama host DNS-nya. Anda bisa mengatasinya dengan menggunakan DNS "split-horizon", sehingga memperhatikan dari mana permintaan itu berasal dan menjawab dengan tepat: Jika permintaan itu datang dari dalam jaringan Anda, itu membagikan 192.168.0.50 untuk permintaan yang datang dari Anda jaringan dan IP publik untuk semua orang.

Salah satu dari saran ini dapat diterapkan pada host apa pun di luar jaringan Anda, seperti contoh mikro Amazon EC2 (gratis).

Insyte
sumber
Terima kasih, walaupun saya pikir saya akan tetap dengan mengedit file HOSTS karena pada dasarnya situs pribadi yang saya gunakan untuk tes situs yang saya kerjakan. PC ini bahkan tidak beroperasi 24/7.
3
Saya memecahkan masalah ini di jaringan rumah saya sendiri dengan menambahkan catatan A dengan nama yang sama dengan nama dyndns eksternal saya di server DNS saya sendiri (juga berjalan di jaringan rumah saya). Catatan A menunjuk ke lokasi yang tepat di jaringan rumah saya, seperti halnya catatan PTR terbalik. Tapi tentu saja, tidak semua orang menjalankan DNS rumah mereka sendiri ...
LawrenceC
14

Saya akan mengatakan @Insyte ke sesuatu ketika dia berbicara tentang masalah menjadi masalah resolusi DNS .. yang kemudian berarti masalahnya adalah penulisan ulang paket (baca posting @Insyte lagi untuk penjelasan itu).

Dengan asumsi Anda memiliki pengaturan berikut:

  1. IP Publik: 201.206.x.y
  2. IP pribadi: 192.168.0.50
  3. Penerusan port untuk semua 80 (dan 443 jika Anda melakukan SSL) pada IP 201.206.x.y192.168.0.50

Anda kemudian mengetik yang berikut ini di browser Anda, saat Anda berada di jaringan internal Anda:

http://www.yourwebsite.com

dan kesalahan terjadi. Jadi, solusi: retas file host Anda.

Di Windows, buka C:\windows\system32\drivers\etc\hosts (perhatikan, tidak ada ekstensi pada file itu). Di Linux, file tersebut berada di /etc/hosts.

Jika Anda membuka file itu di Notepad, Anda dapat melihat entri yang digunakan untuk mengganti DNS. Jika Anda ingin memperbarui file itu, Anda harus membuka Notepad (atau program apa pun yang Anda gunakan untuk mengedit file) dengan hak Administrator - jika tidak, Anda tidak dapat menyimpan file tersebut.

Tambahkan ini ke file host Anda:

192.168.0.50 www.yourwebsite.com

Kemudian restart browser Anda , masukkan URL dan biola! Bekerja. Jadi ini berarti, browser Anda tidak bergantung pada DNS Anda untuk menyelesaikan domain Anda ke IP. Alih-alih, kami mengganti ini dan berkata: Browser, cukup buka IP internal saya untuk nama domain itu, alih-alih meminta DNS untuk alamat IP .

Jika Anda berada di kantor, maka Anda dapat meminta semua orang yang perlu mengakses situs web internal ini, untuk meretas file host mereka, atau jika Anda memiliki DNS internal, maka Anda dapat menambahkan entri ke dalamnya.

Gagasan lain adalah memiliki server proxy internal (untuk semua penjelajahan web, dll) dan kemudian meretas file host di server proxy. Ini berarti browser Anda akan berkata, Proxy, bisakah Anda mengambilkan saya sumber dayahttp://www.mywebsite.com dan proxy mengatakan Tentu, dan karena saya telah diberitahu untuk mengabaikan DNS untuk domain itu, saya hanya akan memberikan IP yang telah dikodekan dalam file host saya .

Murni
sumber
Yap, saya benar-benar memiliki ini sebelum saya diposting, saya hanya ingin dapat mengaksesnya melalui IP yang sebenarnya, tapi saya pikir saya bisa hidup dengan itu karena modem saya tidak memiliki refleksi NAT (seperti yang disarankan oleh @MaQleod).
3
Bagaimana dengan laptop atau smartphone yang sering mengakses situs yang sama melalui jaringan internal atau eksternal?
POHON
@TREE bisakah kamu tolong lanjutkan. Saya tidak begitu mengerti pertanyaan Anda.
Pure.Krome
Saya memiliki pengaturan yang sangat mirip, kecuali saya menggunakan nama domain. Jadi dari luar jaringan, domain saya memutuskan untuk IP eksternal saya, dan dari dalam, itu memutuskan ke IP internal. Saya memiliki laptop dan telepon pintar yang sering mengakses dari dalam dan luar, jadi meretas file host tidak akan berfungsi. Apa yang saya lakukan pada dasarnya adalah apa yang Anda (Pure.Krome) jawab lain menyarankan, hanya daripada menggunakan server eksternal, saya hanya mengatakan server DHCP pada router untuk menambahkan server DNS internal. Ini sebagian besar bekerja, tetapi ada jeda yang mengganggu ketika berpindah jaringan sebelum hal-hal mulai diselesaikan.
POHON
9

Ini adalah masalah umum dengan cara beberapa router menangani lalu lintas yang ditujukan untuk alamat publik mereka dari alamat internal - mereka tidak mengikuti aturan port forwarding yang sama dengan permintaan dari luar jaringan. Apa yang perlu Anda cari di router Anda adalah refleksi NAT . Ini akan memungkinkan router untuk menangani permintaan internal untuk IP publik untuk menggunakan aturan port forwarding yang sama seolah-olah permintaan tersebut berasal dari luar jaringan.

MaQleod
sumber
1
Refleksi NAT. Saya pikir itulah yang saya cari. Sayangnya modem saya tidak memilikinya. Terima kasih!
apa yang harus dilakukan ketika modem Anda tidak mendukung loopback NAT ??
BugWhisperer
2

Saya bisa membantu Anda lebih baik jika Anda bisa memberi saya model dan model modem ...

Tetapi yang terjadi di sini adalah bahwa biasanya halaman konfigurasi router atau modem hanya akan muncul ketika mengunjungi IP internal mereka (192.168.0.1)

Tapi apa yang tampaknya terjadi di sini adalah Mengidentifikasi permintaan masuk (201.206.xx) Karena datang dari dalam, maka putuskan untuk memberi Anda halaman konfigurasi alih-alih rute normal ke server web Anda ...

Sekarang jika Anda menggunakan modem tingkat Konsumen, Anda mungkin tidak dapat mengubah ini (maaf)

Tapi mungkin Anda bisa: Coba dan lihat apakah ada pengaturan 'mendengarkan' di halaman konfigurasi admin Anda

Di sana Anda dapat mencoba mengubah halaman administrasi Anda ke port lain atau membatasi alamat yang didengarnya

HTDutchy
sumber
2

Mungkin masalahnya adalah administrasi jarak jauh diizinkan.

Plamen
sumber
2

Anda dapat menambahkan rute untuk mengakses IP publik server secara langsung melalui IP lokalnya. Di Windows, perintahnya seperti

route add [public IP] mask 255.255.255.255 [the server's local IP]

Untuk menambahkan rute persisten, tambahkan -pparameter ke perintah di atas.

Kemudian setiap kali Anda mengunjungi IP publik, komputer akan pergi melalui IP lokal server sebagai gateway. Karena server mengetahui IP publiknya sendiri, ia akan memproses paket itu sendiri, alih-alih meneruskannya ke jaringan lokal.

Anda harus memastikan IP lokal server statis.

qevan
sumber
Mengapa server mengetahui alamat IP publiknya sendiri?
G-Man
Server tentu tahu IP mereka. Entah IP statis atau dinamis. Saya tidak yakin bagaimana perutean bekerja. Dugaan saya adalah setiap mesin memiliki peta rute. Ketika menerima paket, ia memutuskan apakah harus memproses paket.
qevan
0

Memiliki masalah yang sama. Saya dapat memperbaikinya dengan menambahkan nama host DNS ke daftar Pemetaan Host DNS router saya. Saya menemukan pengaturan ini tercantum dalam daftar opsi lanjutan dari router saya.

Gibado
sumber
0

Di router saya, saya harus mematikan "akselerasi NAT" (Cut Through Forwarding) karena ini mematahkan loopback NAT ...

Gaymon Howard Wright III
sumber