เพิ่มนามแฝง IP แบบคงที่ให้กับอินเตอร์เฟส DHCP บน Windows 8


9

ฉันมีเครื่อง Windows 8 ที่มีพอร์ต Ethernet เพียงพอร์ตเดียว จำเป็นต้องใช้ DHCP และ ยังต้องการ IP แบบคงที่ IP แต่ละรายการอยู่ในเครือข่ายย่อยที่แตกต่างกันและแต่ละเครือข่ายมีจุดประสงค์ที่แตกต่างกันและเข้ากันไม่ได้

เครื่องนี้ต้องใช้ DHCP เพราะผู้ดูแลระบบเครือข่ายไซต์บอกว่านี่เป็นวิธีเดียวที่ได้รับการสนับสนุน 192.168.x.y ที่อยู่ โครงร่างเครือข่ายของเขาอาจไม่มีบล็อก IP แบบคงที่ภายในซับเน็ตนั้นหรือเขาจะไม่กำหนดหนึ่งในนั้นให้กับเครื่องนี้

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

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

เนื่องจากฉันไม่สามารถทำสิ่งนี้กับ DHCP ได้อย่างสมบูรณ์ฉันต้องการ IP แบบคงที่เพราะเครื่องนี้ยังทำหน้าที่เป็นเซิร์ฟเวอร์ของ a 10.x.y.z เครือข่ายย่อย ผู้ดูแลระบบเครือข่ายท้องถิ่น มี ให้ IP แบบคงที่กับฉันในโครงการนั้น แต่ก็ไม่เพียงพอเพราะฉันต้องคุยกับ 192.168.x.y ด้านข้างของเครือข่าย

ฉันรู้คำถามที่คล้ายกัน ที่นี่ . ฉันถามอีกครั้งเพราะ:

  1. คำถามอื่นนั้นถูกวางเมื่อ Windows 7 เป็นปัจจุบัน บางที Microsoft ใช้เวลา 2 ปีขึ้นไปเพื่อแก้ไขจุดอ่อนนี้ในการติดตั้งเครือข่าย Windows 8 ใช่ไหม

    (ใช่, ความอ่อนแอ : Linux อนุญาตให้เชื่อมต่อเครือข่ายที่มีทั้ง DHCP และ IP แบบคงที่ ไม่มีอะไรเกี่ยวกับ TCP / IP ที่ป้องกันไม่ให้ Microsoft อนุญาตสิ่งนี้ พวกเขาเพียงแค่ต้องเขียนรหัสเพื่อให้มัน)

  2. ดูเหมือนว่า GUI การกำหนดค่าเครือข่ายใน Windows 8 มีข้อ จำกัด เช่นเดียวกับ Windows 7 แต่อาจมีแฮ็คระดับต่ำที่จะให้เรากำหนดนามแฝง IP แบบคงที่ให้กับอินเตอร์เฟส DHCP หรือไม่

คำตอบ:


7

ฉันเขียนไฟล์ชุดเล็ก ๆ คุณสามารถทดสอบเพื่อดูว่ามันทำงานในสถานการณ์ของคุณ (ที่นี่มันทำงานได้ดี)

  • มันจะตั้งค่าอินเทอร์เฟซของคุณกลับเป็น DHCP
  • หลังจากนั้นมันจะแตก IP, Subnet Mask, เกตเวย์เริ่มต้นและเซิร์ฟเวอร์ DNS ตัวแรก นี่เป็นบิตที่ยาก โดยเฉพาะถ้าคุณมีหลายอินเตอร์เฟส ถ้ามันไม่ได้ผลเราต้องทำเล่น ๆ ที่นี่สักหน่อยเพื่อให้มันใช้งานได้
  • หากคุณต้องการ DNS ตัวที่สองก็ควรเพิ่มที่นี่ (แต่ฉันไม่ได้ดูขนาดนั้นเพราะ DNS ตัวหนึ่งควรใช้ได้ดีตอนนี้)
  • มันจะตั้งค่าเหล่านี้ "คงที่" บนอินเทอร์เฟซ
  • หลังจากนั้นคุณสามารถเพิ่ม 10.x.y.z ที่อยู่ในอินเทอร์เฟซของคุณโดยไม่มีปัญหา

นี่คือสคริปต์:

@echo off
set interface="Ethernet 2"
set extra_ip=10.0.0.33
set extra_mask=255.255.248.0

echo Setting %interface% back to DHCP
netsh int ipv4 set address name=%interface% source=dhcp
netsh int ipv4 set dnsservers name=%interface% source=dhcp

echo Waiting for IP to stabilize...
timeout /t 5

echo Getting current IP of %interface%
ipconfig > %temp%\ipconfig.txt
for /f "tokens=2 delims=:" %%a in ('type %temp%\ipconfig.txt ^| find "IPv4" ^| find /v "127.0"') do set _IP=%%a
set IP=%_IP:~1%
for /f "tokens=2 delims=:" %%a in ('type %temp%\ipconfig.txt ^| find "Subnet" ^| find /v "127.0"') do set _IP=%%a
set MASK=%_IP:~1%
for /f "tokens=2 delims=:" %%a in ('type %temp%\ipconfig.txt ^| find "Default" ^| find /v "127.0" ^| find /v "::" ') do set _IP=%%a
set GATE=%_IP:~1%
for /f "tokens=2 delims=:" %%a in ('type %temp%\ipconfig.txt ^| find "DNS Servers" ^| find /v "127.0"') do set _IP=%%a
set DNS1=%_IP:~1%

echo Setting IP Address, Subnet Mask and Default Gateway...
echo (IP %IP%, mask %MASK%, gw %GATE%)
netsh int ipv4 set address name=%interface% static %IP% %MASK% %GATE% gwmetric=1

timeout /t 5
echo Setting Primary DNS (%DNS1%)...
netsh int ipv4 set dnsserver name=%interface% static %DNS1% primary

echo Adding secondary IP...
netsh int ipv4 add address %interface% %extra_ip% %extra_mask%

timeout /t 5
echo.
echo New IP configuration:
ipconfig /all

del %temp\ipconfig.txt

คุณจะต้องดำเนินการนี้เพียงครั้งเดียวตามสัญญาเช่าของคุณ (หรือหลังจากการรีสตาร์ท) ดังนั้นหากสัญญาเช่าของคุณคือ 10 วันคุณสามารถตั้งค่านี้ในตัวกำหนดตารางเวลางานเวลา 3:00 น. ในวันอาทิตย์และหลังจากการรีสตาร์ททุกครั้ง หากคอมพิวเตอร์ของคุณปิดตอนกลางคืนจะต้องใช้หลังจากรีสตาร์ทเท่านั้น


3

วิธีแก้ปัญหาหนึ่งอาจเป็นการเรียกใช้ VM บนเครื่องเดียวกันและเพิ่ม IP แบบคงที่ให้กับ VM นั้น สิ่งนี้จะให้อะแดปเตอร์เสมือนจริงบนโฮสต์ แต่สำหรับเครือข่าย 10.x.v.z

การกำหนดค่าเครือข่ายที่กำหนดเองคล้ายกับที่คุณร้องขอ docunmented ดีที่นี่ .


แนวคิดของ VM คือการล่าผีเสื้อกับค้อนขนาดใหญ่ การเพิ่มระบบ VM และ สิทธิ์การใช้งาน Windows สำหรับ VM จะซับซ้อนและอาจมีราคาแพงกว่าการเพิ่ม NIC ตัวที่สองในเครื่อง ฉันต้องการเท่านั้น 10.x.y.z ที่อยู่เพื่อให้บริการโปรแกรมเดียว
Warren Young

นั่นคือเหตุผลที่ฉันนำคำตอบด้วย "วิธีแก้ปัญหาหนึ่งอาจเป็น .. "; การเพิ่ม VM จะใช้งานได้อย่างแน่นอน Multihoming ชัดเจน แต่จากนั้นอีกครั้งความคิดของคุณจะเปลี่ยนคำถามเดิมโดยพื้นฐาน โชคดี
Fergus

3

ในที่สุด DHCP และ IP แบบคงที่สามารถกำหนดค่าให้มีอยู่ใน NIC เดียว ฟีเจอร์นี้มีในการอัพเดท Windows 10 ผู้สร้าง (1703)

มีคุณสมบัติใหม่ที่เรียกว่า dhcpstaticipcoexistence ใน netsh interface ipv4 set interface คำสั่งซึ่งสามารถตั้งค่าเป็น enabled และอินเทอร์เฟซนี้สามารถกำหนดค่าด้วยสแตติก IP หลายตัวพร้อมกับ IP ที่กำหนดค่า DHCP อย่างไรก็ตามเรื่องนี้จะต้องมีการทำกับ netsh add address คำสั่งยังไม่สามารถทำได้ผ่าน GUI

มีการเผยแพร่เอกสารเล็กน้อยเกี่ยวกับการอัปเดตเป็น netsh และมีการพูดคุยกันเล็กน้อยเกี่ยวกับเรื่องนี้ในอินเทอร์เน็ตทั้งหมด (การค้นหาโดย Google dhcpstaticipcoexistence ให้เท่านั้น 5 ผลลัพธ์ในเวลาที่คำตอบนี้) แต่คุณสมบัตินี้เป็นของจริง


1
คำตอบนี้มีประโยชน์กับฉันมากเมื่อใช้งานกับการรีบูตและดูเหมือนเป็นโซลูชันของบุคคลที่หนึ่งที่ดี รวมถึงตัวอย่างของคำสั่งที่จะใช้ก็ดี คำตอบนี้ใกล้เคียงกับการให้คำสั่งตัวอย่าง แต่ฉันต้องไปที่ Google เพื่อหาไวยากรณ์ที่แน่นอน คำสั่งสุดท้ายของฉันคือ netsh interface ipv4 set interface interface="Ethernet" dhcpstaticipcoexistence=enabled และ netsh interface ipv4 add address "Ethernet" 192.168.1.200 255.255.255.0.
jljtgr

2

ขอบคุณเซซิลมันได้ผลนี่คือสิ่งที่ฉันทำ:

  1. ค้นหาชื่อส่วนต่อประสาน:

    อินเตอร์เฟส netsh ipv4 แสดงอินเตอร์เฟส

  2. เปิดใช้งาน dhcpstaticipcoexistence:

    อินเตอร์เฟส netsh ipv4 set interface interface = "ชื่ออินเตอร์เฟส" dhcpstaticipcoexistence = เปิดใช้งาน

  3. เพิ่มที่อยู่ ip แบบคงที่กับส่วนต่อประสานของคุณ

    อินเทอร์เฟซ netsh ipv4 เพิ่มที่อยู่ "ชื่ออินเตอร์เฟส" 192.168.x.xxx 255.255.255.0

  4. ใช้คำสั่ง 'ipconfig / all' เพื่อตรวจสอบว่ามีการเพิ่มที่อยู่ ip แบบคงที่ คุณไม่สามารถทำได้จาก GUI


1

วิธีการเกี่ยวกับการกำหนดเวลาสคริปต์เพื่อเพิ่มที่อยู่ IP หลังจากบูต

netsh interface ipv4 add address “Local Area Connection” 10.x.y.z 255.255.255.0

เป็นแนวคิดที่ดี แต่ฉันมั่นใจว่าบังคับให้อะแดปเตอร์หลุดออกจาก DHCP
Fergus

ฉันทดสอบแล้ว @Fergus พูดถูก netsh interface ipv4 show address หลังจากนี้จะให้ IP แบบคงที่เท่านั้น DHCP IP หายไปแล้ว
Warren Young

โอ๊ะฉันจำได้แล้วตอนนี้ ตัวเลือกจะได้รับ IP ปัจจุบันจากนั้นเพิ่มทั้งสองกลับ ไม่น่าเป็นไปได้มากที่การเช่า DHCP จะไม่ได้รับการต่ออายุในขณะที่ใช้งานอย่างแข็งขัน
Paul

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

@WarrenYoung สัญญาเช่าที่คุณได้รับนานเท่าไหร่ ( ipconfig /all. สำหรับฉันมันคือ 10 วันจากเราเตอร์ของฉัน) ดังนั้นหากคอมพิวเตอร์รีสตาร์ทก่อนที่สัญญาเช่าจะจบลงก็ไม่น่าจะมีปัญหา มิฉะนั้นคุณสามารถเพิ่ม ipconfig /release และ ipconfig /renew เหนือเส้นเหล่านี้และกำหนดเวลาให้ทำงานในเวลา 3.00 น. (เมื่อไม่มีใครอยู่ด้านหลังคอมพิวเตอร์)
Rik

0

ฉันใช้ Win IP Config เวอร์ชั่น 2.7.2 จาก 2007 ที่ทำงานบน Windows 10 ตั้งค่า NIC ของคุณเป็น DHCP, เรียกใช้ Win IP Config เป็นการจัดการ (ไอคอนคลิกขวาแทนการดับเบิลคลิกเพื่อดูตัวเลือก) จากนั้นคลิก IP + และพิมพ์ที่อยู่ ipaddress ที่คุณต้องการ ตอนนี้ฉันมี DHCP หนึ่งตัวและที่อยู่แบบคงที่สองอัน ตอนนี้ฉันสามารถทำการพัฒนาระบบสมองกลฝังตัวและเข้าถึงอินเทอร์เน็ตได้ในเวลาเดียวกันด้วย NIC!


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