ฉันจะเปลี่ยนเส้นทางโดเมนไปยังโดเมนอื่นในเครื่องได้อย่างไร


26

ไฟล์ / etc / hosts ของฉันมีลักษณะดังนี้:

127.0.0.1       localhost
10.20.7.67      testsitealpha.dev
othersite.dev   testsitebeta.dev

สองคนแรกทำงาน อันสุดท้ายไม่ได้ ทำไมไม่ ฉันจะทำให้มันทำงานได้อย่างไร เหตุผลที่ฉันทำสิ่งนี้เป็นเพราะฉันมีเซิร์ฟเวอร์ทดสอบ (othersite.com) ซึ่งอยู่ในเครือข่ายท้องถิ่น แต่ ip ก็แตกต่างกันไป เช่น 10.20.7.98 หนึ่งวัน 10.20.7.35 อื่น ๆ

ดังนั้นฉันจะทำให้ระบบของฉันแก้ไขการทดสอบitebeta.devเป็น ip เดียวกันกับ othersite.dev ได้อย่างไร

คำตอบ:


11

อย่างที่ Chris เขียนไปแล้วปัญหาก็คือ "othersite.dev" ไม่ใช่ตัวเลข IP hostname1 [hostname2] [hostname3]รูปแบบที่คุณต้องการก็คือ

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

คำตอบที่แท้จริงสำหรับปัญหาของคุณคือไม่ควรใช้/etc/hostsแต่ใช้ระบบการตั้งชื่อแบบกระจายแบบลำดับชั้นแทน คุณสามารถทำได้หลายวิธี วิธีหนึ่งคือ CNAME ตามที่ Chris แนะนำไว้ อีกวิธีหนึ่งคือให้ที่อยู่ IP คงที่กับเซิร์ฟเวอร์ที่สอง ทั้งที่อยู่สแตติกจริงหรือทำการจองในเซิร์ฟเวอร์ DHCP


1
ไม่ใช่คำตอบที่ฉันกำลังมองหา เพื่อการพัฒนา ฉันไม่ต้องการแก้ไขเครื่องอื่น ๆ เนื่องจากชื่อโดเมน (testsitebeta.dev) ไม่จำเป็นต้องเข้าถึงได้จากทุกที่ยกเว้นในพื้นที่ของฉัน ฉันแค่ต้องการบอกคอมพิวเตอร์ของฉัน "ปฏิบัติต่อชื่อ X เหมือนเป็น Y"
Benubird

3
ในกรณีดังกล่าวคุณต้องการติดตั้งเซิร์ฟเวอร์ DNS ในเครื่องและใช้ตัวแก้ไขปัญหา
Hennes

4
เซิร์ฟเวอร์ DNS ท้องถิ่นน่าจะเป็นวิธีแก้ปัญหา สำหรับผู้เข้าชมในอนาคตฉันพบว่ามีประโยชน์นี้: superuser.com/q/45789/75287
Benubird

@Benubird: ฉันกำลังมองหาวิธีการแก้ปัญหาเดียวกัน แต่ไม่สามารถรับได้ คุณช่วยอธิบายเพิ่มเติมเกี่ยวกับวิธีการตั้งค่าของคุณได้ไหม
Jay Chakra

3

รูปแบบของ / etc / hosts คือ "IP" "Hostname" - like 127.0.0.1 localhost

คุณต้องมีCNAMEเซิร์ฟเวอร์ DNS ในพื้นที่ของคุณเพื่อให้ได้สิ่งที่คุณต้องการ คุณสามารถรับ IP ของ "othersite.dev" และเชื่อมโยงกับ "testitbeta.dev" เช่นเดียวกับที่คุณทำกับ "testitalpha.dev" แต่เมื่อ IP นั้นเปลี่ยนแปลงคุณจะต้องเปลี่ยน/etc/hostsไฟล์ของคุณด้วย


1

หาก othersite.com มี IP แบบไดนามิก แต่สามารถเข้าถึงได้โดยชื่อคุณต้องพึ่งพา DNS ที่ลงทะเบียนโดยอ้างอิงจากชื่อเสมอ

วิธีการแก้ปัญหาของคุณคือการทำให้ testsitebeta.dev เป็น URL การเปลี่ยนเส้นทางสำหรับ othersite.com

ชื่อเซิร์ฟเวอร์ทดสอบitebeta.devเปลี่ยนเส้นทาง / http://othersite.com

วิธีนี้ othersite.com ใช้งานได้เสมอ (ไม่ทำลายด้วยรายการโฮสต์ที่ไม่ดี) และ testsitebeta.dev จะถูกเปลี่ยนเส้นทางไปที่ othersite.com โดยการเปลี่ยนชื่อเป็น IP ที่ถูกต้อง

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