นามแฝงสำหรับ IP ในเครือข่าย LAN ภายในบ้าน


23

เป็นไปได้ไหมที่จะกำหนดชื่อแทนสตริงที่อ่านได้ให้กับที่อยู่ IP เช่น 192.168.1.1 อาจจะเป็นสิ่งนี้:

192.168.1.1 -> router.home

หรือ

192.168.1.22 -> printer.home

ไม่จำเป็นต้องใช้เราเตอร์บางคนสามารถเข้าถึงได้จากเว็บภายนอก แต่เฉพาะใน LAN ที่จริงแล้วไม่ควรเข้าถึงได้จากเว็บภายนอก

ฉันเดาว่าเป้าหมายคือมีเซิร์ฟเวอร์ DNS ในตัวเครื่องซึ่งตอบกลับไปยังเราเตอร์ที่อยู่บ้าน ความคิดใด ๆ วิธีสร้างนามแฝงดังกล่าว?

แก้ไข: คำตอบของ Yamakaja ใช้งานได้ดี แต่ต้องเปลี่ยนไฟล์โฮสต์บนคอมพิวเตอร์ทุกเครื่องใน LAN การค้นหา DNS ท้องถิ่นสามารถทำได้ที่เราเตอร์ที่บ้านแทนหรือไม่ นั่นจะข้ามการทำงานด้วยตนเองจำนวนมาก


2
โปรดทราบว่าเราเตอร์บางตัวทำสิ่งนี้ด้วยตนเองตัวอย่างเช่นหากคุณใช้เราเตอร์ Asus และคุณไปที่router.asus.comจะเปิดหน้ากำหนดค่าของเราเตอร์ เราเตอร์อื่น ๆ มี "กลอุบาย" ที่คล้ายกันเพื่อทำสิ่งนี้เช่นกัน
acejavelin

ไม่ฉันไม่ได้ใช้เราเตอร์อัสซุส คำถามนี้ค่อนข้างกว้างกว่าทั่วไป ... ไม่เพียง แต่ฉันต้องการเข้าถึงเราเตอร์ที่ไม่มี IP แต่อุปกรณ์อื่น ๆ ที่เชื่อมต่อกับเครือข่ายด้วย ฉันจะเพิ่มการแก้ไข
sanjihan

2
ประเด็นของฉันคือเราเตอร์บางตัวมีความสามารถนี้ในตัวเนื่องจากพวกเขามักทำหน้าที่เป็นเซิร์ฟเวอร์แคช DNS เนื่องจากคุณไม่ได้ระบุว่าคุณใช้เราเตอร์ใดฉันเปิดให้ "เราเตอร์อื่น ๆ มีเทคนิคคล้ายกันในการทำเช่นนี้"
acejavelin

1
ใช่ฉันได้รับแล้วและขอบคุณ! เราเตอร์เป็นเพียงตัวอย่าง ลองจินตนาการถึงการรันเครื่องพิมพ์หรือราสเบอร์รี่ PI หรือระบบระบายอากาศบนอินเทอร์เน็ตด้วย LAN
sanjihan

@sanjihan ฉันคิดว่าคุณจะต้องเปิดเผยยี่ห้อและรุ่นของเราเตอร์ของคุณมิฉะนั้นจะบอกว่าคุณใช้ DNS กับใครเพื่อให้คำแนะนำเพิ่มเติมเกี่ยวกับการกำหนดค่าที่คุณอาจจะทำได้สำหรับงานนี้ ดังนั้นในการสรุป1.)ทำและทำโมเดลของอุปกรณ์เราเตอร์ของคุณหรือ2.)สิ่งที่คุณใช้อย่างถูกต้องสำหรับ DNS (เช่น Windows DNS, ฟังก์ชันเราเตอร์ในตัว ฯลฯ )
Pimp Juice IT

คำตอบ:


18

นอกเหนือจากคำตอบของ Yamakajaนี่คือวิธีที่คุณตั้งค่าเซิร์ฟเวอร์ DNS ในเครื่อง

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

การตั้งค่าเซิร์ฟเวอร์ DNS

ฉันตัดสินใจตั้งค่าเซิร์ฟเวอร์ DNS บน Raspberry Pi โดยใช้dnsmasqซึ่งเป็นเครื่องมือเซิร์ฟเวอร์ DNS ขนาดเล็กเหมาะสำหรับใช้ในเครือข่ายขนาดเล็ก นอกจากนี้คุณยังสามารถใช้bindเครื่องมือ DNS มาตรฐานโดยพฤตินัย แต่นี่อาจเป็นสิ่งที่มีพลังมากสำหรับเครือข่ายในบ้านขนาดเล็ก

ติดตั้งdnsmasqโดยใช้ตัวจัดการแพ็คเกจบนระบบที่ใช้เดเบียน (เช่น Raspbian) คำสั่งจะเป็น

sudo apt-get install dnsmasq

ตอนนี้ฉันคิดว่าคุณได้ตั้งค่าการจัดสรรที่อยู่ IP แบบคงที่ (เช่นที่อยู่ IP ที่คุณพูดถึงในคำถามของคุณจะไม่เปลี่ยนแปลง) หากคุณยังไม่dnsmasqสามารถใช้เป็นเซิร์ฟเวอร์ DHCP ได้ แต่ฉันยังไม่ได้ทำ

dnsmasq/etc/hostsเรียกชื่อโฮสต์จาก แก้ไขไฟล์นี้ดังนี้:

# IP address    Host name
192.168.1.1     router
192.168.1.22    printer

ชื่อโฮสต์routerที่ได้รับมอบหมายในขณะนี้เพื่อ192.168.1.1, เพื่อprinter192.168.1.22

ตอนนี้คุณได้ตั้งค่าเซิร์ฟเวอร์ DNS ของคุณเอง แต่คอมพิวเตอร์ในเครือข่ายของคุณยังไม่ได้ใช้ ในการทำให้พวกเขาใช้เซิร์ฟเวอร์นี้คุณต้องทำการเตรียมหนึ่งขั้นตอน:

ค้นหาที่อยู่ IP ของอุปกรณ์ dnsmasq ของคุณโดยใช้ip address(ลองสมมติว่าเป็น192.168.1.42) เปิด/etc/dnsmasq.confและผนวกบรรทัดต่อไปนี้:

listen-address=127.0.0.1
listen-address=192.168.1.42

สิ่งนี้บอกdnsmasqว่าควรรับฟังคำขอเมื่อมีการส่งถึง127.0.0.1(เช่นเมื่อตัวเองต้องการใช้เซิร์ฟเวอร์ DNS) หรือ192.168.1.42(เช่นเมื่อคอมพิวเตอร์เครื่องอื่นต้องการใช้เซิร์ฟเวอร์ DNS)

การใช้เซิร์ฟเวอร์ DNS

คุณต้องบอกคอมพิวเตอร์แต่ละเครื่องในเครือข่ายของคุณว่าควรใช้ (เช่น) 192.168.1.42เป็นเซิร์ฟเวอร์ DNS วิธีที่คุณทำขึ้นอยู่กับระบบปฏิบัติการของคุณ คุณสามารถค้นหาระบบปฏิบัติการที่คุณระบุบนอินเทอร์เน็ตได้อย่างง่ายดาย (เพียงค้นหา "เปลี่ยนเซิร์ฟเวอร์ DNS บน <OS>" หรืออะไรทำนองนั้น)

สำหรับ Windows 7 คุณสามารถปฏิบัติตามการกวดวิชานี้: https://www.opennicproject.org/configure-your-dns/how-to-change-dns-servers-in-windows-7/

ในระบบของฉัน (Arch Linux) ฉันต้องผนวกบรรทัดต่อไปนี้ /etc/resolvconf.conf

name_servers=192.168.1.42

หมายเหตุไฟล์ที่คุณต้องใช้ขึ้นอยู่กับการกำหนดค่าตัวจัดการเครือข่ายของคุณ เพิ่ม IP เซิร์ฟเวอร์ DNS ในคอมพิวเตอร์แต่ละเครื่องที่คุณต้องการใช้ DNS ของคุณ

คุณอาจต้องรีสตาร์ทอุปกรณ์หากไม่สามารถใช้งานได้ทันที

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

(ไม่บังคับ) การตรวจสอบฟังก์ชันการทำงาน

หากคุณต้องการตรวจสอบว่าการแก้ไข DNS ทำงานอย่างถูกต้องหรือไม่ให้ติดตั้งdnsutils(Linux) บนระบบที่ควรใช้เซิร์ฟเวอร์ของคุณ จากนั้นดำเนินการ

$ dig router

สิ่งนี้ควรส่งคืนแบบนี้

; <<>> DiG 9.10.4-P1 <<>> router
;; global options: +cmd
;; Got answer:
...

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;router.                        IN      A

;; ANSWER SECTION:
router.                 0       IN      A       192.168.1.1

;; Query time: 14 msec
;; SERVER: 192.168.1.42#53(192.168.1.42)
;; WHEN: So Jun 26 10:43:18 CEST 2016
;; MSG SIZE  rcvd: 50

มันแสดงชื่อโฮสต์ที่คุณต้องการแก้ไขที่อยู่ IP ที่ได้รับการแก้ไขและเซิร์ฟเวอร์ DNS ที่ใช้ อย่างที่คุณเห็นทุกอย่างดี

(ไม่บังคับ) ระบุ TLD

หากคุณต้องการเข้าถึงอุปกรณ์ที่ไม่เพียง แต่มีrouterหรือprinterมีrouter.homeและprinter.homeให้เพิ่มบรรทัดต่อไปนี้ใน/etc/dnsmasq.conf:

expand-hosts # Tells dnsmasq to add a TLD to each host name
domain=home # The TLD

คุณอาจต้องรีสตาร์ทอีกครั้ง

แหล่งที่มา / อ่านเพิ่มเติม

เกี่ยวกับdnsmasq:

เกี่ยวกับbind(หากคุณสนใจ):


11

ใช่แล้วและมีสองตัวเลือก (หรือมากกว่านั้น):


การแก้ไขไฟล์โฮสต์ของคุณ (วิธีขี้เกียจ)

คุณจะต้องเพิ่มรายการในไฟล์ "โฮสต์" ของคุณทั้งนี้ขึ้นอยู่กับระบบปฏิบัติการของคุณ คุณสามารถหาได้ที่/etc/hostsUnixoids ส่วนใหญ่และในC:\Windows\system32\drivers\etc\hostsWindows

ในการเพิ่มรายการของคุณให้ไปที่ด้านล่างของไฟล์และเพิ่มแถวในรูปแบบนี้:

<IP>       <the hostname to assign>

เช่น.

192.168.1.1      router

(หมายเหตุช่องว่างระหว่าง ip และชื่อโฮสต์ไม่สำคัญ แต่มันจะดูดีกว่าถ้าเทียบกับรายการอื่น ๆ คุณสามารถใช้แท็บหรือช่องว่าง)

จากนั้นคุณสามารถเข้าถึงเราเตอร์ของคุณในเบราว์เซอร์โดยเพียงแค่เข้าถึง

http://router/

หรือ

router/

เซิร์ฟเวอร์ DNS ในเครื่อง

โปรดดูคำตอบของ TuringTuxสำหรับข้อมูลเพิ่มเติม


ขอบคุณคน! ใช้งานได้ดีกับคอมพิวเตอร์เครื่องเดียว เป็นไปได้ไหมที่จะขยายสิ่งนี้ไปยังคอมพิวเตอร์ทุกเครื่องใน LAN โดยไม่ต้องเปลี่ยนไฟล์โฮสต์ในคอมพิวเตอร์ทุกเครื่องด้วยตนเอง
sanjihan

@sanjihan มันไม่ง่ายอย่างนั้นตัวอย่างเช่นคุณสามารถซื้อชื่อโดเมนของคุณในราคาน้อยกว่า 1 $ สำหรับ namecheap และใช้สิ่งนั้นเพื่อชี้ไปยังเนื้อหาของคุณ ตัวอย่างเช่นคุณสามารถตั้งค่าเราเตอร์ <โดเมนของคุณ> <tld> ให้ชี้ไปที่ 192.168.1.1 แต่นั่นจะทำให้ชื่อของคุณยาวขึ้น โปรดทำเครื่องหมายคำตอบของฉันว่ายอมรับเพื่อให้ผู้ใช้รายอื่นรู้ว่าคำถามนี้ได้รับคำตอบแล้ว
Yamakaja

คุณสามารถใช้ชื่อพีซีได้หรือไม่หากพวกเขาเป็นส่วนหนึ่งของเวิร์กกรุ๊ปเดียวกัน
jiggunjer

@ jiggunjer ฉันไม่รู้จริงๆ ฉันไม่คุ้นเคยกับ Windows
Yamakaja

2

ฉันต้องการอัปเดตคำตอบที่ดีข้างต้น:

คุณอาจต้องการตรวจสอบเราเตอร์ของคุณและตรวจสอบว่ามีการสนับสนุนรายการ DNS ด้วยตนเอง

ถ้าเป็นเช่นนั้นคุณก็สามารถเพิ่มในท้องถิ่นของคุณอยู่ในนั้นเป็น192.168.1.22 printer.homeมิฉะนั้นคุณจะถูก จำกัด ด้วยการแก้ไขไฟล์โฮสต์ในท้องถิ่นหรือการตั้งค่าเซิร์ฟเวอร์ DNS ของคุณเองฉันกลัว

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