Chcę skonfigurować plik hosts Windows , aby wysyłał żądania hostów na podstawie adresu IP + portów.
Na przykład:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Ponieważ mam Apache nasłuchujący na porcie 8080 i IIS na porcie 80 (domyślnie).
Myślę więc, że najlepszym sposobem na to jest modyfikacja hosts
pliku. Nic na to nie wpływa. Ani nie otrzymuję żadnego błędu ani żadnej wiadomości.
iis
apache-2.2
Peter Mortensen
źródło
źródło
Odpowiedzi:
Nie możesz Plik hosts jest właśnie taki - hosts. Jest to odpowiednik „zwartego” DNS na twoim komputerze lokalnym. DNS nie może również wysłać Cię do portów.
Aby osiągnąć to, co próbujesz zrobić, powinieneś skonfigurować wirtualny hosting w IIS lub Apache i użyć go (w oparciu o nagłówek HTTP Host:), aby pozwolić usłudze zdecydować, którą stronę przedstawić. To ci nie pomoże, jeśli chcesz robić to jednocześnie z IIS i Apache.
źródło
hosts
Plik jest tylko do rozpoznawania nazw hostów<hostname>:<port>
, domyślnie do portu80
Typowy scenariusz problemu
127.0.0.1
akalocalhost
(zdefiniowany w pliku hosts) .Aby uniknąć kolizji między ewentualnie innymi istniejącymi / działającymi serwerami, aplikacja zazwyczaj pozwala na zmianę portu, ale nie adresu IP.
2a. Jeśli możesz zmienić adres IP serwera na inny w zarezerwowanej przestrzeni adresowej pętli zwrotnej
127.0.0.0/8
, prawdopodobnie nie będziesz próbował ustawić portów w pliku hosts.Możliwe rozwiązanie
Można obejść ten problem za pomocą narzędzia sieciowego dołączonego do systemu Windows
netsh
jako serwera proxy portu.Przegląd
działania
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
Można użyć dowolnego bezpłatnego adresu w sieci .127.65.43.21:80
nie jest zajęty przez inną usługę.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Uwagi:
- Te polecenia / modyfikacje plików muszą być wykonywane z uprawnieniami administratora
- netsh portproxy potrzebuje bibliotek ipv6 nawet tylko do korzystania z v4tov4, zazwyczaj będą one również domyślnie dołączone, w przeciwnym razie zainstaluj je za pomocą następującego polecenia:
netsh interface ipv6 install
Możesz zobaczyć wpis dodany za pomocą polecenia:
netsh interface portproxy show v4tov4
Możesz usunąć wpis za pomocą następującego polecenia:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Linki do zasobów:
Uwaga: ta odpowiedź jest duplikatem mojej odpowiedzi omówionej w tym podobnym pytaniu / odpowiedzi na temat przepełnienia stosu.
źródło
Nie możesz. Jeśli to nie działa, coś innego idzie nie tak.
Zakładam, że to jest dla pudełka programistycznego?
DNS rozpoznaje site.com i www.site.com na localhost, o ile nie robisz czegoś takiego jak proxy zapytań DNS. Prawdopodobnie powinieneś poprosić w ServerFault o pomoc w konfiguracji serwera, to najprawdopodobniej problem.
źródło
Możesz to zrobić za pomocą Fiddlera . Dzięki skryptowi Fiddler możesz uzyskać wiele niesamowitych rzeczy.
Jeśli ustawisz takie hosty
Dodaj to w CustomRules.js (aby otworzyć CustomRules.js , wybierz Dostosuj reguły w menu Reguły Fiddlera )
Następnie Fiddler przekonwertuje hosta, a połączysz się z portem 8080.
źródło
Czy używasz serwerów tylko do rozwoju lokalnego? Jeśli tak, możesz ustawić serwer Apache na odsłuchiwanie 127.0.0.2:80 i przekierować go za pomocą pliku hosts na nazwę domeny, którą lubisz.
źródło
Podobnie jak w przypadku innych odpowiedzi, plik hosta nie ma informacji o porcie, ale możesz mieć stronę, która przekierowuje stronniczo na nagłówek, tak jak apache lub IIS dla wirtualnego hostingu opartego na nazwach. Sprawdź nagłówek i przekieruj w razie potrzeby. Jednak tak naprawdę nie widzę w tym wartości, ponieważ wymyślasz koło na nowo. Apache obsługuje wirtualny hosting oparty na portach i zakładam, że iis to robi.
Czy Twoim celem jest posiadanie maszyny deweloperskiej z oboma działającymi naszymi maszynami, jest to odpowiednie do sytuacji produkcyjnej.
źródło
Wykonaj następujące kroki:
/programming/8652948/using-port-number-on-windows-xp-host-file
źródło
To możesz zrobić, byłoby to pomocne tylko dla rozwoju lokalnego.
plik hosts:
W usługach IIS utwórz nową stronę internetową oraz dla local.site1.com i local.site2.com
Konfiguracja IIS
Możesz ruszać. Upewnij się tylko, że porty, których użyłeś, nie są używane przez inny proces, a także są otwarte z zapory ogniowej, programu antywirusowego itp.
Następnie możesz użyć następujących adresów URL w celu uzyskania dostępu do stron internetowych z lokalnego komputera lub z sieci LAN.
źródło