เส้นทางแบบสแตติกของ Windows ที่ไม่มีเกตเวย์ที่ระบุ (hop ถัดไป)


15

ฉันมีสถานการณ์ต่อไปนี้:

คอมพิวเตอร์ A 198.51.100.8:, netmask 255.255.255.0
คอมพิวเตอร์ B 203.0.113.9:, netmask 255.255.255.0
คอมพิวเตอร์ทั้งสองเครื่องอยู่ในส่วนของ LAN เดียวกัน ไม่ได้ระบุเกตเวย์เริ่มต้นในทั้งสองกรณี

เพื่อให้คอมพิวเตอร์ทั้งสองเครื่องนี้สื่อสารกันฉันได้เพิ่มเส้นทางแบบคงที่สองเส้นทางดังนี้:

route add 203.0.113.9 mask 255.255.255.255 198.51.100.8

แต่ผมต้องการที่จะเพิ่มเส้นทางแบบคงที่โดยการระบุเชื่อมต่อเครือข่ายแทนโดยระบุที่อยู่ IP เกตเวย์

สิ่งนี้เป็นไปได้กับ Linux โดยใช้คำสั่งเช่น:

ip route add 203.0.113.9 dev eth0

และคล้ายกันใน FreeBSD:

route add 203.0.113.9/32 -iface fxp0 -cloning

อย่างไรก็ตามฉันกำลังสูญเสียวิธีการทำเช่นนี้กับ Windows เป็นการดีที่ฉันต้องการทำสิ่งที่ชอบ:

route add 203.0.113.9 mask 255.255.255.255 if 2

แต่เพียงพิมพ์การใช้งานสำหรับrouteคำสั่งซึ่งบอกฉันว่าฉันทำผิด ฉันยังพยายามใช้netshซึ่งบอกฉัน:

> netsh routing ip add persistentroute 203.0.113.9 255.255.255.255 "Local Area Connection"
Specify the next-hop for non point-to-point interfaces.

ความคิดหรือข้อเสนอแนะ?


อัปเดต : เมื่อฉันโพสต์คำถามนี้เป็นครั้งแรกฉันใช้ Windows XP แต่ฉันละเลยที่จะพูดถึงว่า

ฉันจะออกคำตอบดั้งเดิมของ Grizly เนื่องจากมันถูกต้องสำหรับคำถามเดิมของฉัน แต่ถ้าคุณใช้ Windows รุ่นใหม่กว่า XP / 2003 ลองตอบคำถามข้อใดข้อหนึ่ง

คำตอบ:


7

หน้าต่างนี้อาจไม่สามารถทำได้

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx

อ้างอิง: สำหรับเส้นทาง subnet ที่เชื่อมต่อแบบโลคัลที่อยู่เกตเวย์คือที่อยู่ IP ที่กำหนดให้กับอินเทอร์เฟซที่เชื่อมต่อกับซับเน็ต


เฮ้ Grizly - ขอบคุณสำหรับคำตอบ! ฉันลองทั้งคำสั่งที่คุณแนะนำ แต่ฉันได้รับ: "การเพิ่มเส้นทางล้มเหลว: ดัชนีอินเทอร์เฟซไม่ถูกต้องหรือเกตเวย์ไม่ได้อยู่บนเครือข่ายเดียวกับอินเทอร์เฟซตรวจสอบตารางที่อยู่ IP สำหรับเครื่อง" ฉันมีแค่สองอินเตอร์เฟสบนเครื่อง 0x1 (MS TCP Loopback interface) และ 0x2 (Intel (R) PRO / 1000 MT Network Connection) ดังนั้นฉันค่อนข้างแน่ใจว่า "ถ้า 2" เป็นสิ่งที่ฉันต้องการใช้ ความคิดอื่น ๆ ?
ฟิชชัน

เพียงเพิกเฉยส่วน "metric 1 if 2" .. มันควรจะเข้าใจ ดีที่สุดในการทดสอบโดยไม่ใช้ -p เช่นกัน (นั่นทำให้ขัดขืน)
Grizly

ฉันได้รับผลลัพธ์เดียวกันโดยไม่มีส่วน "metric 1 if 2"
ฟิชชัน

โอ้ไม่ดีของฉันดูเหมือนว่าเกตเวย์เป็น ip ของอินเทอร์เฟซ .. ตอบรับการปรับปรุง
Grizly

ถูกต้องซึ่งเป็นสิ่งที่ฉันทำอยู่แล้วและสิ่งที่ฉันหวังว่าจะหลีกเลี่ยง ขอบคุณมาก
ฟิชชัน

21

ในหน้าต่างคุณสามารถเพิ่มเส้นทางตามอินเตอร์เฟสโดยไม่ต้องรู้ว่าอินเตอร์เฟซโดยผ่าน0.0.0.0เป็นเกตเวย์

สิ่งนี้ให้อะไรเช่นนี้:

route add <IPtoRoute> mask <MaskOfTheIp> 0.0.0.0 IF <InterfaceNumber>

route add 203.0.113.9 mask 255.255.255.255 0.0.0.0 IF 2

2
ฉันลองสิ่งนี้บน Windows 7 x64 มันได้ผล! คำสั่งของฉัน: route ADD 176.31.111.111 0.0.0.0 IF 25มันกลับมาOK!และรายการใหม่ปรากฏในตารางเส้นทางตามที่คาดไว้
มิทรี

6

ฉันได้รับสิ่งเดียวกันใน Windows 7 Enterprise ด้วยไคลเอนต์ Juniper Junos Pulse VPN
ฉันมีปัญหากับสิ่งนี้เนื่องจากมันบันทึกที่อยู่ IPv4 ที่เป็นไปได้ทั้งหมดและส่งไปยังการเชื่อมต่อผ่านสายโทรศัพท์:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          1.0.0.0        255.0.0.0         On-link       XX.XX.XX.XX     11
          2.0.0.0        254.0.0.0         On-link       XX.XX.XX.XX     11
          4.0.0.0        252.0.0.0         On-link       XX.XX.XX.XX     11
          8.0.0.0        248.0.0.0         On-link       XX.XX.XX.XX     11
         16.0.0.0        240.0.0.0         On-link       XX.XX.XX.XX     11
         32.0.0.0        224.0.0.0         On-link       XX.XX.XX.XX     11
         64.0.0.0        192.0.0.0         On-link       XX.XX.XX.XX     11
        128.0.0.0        128.0.0.0         On-link       XX.XX.XX.XX     11

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

@rem Get the interface number
set IF=
for /f "tokens=1,8 delims=. " %%A in ('route print') do @if /i "%%B" equ "Juniper" set IF=%%A
@rem If interface is not found, terminate quietly
if not defined IF exit /b
for %%A in (1 2 4 8 16 32 64 128) do @route delete %%A.0.0.0
route add 10.0.0.0 mask 255.0.0.0 0.0.0.0 IF %IF%

1
คุณสามารถปิดใช้งาน "force tunneling" ในส่วนคุณสมบัติ ip ของการเชื่อมต่อ VPN ของคุณ
วอล์คเกอร์แปลก ๆ

5

หมายเลขอินเตอร์เฟสเป็นทศนิยมจะแสดงroute printขึ้น ดูที่ด้านบนของผลลัพธ์ด้าน Interface Listล่าง

อีกวิธีหนึ่งคือการใช้arp -aและจดบันทึกเลขฐานสิบหกเช่น:

C:\>arp -a

Interface: 192.168.1.28 --- 0xc  
  Internet Address      Physical Address      Type
<snip>

ทั้งสองได้รับการยอมรับหลังจากการifโต้แย้งในroute.exeเช่น:

route ADD <NET-ID> MASK <mask> <GW-address or 0.0.0.0 for on-link> IF 0xc -P

ฉันชอบarp -aเนื่องจากการระบุ NIC ง่ายขึ้น

วิธีอื่น ๆ มากมาย แต่นี่เป็นวิธีที่ง่ายที่สุด


0

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

ฉันพบว่าการใส่ IP ปลายทางเป็นเกตเวย์แก้ปัญหาอย่างน้อยใน Windows 10 แต่ฉันมีสถิติเล็กน้อยในขณะนี้เพื่อยืนยันว่าเป็นความจริง 100.1%

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