เข้าถึง IP ภายในโดยใช้ IP สาธารณะ


38

ฉันมีโมเด็ม DSL ที่มีที่อยู่ IP สาธารณะ ( 201.206.x.x) และฉันมีเว็บเซิร์ฟเวอร์ในเครือข่ายภายในของฉัน ( 192.168.0.50)

ฉันตั้งค่าโมเด็มเพื่อส่งต่อคำขอไปยังพอร์ต 80 ไปยังเว็บเซิร์ฟเวอร์ของฉันดังนั้นหากฉันเข้าถึง201.206.x.xจากนอกเครือข่ายของฉันมันจะแสดงหน้าเว็บของฉันเหมือนกันถ้าฉันเข้าถึง192.168.0.50จากคอมพิวเตอร์ภายในเครือข่ายของฉัน

ตอนนี้ปัญหาคือเมื่อฉันพยายามเข้าถึง201.206.x.xจากเครือข่ายภายในของฉันเบราว์เซอร์พยายามเชื่อมต่อกับการกำหนดค่าโมเด็ม DSL แทนที่จะเปลี่ยนเส้นทางคำขอของฉันไปยังเว็บเซิร์ฟเวอร์ของฉัน

ฉันต้องเปลี่ยนการตั้งค่าใดในโมเด็มเพื่อตั้งค่าการเปลี่ยนเส้นทางนี้


รูปแบบของปัญหาฉันมีโฮสต์เซิร์ฟเวอร์ (2) หลายแห่งและฉันได้กำหนดค่า DNS (BIND9) สำหรับคำขอภายใน ฉันจะแมป (ไปยังเซิร์ฟเวอร์โฮสต์ที่แตกต่างกัน) ร้องขอภายนอก (กับ IP สาธารณะ) โดยใช้ชื่อโฮสต์ได้อย่างไร
Kunal B.

คำตอบ:


20

ปัญหาคือว่าการเขียนแพคเก็ตโดยทั่วไปสามารถเกิดขึ้นได้เมื่อผ่านไฟร์วอลล์เท่านั้น โดยทั่วไปเราเตอร์ที่พูดไม่สามารถทำการเขียนซ้ำที่จำเป็นเมื่อคำขอมาถึงจากเครือข่ายเดียวกันคำขอนั้นจะถูกเขียนใหม่ วิธีแก้ปัญหาทั่วไปสำหรับปัญหานี้คือการวางเว็บพรอกซีนอกเครือข่ายที่ส่งคำขอผ่านไฟร์วอลล์ของคุณ

ฉันสงสัยว่าปัญหาเฉพาะของคุณคือคุณต้องการเข้าถึงเว็บไซต์ผ่านชื่อโฮสต์ DNS คุณสามารถจัดการกับมันได้โดยใช้ "split-horizon" DNS ดังนั้นจึงควรใส่ใจว่าคำขอมาจากไหนและตอบอย่างเหมาะสม: หากคำขอมาจากภายในเครือข่ายของคุณจะส่ง 192.168.0.50 ให้กับคำขอที่มาจากคุณ เครือข่ายและ IP สาธารณะให้กับทุกคน

คำแนะนำเหล่านี้อาจถูกนำไปใช้กับโฮสต์ที่อยู่นอกเครือข่ายของคุณเช่นอินสแตนซ์ขนาดเล็ก (ฟรี) Amazon EC2


ขอบคุณแม้ว่าฉันคิดว่าฉันจะติดกับการแก้ไขไฟล์ HOSTS เนื่องจากเป็นเว็บไซต์ส่วนบุคคลที่ฉันใช้สำหรับการทดสอบเว็บไซต์ที่ฉันทำงานอยู่ พีซีไม่ได้ทำงานตลอด 24/7

3
ฉันแก้ไขปัญหานี้ในเครือข่ายในบ้านของฉันเองโดยเพิ่มระเบียน A ที่มีชื่อเดียวกับชื่อ Dyndns ภายนอกของฉันบนเซิร์ฟเวอร์ DNS ของตัวเอง (เช่นทำงานบนเครือข่ายภายในบ้านของฉัน) ระเบียน A ชี้ไปยังตำแหน่งที่เหมาะสมในเครือข่ายในบ้านของฉันเช่นเดียวกับระเบียน PTR ย้อนกลับ แต่แน่นอนว่าไม่ใช่ทุกคนที่กำลังทำงานอยู่ DNS บ้านของพวกเขาเอง ...
LawrenceC

14

ฉันจะบอกว่า @Insyte เข้าสู่บางสิ่งเมื่อเขา / เธอพูดถึงปัญหาที่เป็นปัญหาการแก้ไข DNS .. ซึ่งหมายความว่าปัญหาคือการเขียนแพ็กเก็ตใหม่ (อ่าน @Insyte โพสต์อีกครั้งสำหรับคำอธิบายนั้น)

สมมติว่าคุณมีการตั้งค่าต่อไปนี้:

  1. IP สาธารณะ: 201.206.x.y
  2. IP ส่วนตัว: 192.168.0.50
  3. พอร์ตการส่งต่อสำหรับ 80 (และ 443 หากคุณใช้ SSL) บน IP 201.206.x.y192.168.0.50

จากนั้นคุณพิมพ์สิ่งต่อไปนี้ในเบราว์เซอร์ของคุณขณะที่คุณอยู่ในเครือข่ายภายในของคุณ:

http://www.yourwebsite.com

และข้อผิดพลาดเกิดขึ้น ดังนั้นโซลูชัน: แฮ็คไฟล์โฮสต์ของคุณ

บน Windows ให้ไปที่C:\windows\system32\drivers\etc\hosts (โปรดสังเกตว่าไม่มีส่วนขยายของไฟล์นั้น) บน Linux /etc/hostsไฟล์จะถูกตั้งอยู่ใน

หากคุณเปิดไฟล์นั้นใน Notepad คุณจะสามารถเห็นรายการใด ๆ ที่ใช้ในการแทนที่ DNS หากคุณต้องการอัปเดตไฟล์ดังกล่าวคุณจะต้องเปิด Notepad (หรือโปรแกรมที่คุณใช้เพื่อแก้ไขไฟล์) ด้วยสิทธิ์ของผู้ดูแลระบบมิฉะนั้นคุณจะไม่สามารถบันทึกไฟล์ได้

เพิ่มลงในไฟล์โฮสต์ของคุณ:

192.168.0.50 www.yourwebsite.com

จากนั้นรีสตาร์ทเบราว์เซอร์ของคุณป้อน URL และviolà! มันใช้งานได้ดี ดังนั้นหมายความว่าเบราว์เซอร์ของคุณไม่พึ่งพา DNS เพื่อแก้ไขโดเมนของคุณกับ IP แต่เรากำลังเอาชนะนี้และพูดว่า: เบราว์เซอร์เพียงแค่ไปที่ IP ภายในของฉันสำหรับชื่อโดเมนนั้นแทนที่จะถาม DNS สำหรับที่อยู่

หากคุณอยู่ในสำนักงานคุณสามารถรับทุกคนที่จำเป็นต้องเข้าถึงเว็บไซต์ภายในนี้เพื่อแฮ็คไฟล์โฮสต์หรือหากคุณมี DNS ภายในคุณก็สามารถเพิ่มรายการเข้าไปได้

อีกแนวคิดหนึ่งคือมีพร็อกซีเซิร์ฟเวอร์ภายใน (สำหรับการท่องเว็บทั้งหมดและอื่น ๆ ) จากนั้นแฮ็คไฟล์โฮสต์บนพร็อกซีเซิร์ฟเวอร์ ซึ่งหมายความว่าเบราว์เซอร์ของคุณจะบอกว่าพร็อกซี่คุณช่วยเอาทรัพยากรให้ฉันหน่อยได้ไหมhttp://www.mywebsite.comและพร็อกซี่บอกว่าแน่นอนและเพราะฉันถูกสั่งให้เพิกเฉย DNS สำหรับโดเมนนั้นฉันจะให้ IP ซึ่งเข้ารหัสไว้อย่างหนักใน ไฟล์โฮสต์ของฉัน


ใช่ฉันมีสิ่งนี้จริง ๆ ก่อนที่จะโพสต์ฉันแค่อยากจะสามารถเข้าถึงมันผ่าน IP จริง แต่ฉันคิดว่าฉันสามารถอยู่กับมันได้เนื่องจากโมเด็มของฉันไม่มีการสะท้อน NAT (ตามที่ @MaQleod แนะนำ)

3
แล็ปท็อปหรือสมาร์ทโฟนที่ใช้งานเว็บไซต์เดียวกันบ่อยครั้งผ่านเครือข่ายภายในหรือภายนอก
TREE

@ ต้นไม้สามารถโปรดบรรจง ฉันไม่เข้าใจคำถามของคุณ
Pure.Krome

ฉันมีการตั้งค่าที่คล้ายกันมากยกเว้นฉันใช้ชื่อโดเมน ดังนั้นจากนอกเครือข่ายโดเมนของฉันแก้ไขเป็น IP ภายนอกของฉันและจากภายในโดเมนจะแก้ไขเป็น IP ภายใน ฉันมีแล็ปท็อปและสมาร์ทโฟนที่เข้าถึงได้บ่อยจากภายในและภายนอกดังนั้นการแฮ็คไฟล์โฮสต์จะไม่ทำงาน สิ่งที่ฉันได้ทำนั้นเป็นสิ่งที่คำตอบอื่น ๆ ของคุณ (Pure.Krome) แนะนำแทนที่จะใช้เซิร์ฟเวอร์ภายนอกฉันแค่บอกเซิร์ฟเวอร์ DHCP บนเราเตอร์เพื่อเตรียมเซิร์ฟเวอร์ DNS ภายในไว้ล่วงหน้า ส่วนใหญ่ใช้งานได้ แต่มีความล่าช้าที่น่ารำคาญเมื่อเปลี่ยนเครือข่ายก่อนที่จะเริ่มแก้ไข
TREE

9

นี่เป็นปัญหาที่พบบ่อยในวิธีที่เราเตอร์บางตัวจัดการปริมาณการใช้งานที่อยู่สาธารณะของพวกเขาจากที่อยู่ภายใน - พวกเขาไม่ปฏิบัติตามกฎการส่งต่อพอร์ตเดียวกันกับคำขอจากภายนอกเครือข่าย สิ่งที่คุณต้องมองหาเราเตอร์ของคุณคือการสะท้อน NAT สิ่งนี้จะทำให้เราเตอร์จัดการกับคำร้องขอภายในสำหรับ IP สาธารณะเพื่อใช้กฎการส่งต่อพอร์ตเดียวกันราวกับว่าคำขอมาจากนอกเครือข่าย


1
การสะท้อนของ NAT ฉันคิดว่านั่นคือสิ่งที่ฉันกำลังมองหา น่าเสียดายที่โมเด็มของฉันไม่มี ขอบคุณ!

จะทำอย่างไรเมื่อโมเด็มของคุณไม่รองรับ NAT loopback?
PrimitiveNom

2

ฉันช่วยคุณได้ดีกว่านี้ถ้าคุณให้โมเด็มและรุ่นของคุณแก่ฉัน ...

แต่สิ่งที่เกิดขึ้นที่นี่คือปกติแล้วเราเตอร์หรือหน้าการกำหนดค่าโมเด็มควรปรากฏขึ้นเมื่อเข้าสู่ IP ภายในของพวกเขาเท่านั้น (192.168.0.1)

แต่สิ่งที่ดูเหมือนจะเกิดขึ้นที่นี่คือมันระบุคำขอที่เข้ามา (201.206.xx) ในฐานะที่มาจากข้างในดังนั้นตัดสินใจที่จะให้หน้าปรับแต่งแทนเส้นทางปกติไปยังเว็บเซิร์ฟเวอร์ของคุณ ...

ตอนนี้หากคุณใช้โมเด็มระดับผู้บริโภคคุณอาจไม่สามารถเปลี่ยนแปลงได้ (ขออภัย)

แต่คุณสามารถทำได้: ลองดูว่ามีการตั้งค่า 'ฟัง' ในหน้าการกำหนดค่าผู้ดูแลระบบของคุณหรือไม่

ที่นั่นคุณสามารถลองเปลี่ยนหน้าการดูแลระบบของคุณเป็นพอร์ตอื่นหรือ จำกัด การรับฟัง



2

คุณสามารถเพิ่มเส้นทางเพื่อเข้าถึง IP สาธารณะของเซิร์ฟเวอร์โดยตรงผ่าน IP ในพื้นที่ บน Windows คำสั่งนั้นเหมือนกัน

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

หากต้องการเพิ่มเส้นทางถาวรให้เพิ่ม-pพารามิเตอร์ลงในคำสั่งด้านบน

จากนั้นทุกครั้งที่คุณเยี่ยมชมไอพีสาธารณะคอมพิวเตอร์จะผ่าน IP โลคัลของเซิร์ฟเวอร์เป็นเกตเวย์ เนื่องจากเซิร์ฟเวอร์รู้ IP สาธารณะของตนเองจึงจะประมวลผลแพคเกจจากตัวเองแทนที่จะส่งต่อไปยังเครือข่ายท้องถิ่น

คุณต้องให้แน่ใจว่า IP ท้องถิ่นของเซิร์ฟเวอร์คงที่


เหตุใดเซิร์ฟเวอร์จึงรู้ที่อยู่ IP สาธารณะของตนเอง
G-Man กล่าวว่า 'Reinstate Monica'

เซิร์ฟเวอร์รู้ว่า IP ของพวกเขาแน่นอน IP แบบคงที่หรือแบบไดนามิก ฉันไม่แน่ใจว่าการกำหนดเส้นทางทำงานอย่างไร ฉันเดาว่าแต่ละเครื่องมีแผนที่เส้นทาง เมื่อได้รับแพ็คเกจมันจะตัดสินใจว่าควรประมวลผลแพ็คเกจหรือไม่
qevan

0

มีปัญหาเดียวกันนี้ ฉันสามารถแก้ไขได้โดยเพิ่มชื่อโฮสต์ DNS ในรายการการจับคู่โฮสต์ DNS ของเราเตอร์ของฉัน ฉันพบการตั้งค่าเหล่านี้อยู่ในรายการตัวเลือกขั้นสูงของเราเตอร์ของฉัน


0

บนเราเตอร์ของฉันฉันต้องปิด "การเร่ง NAT" (ตัดผ่านการส่งต่อ) เนื่องจากนี่เป็นการวนลูป NAT ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.