Wyświetlanie mojej witryny hostowanej przez IIS na innych komputerach w mojej sieci

102

W domu mam prostą konfigurację sieciową obejmującą 2 maszyny.

Na jednym komputerze mam witrynę hostowaną przez IIS7. Zamiast standardowego localhost/index.htmadresu dodałem wpis w HOSTSpliku wskazujący lokalny adres IP (127.0.0.1) do tej domeny - www.mysite.dev.

Mogę wejść na stronę www.mysite.devbez problemu.

co chciałbym zrobić, to móc przeglądać tę witrynę z mojego innego komputera w sieci.

Początkowo zakładałem, że można to zrobić za pomocą takiego adresu URL MACHINE-NAME/www.mysite.dev, ale połączenie zawsze się kończy. Ale mogę pingować MACHINE-NAMEbez problemów.

Do celów testowych wyłączyłem zaporę systemu Windows na obu komputerach, ale bez radości.

Podobnie jak w przypadku typowego programisty internetowego, moje umiejętności sprzętowe / sieciowe są dość słabe.

Czy ktoś może zobaczyć, gdzie idę źle?

Truegilly
źródło
Czy próbowałeś po prostu połączyć się z MACHINE-NAME ?
Lazarus

Odpowiedzi:

155

Jak powiedzieli inni, Twoja zapora sieciowa musi być skonfigurowana do przyjmowania połączeń przychodzących na porcie TCP 80 .

w win 7+ (łatwy sposób na kreacje)

  1. przejdź do zapory systemu Windows z zaawansowanymi zabezpieczeniami
  2. Reguły przychodzące -> Akcja -> Nowa reguła
  3. wybierz przycisk radiowy Predefiniowane , a następnie wybierz ostatnią pozycję - World Wide Web Services (HTTP)
  4. kliknij dalej i pozostaw kolejne kroki bez zmian ( zezwól na połączenie )

  • Ponieważ ruch wychodzący (z serwera do świata zewnętrznego) jest domyślnie dozwolony. Oznacza to na przykład odpowiedzi http, które serwer sieciowy odsyła do zewnętrznych użytkowników i żądań

  • Jednak ruch przychodzący (pochodzący ze świata zewnętrznego do serwera) jest domyślnie blokowany , podobnie jak żądania internetowe użytkownika pochodzące z ich przeglądarki, która domyślnie nie może dotrzeć do serwera internetowego i należy go otworzyć.

Możesz także przyjrzeć się bliżej regułom ruchu przychodzącego i wychodzącego na tej stronie

Iman
źródło
Jeśli nadal nie działa, możesz wyłączyć samą zaporę, przynajmniej dla środowiska programistycznego.
USER_NAME
@Contristo, moje uczucia dokładnie :)
Bryan Rayner
1
@hitesh, musisz tylko otworzyć port 80 przez włączoną zaporę. jeśli nie masz nawet uprawnień do dodawania portów, zwykle powinieneś poprosić powiązany zespół pomocy o otwarcie tego portu dla tego serwera
Iman.
1
@Hitesh: możesz hostować swoją witrynę na porcie innym niż 80 i zezwolić tylko na ten port. Zobacz moją odpowiedź poniżej, jak to zrobić.
Syed Ali Taqi
1
Szybki dostęp do Zapory systemu Windows z zaawansowanymi zabezpieczeniami: Win + R, a następnie wpisz mmc.exe wf.msc.
mekb
35

Jeśli hostujesz witrynę internetową na określonym porcie w usługach IIS, na przykład 4321 , musisz zezwolić na ten port również przez Zaporę systemu Windows. Oto kroki, które wykonałem wraz z odpowiedzią imanabidi, aby to zadziałało dla mnie:

  1. Zapora systemu Windows> Ustawienia zaawansowane
  2. Reguły przychodzące> Nowa reguła
  3. Wybierz Port> Dalej
  4. Określone porty lokalne> Dodaj port, na który chcesz zezwolić
  5. Zezwalaj na wszystkie połączenia
  6. Wpisz nazwę i opis, abyś je później zapamiętał
  7. Gotowe
Syed Ali Taqi
źródło
10

Przede wszystkim spróbuj połączyć się z adresem IP LAN twojego serwera. Jeśli w usługach IIS skonfigurowano tylko jedną witrynę sieci Web, istnieje prawdopodobieństwo, że witryna zostanie wyskakująca.

Jeśli chcesz uzyskać do niego dostęp za pomocą nazwy, musisz dodać wpis w pliku HOSTS każdego komputera klienckiego, na którym chcesz przeglądać witrynę (oczywiście nie do 127.0.0.1, ale do lokalnego adresu IP twojego serwera).

Ponadto zapora sieciowa musi być skonfigurowana tak, aby akceptowała połączenia przychodzące na porcie 80.

Zwykle jest to punkt, w którym bardziej sensowne jest skonfigurowanie usługi DNS, w której można zarejestrować nazwy takie jak „mysite.dev” centralnie, bez konieczności majstrowania przy plikach hostów. Ale to inna historia i należy do superuser.com lub serverfault.com.

Pekka
źródło
1
Zapora jest tutaj najważniejszą częścią.
Pierre
6

Otwórz ustawienia zapory. Następnie wyszukaj coś w rodzaju - Zezwól programowi lub funkcji na przepuszczanie przez zaporę. Jeśli na liście Usługi World Wide Web (HTTP) nie jest zaznaczone, zaznacz to i uruchom ponownie system.

Nasza maszyna jest gotowa do przyjmowania żądań przychodzących.

Harika Kakkireni
źródło
3

Bardzo późna odpowiedź, ale podkreślę pewien punkt, ponieważ musiałem sobie z tym poradzić lata temu, konfigurując moją witrynę IIS w sieci

  1. Oba komputery powinny być podłączone do tej samej sieci (ta sama sieć bezprzewodowa jest w porządku)
  2. Uzyskaj dostęp do zdalnego komputera przez IP 168.192.x.xlub przez http://his-pc-name(nie zapomnij o części http)
  3. Spowoduje to serwerowanie domyślnej strony usług IIS na komputerze zdalnym (tej samej, która jest obsługiwana przez hosta lokalnego). Jeśli chcesz serwerować inną witrynę, [musisz ustawić tę opcję jako domyślną] najpierw 1 .

Upewnij się, że usługi IIS działają poprawnie na komputerze zdalnym, sprawdzając, localhostktóra witryna powinna obsługiwać domyślną witrynę. Upewnij się również, że Twoja zapora jest skonfigurowana tak, aby zezwalała na połączenie przez port 80 lub możesz po prostu wyłączyć zaporę na razie do celów testowych.

Hammad Khan
źródło
Używanie adresu IP zamiast nazwy mojej stacji roboczej zadziałało. Twoje zdrowie!
hatsrumandcode
3

Oprócz modyfikowania zapory, nie zapomnij dodać również powiązania portów!

Otwórz $(SolutionDir)\.vs\config\applicationHost.configi znajdź wiążące definicje, powinno wyglądać mniej więcej tak

<sites>
    <site name="Samples.Html5.Web" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Git\Samples.Html5.Web" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:63000:localhost" />
        </bindings>
    </site>
    ...
</sites>

Po prostu dodaj dodatkowe linie, aby odzwierciedlić adres IP komputera i wyznaczony port

<bindings>
    <binding protocol="http" bindingInformation="*:63000:localhost" />
    <binding protocol="http" bindingInformation="*:63000:10.0.0.201" />
</bindings>

Źródło: https://blog.falafel.com/expose-iis-express-site-local-network/

Korayem
źródło
2
Wiązanie portów było dla mnie ważnym krokiem! Użyłem IIS Express, który domyślnie nie zezwala na dostęp przez adres IP (tylko localhost). Więc bez tego kroku wyżej ocenione odpowiedzi nie będą dla mnie działać!
JonoB
2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

U mnie to zadziałało

Santhosh Legent
źródło
2

Może być późno, ale dla każdej innej osoby, która może mieć taki problem w przyszłości, dla wszelkich połączeń, które chcesz nawiązać z serwerem (w tym przypadku maszyna, na której znajduje się aplikacja internetowa, niezależnie od tego, czy jest to iis czy xampp) trzeba zezwolić na połączenie lub ruch przez określony port, który będzie używany w zaporze

1. Go to Windows Firewall -> Advanced settings
2. Click Inbound Rules -> Then New Rule
3. Select Port -> Next
4. Specific local ports -> Add the Port you want to allow
5. Allow All Connections
6. Enter a name and a description for to help you remember later on

i gotowe

Antoh
źródło
1

Po zainstalowaniu programu antywirusowego napotkałem ten problem i zauważyłem, że mój firewall automatycznie ustawił się jako włączony, teraz właśnie wyłączyłem firewall i to rozwiązało mój problem. Mam nadzieję, że to komuś pomoże :)

Bhavin Chauhan
źródło
0

127.0.0.1 zawsze wskazuje na localhost. W sieci domowej powinieneś mieć adres IP przypisany przez router internetowy (dsl / modem kablowy / cokolwiek). Musisz powiązać swoją witrynę z tym adresem. Powinieneś wtedy móc użyć nazwy komputera, aby dostać się do witryny internetowej, ale zalecałbym faktyczną edycję pliku hosts danego komputera klienckiego, aby wskazać określoną nazwę na tym komputerze. Plik hosts można znaleźć w c: \ windows \ system32 \ drivers \ etc \ hosts (użyj notatnika), a wpis będzie wyglądał następująco:

192.168.1.1     mycomputername
Joel Etherton
źródło
@JenishZinzuvadiya: Co? Twój komentarz nie ma sensu.
Joel Etherton
-1

Musisz wykonać następujące kroki.

Idź do IIS ->
Sites->
Kliknij na swojej stronie internetowej ->
W Akcji Kliknij na Edytuj uprawnienia ->
Zabezpieczenia ->
kliknij przycisk Dodaj ->
Zaawansowane ->
Znajdź teraz ->
Dodaj wszystkich użytkowników, w tym ->
i udzielić wszystkie uprawnienia innym użytkownikom ->
kliknij Ok.

Jeśli wykonasz powyższe czynności poprawnie, możesz uzyskać dostęp do swojej witryny internetowej za pomocą domeny.
Sugestia - nie dodawaj nazwy hosta do swojej witryny, ponieważ czasami stwarza problem. Dlatego hostuj swoją witrynę internetową, używając adresu IP swojego komputera.

Rakesh Surve
źródło