Các tuyến tĩnh của Windows không chỉ định cổng (bước nhảy tiếp theo)


15

Tôi có kịch bản sau đây:

Máy tính A : 198.51.100.8, netmask 255.255.255.0
Máy tính B : 203.0.113.9, netmask 255.255.255.0
Cả hai máy tính nằm trên cùng một phân đoạn LAN; không có cổng mặc định được chỉ định trong cả hai trường hợp.

Để khiến hai máy tính này liên lạc với nhau, tôi đã thêm hai tuyến tĩnh, như sau:

route add 203.0.113.9 mask 255.255.255.255 198.51.100.8

Tuy nhiên, tôi muốn thêm các tuyến tĩnh bằng cách chỉ định giao diện mạng , thay vì chỉ định địa chỉ IP cổng .

Điều này có thể với Linux bằng cách sử dụng một lệnh như:

ip route add 203.0.113.9 dev eth0

và tương tự trong FreeBSD:

route add 203.0.113.9/32 -iface fxp0 -cloning

Tuy nhiên, tôi không biết làm thế nào để làm điều này với Windows. Lý tưởng nhất là tôi muốn làm một cái gì đó như:

route add 203.0.113.9 mask 255.255.255.255 if 2

nhưng điều đó chỉ in ra cách sử dụng cho routelệnh, điều này cho tôi biết rằng tôi đang làm sai. Tôi cũng đã thử sử dụng netsh, nó cho tôi biết:

> 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.

Bất kỳ suy nghĩ hoặc đề nghị?


Cập nhật : Khi tôi ban đầu đăng câu hỏi này, tôi đang sử dụng Windows XP. Nhưng tôi đã bỏ qua đề cập đến điều đó.

Tôi sẽ để lại câu trả lời ban đầu của Grizly, vì nó đúng cho câu hỏi ban đầu của tôi. Nhưng nếu bạn đang sử dụng phiên bản Windows mới hơn XP / 2003, hãy thử một trong những câu trả lời khác.

Câu trả lời:


7

Điều này có thể không thể với cửa sổ

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

Trích dẫn: Đối với các tuyến mạng con được gắn cục bộ, địa chỉ cổng là địa chỉ IP được gán cho giao diện được gắn với mạng con.


Hey Grizly - cảm ơn bạn đã phản hồi! Tôi đã thử cả hai lệnh mà bạn đề xuất, nhưng tôi nhận được: "Việc bổ sung tuyến không thành công: Chỉ số giao diện bị sai hoặc cổng không nằm trên cùng một mạng với giao diện. Kiểm tra Bảng địa chỉ IP cho máy." Tôi chỉ có hai giao diện trên máy, 0x1 (giao diện MS TCP Loopback) và 0x2 (Intel (R) PRO / 1000 MT Network), vì vậy tôi khá chắc chắn "nếu 2" là thứ tôi muốn sử dụng. Còn suy nghĩ nào khác không?
phân hạch

Chỉ cần bỏ qua phần "số liệu 1 nếu 2" .. nó sẽ tìm ra nó. Tốt nhất để kiểm tra mà không -p là tốt. (điều đó làm cho nó bền bỉ)
Grizly

Tôi nhận được kết quả tương tự với phần "số liệu 1 nếu 2".
phân hạch

Ohh, xấu của tôi, có vẻ như cổng là ip của giao diện .. câu trả lời được cập nhật.
Grizly

Phải, đó là những gì tôi đã làm, và những gì tôi đã hy vọng tránh. Dù sao cũng cảm ơn.
phân hạch

21

Trong cửa sổ, bạn có thể thêm tuyến dựa trên giao diện mà không cần biết giao diện bằng cách chuyển qua 0.0.0.0làm cổng

cái này cho cái gì đó như thế này:

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
Tôi đã thử điều này trên Windows 7 x64. Nó hoạt động! Lệnh của tôi: route ADD 176.31.111.111 0.0.0.0 IF 25Nó đã trả về OK!và một mục mới xuất hiện trong bảng định tuyến như mong đợi
Dmitry

6

Tôi đã nhận được điều tương tự trong Windows 7 Enterprise với ứng dụng khách Juniper Junos Pulse VPN.
Tôi gặp vấn đề với điều này, vì nó đã chiếm được tất cả các địa chỉ IPv4 có thể và chuyển chúng sang kết nối quay số:

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

Tôi không muốn tất cả lưu lượng truy cập của mình đi qua VPN, vì vậy trong trường hợp có ai cần nó, tôi đã viết một tệp cmd nhỏ để xóa các tuyến này và sau đó cài đặt duy nhất tôi cần (10.0.0.0) mà không thể chỉ định một cổng , bằng cách chỉ định giao diện phù hợp.
Bạn có thể sử dụng điều này để tự động lấy số của một giao diện.

@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
bạn chỉ có thể vô hiệu hóa "bắt buộc đường hầm" trong phần thuộc tính ip của kết nối vpn của bạn.
người đi bộ kỳ lạ

5

Số giao diện trong thập phân được hiển thị với route print. Nhìn vào đầu của đầu ra dưới Interface List.

Một cách khác là sử dụng arp -avà ghi chú số thập lục phân, ví dụ:

C:\>arp -a

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

Cả hai đều được chấp nhận sau khi ifđối số trong route.exe, ví dụ:

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

Tôi thích arp -a, vì nó dễ dàng hơn để xác định NIC.

Nhiều cách khác, nhưng đây là cách đơn giản nhất.


0

Bạn không thể bỏ qua cổng trong bảng cố định. Một số người đề nghị đặt IP thẻ giao diện (phía người dùng), có thể chấp nhận được trong Windows XP. Nhưng nó không còn giá trị nữa. Hệ điều hành sẽ tiếp tục gõ mọi giao diện mạng trong trường hợp này, ít nhất là cho đến khi bộ nhớ cache được điền; nó không phải là một hành vi tốt và không có sự khác biệt với bảng định tuyến trống.

Tôi phát hiện ra rằng việc đặt IP đích làm cổng để giải quyết vấn đề ít nhất là trên Windows 10. Nhưng hiện tại tôi có rất ít số liệu thống kê để xác nhận đó là sự thật 100,1%.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.