Jak zmapować adres IP na localhost?

16

Chcę zamapować adres IP 192.168.1.222 na 127.0.0.1, aby w przypadku użycia 192.168.1.222 w przeglądarce internetowej lub poleceniu ping otrzymałem odpowiedź (i to z mojej wersji 127.0.0.1).

Czy jest to możliwe za pomocą tabel routingu, czy muszę dodać jakiś wirtualny adapter sieciowy?

Próbuję poradzić sobie z tym problemem na komputerze z systemem Windows 7 i może nie mam innych opcji niż Windows XP.

Utknąłem tam.

Sebastian
źródło
Nie wiem, czy to możliwe, ale łatwo jest zrobić z nazwami hostów. Czy to tylko dla jednego komputera?
Kanadyjczyk Łukasz
Dobra, dwa pytania tutaj: 1. Jeśli próbujesz dostać się do systemu lokalnego w przeglądarce internetowej, dlaczego nie korzystać 127.0.0.1cały czas? 2. Jeśli dotyczy to systemu lokalnego, po co w ogóle zajmować się uciążliwymi adresami IP zamiast korzystania z zarezerwowanej nazwy hosta localhost?
Iszi
@DiogoRocha Ulepsz swoje edycje bardziej niż te. Pojedynczy znak lub wielkie litery terminu nie są wystarczająco odpowiednie do edycji, która przesunie tematy na pierwszą stronę. Ten i ten temat dotyczą sugerowanych zmian, ale zasada obowiązuje nawet wtedy, gdy masz uprawnienia do edycji. Dzięki.
Daniel Beck
@Luke: Nie mogę pracować z nazwami hostów, więc plik hosts nie jest tutaj wykonalny
Sebastian
@Iszi: Potrzebuję, żeby program pomyślał, że jest tam inna maszyna.
Sebastian,

Odpowiedzi:

15

Musisz przypisać adres IP 192.168.1.222 do jednego z interfejsów sieciowych. Zwykła zmiana tabeli routingu nie przyniesie pożądanego rezultatu; ruch rzeczywiście dotarłby do hosta lokalnego, ale komputer uzna, że ​​wiadomość nie dotarła jeszcze do miejsca docelowego. Brak dalszych opcji przekazywania wiadomości spowoduje jej usunięcie.

Przypisanie 192.168.1.222 do jednego z fizycznych interfejsów byłoby najprostszym rozwiązaniem, ale jeśli nie masz zapasowego interfejsu i nie chcesz, aby zmiany wpływały na resztę sieci, możesz utworzyć inny interfejs sprzężenia zwrotnego, podobny do interfejsu o 127.0.0.1.

Procedura zmieniła się nieco od czasu Windows XP . Otwórz menedżera urządzeń za pomocą panelu sterowania i w menu Akcja kliknij polecenie „Dodaj starszy sprzęt”. Jeśli nie ma tej opcji, kreator można uruchomić za pomocą wykonywalnego pliku „hdwwiz.exe”.

Menadżer urządzeń

Gdy zostaniesz o to poproszony, wybierz sprzęt ręcznie z listy zamiast instalować go automatycznie. W następujących menu wybierz „Network Adapter”, „Microsoft” jako producenta i poszukaj „Microsoft Loopback Adapter”. Jeśli urządzenie zostało poprawnie zainstalowane, nowa karta sieciowa pojawi się w menedżerze urządzeń.

Otwórz Centrum sieci i udostępniania za pomocą panelu sterowania i kliknij „Zmień ustawienia karty” na lewym pasku. Pojawi się następujące okno, w tym nasz nowo zainstalowany adapter.

Połączenia sieciowe

Otwórz jego właściwości. Na karcie Sieć wybierz element IPv4 i kliknij przycisk Właściwości. Wprowadź adres IP, który chcesz przypisać interfejsowi sprzężenia zwrotnego. Ponieważ będzie to jedyny interfejs w jego sieci, wpisujemy „255.255.255.255” jako maskę podsieci.

Adresy IP

Voila

C:\Users\Marcks>ping 192.168.1.122

Pinging 192.168.1.122 with 32 bytes of data:
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128
Reply from 192.168.1.122: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.1.122:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
Marcks Thomas
źródło
1
W systemie Windows 7 urządzenie nosiło nazwę „Microsoft KM-TEST Loopback Adapter”. W przeciwnym razie ten komentarz był trafiony i działał idealnie dla mnie! Dziękuję Ci bardzo!
Prawdziwe nazwisko zredagowano
W Menedżerze urządzeń systemu Windows 10 ta opcja nie jest już dostępna. Można uzyskać do niego dostęp, uruchamiając hdwwiz.exe.
Samir Aguiar
8

Uruchom w wierszu polecenia administratora:

C:\Windows\system32>netsh int ip add address "Loopback" 192.168.1.222

C:\Windows\system32>netsh int ip show addresses

接口 "Loopback Pseudo-Interface 1" 的配置
    DHCP 已启用:                          否
    IP 地址:                           192.168.1.222
    子网前缀:                        192.168.1.0/24 (掩码 255.255.255.0)
    IP 地址:                           127.0.0.1
    子网前缀:                        127.0.0.0/8 (掩码 255.0.0.0)
    InterfaceMetric:                      75

C:\Windows\system32>ping 192.168.1.222

正在 Ping 192.168.1.222 具有 32 字节的数据:
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128
来自 192.168.1.222 的回复: 字节=32 时间<1ms TTL=128
lk_vc
źródło
7

Powinno to działać zarówno w systemie Windows 7, jak i XP z poziomu okna poleceń:

route ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1

Jeśli chcesz, aby nowa trasa była trwała między restartami:

route -p ADD 192.168.1.222 MASK 255.255.255.255 127.0.0.1
Raihan
źródło
Ta metoda nie działa. Nie otrzymuję polecenia ping 192.168.1.222, aby zwrócić odpowiedź. Teraz dodałem do interfejsu wiele adresów IP (Aliasing IP), ale nawet to nie działa, ponieważ usługa, z którą próbuję się komunikować, wydaje się słuchać tylko 1 adresu IP.
Sebastian,
2
Teraz, gdy o tym myślę, jestem prawie pewien, że to nie zadziała, chyba 192.168.1.222że adres IP faktycznie należy do komputera lokalnego, w którym to przypadku i tak byłby zbędny. Zmusi komputer do wysyłania pakietów przeznaczonych 192.168.1.222do pętli zwrotnej, ale po stronie odbierającej zostaną odrzucone, jeśli nie jest to lokalny adres IP.
Iszi
Działa to dla mnie idealnie, jeśli i tylko jeśli dodam pasujący wpis w pliku hosts. Zauważ jednak, że moja sprawa jest odwrócona, ponieważ mapuję localhost na zewnętrzny adres IP (w tym przypadku adres IP mojego hosta maszyny wirtualnej).
Jim O'Brien
@ JimO'Brien Czy to oznacza, że ​​użyłeś route ADD 127.0.0.1 MASK 255.255.255.255 192.168.1.222zamiast tego?
Shayan
To polecenie nie działa dla mnie, otrzymuję:The route addition failed: The parameter is incorrect.
Shayan