Xem trang web được lưu trữ IIS của tôi trên các máy khác trong mạng của tôi


101

Ở nhà tôi có một thiết lập mạng đơn giản gồm 2 máy.

Trên một máy, tôi có một trang web được lưu trữ bằng IIS7. Thay vì localhost/index.htmđịa chỉ chuẩn, tôi đã thêm một mục nhập trong HOSTStệp trỏ địa chỉ IP cục bộ (127.0.0.1) đến miền này - www.mysite.dev.

Tôi có thể truy cập trang web www.mysite.devmà không có vấn đề gì.

những gì tôi muốn làm là có thể xem trang web này từ máy khác của tôi trên mạng.

Ban đầu, tôi cho rằng điều này có thể được thực hiện với một URL như vậy MACHINE-NAME/www.mysite.dev, nhưng kết nối luôn hết thời gian chờ. Nhưng tôi có thể ping MACHINE-NAMEmà không gặp vấn đề gì.

Vì mục đích thử nghiệm, tôi đã vô hiệu hóa tường lửa cửa sổ trên cả hai máy nhưng không vui.

Giống như một nhà phát triển web thông thường, kỹ năng phần cứng / mạng của tôi khá kém.

Có ai có thể thấy tôi đang làm sai ở đâu không?


Bạn đã thử kết nối với MACHINE-NAME chưa?
Lazarus

Câu trả lời:


155

Như những người khác đã nói Tường lửa của bạn cần được cấu hình để chấp nhận các cuộc gọi đến trên Cổng TCP 80 .

trong win 7+ (dễ dàng theo cách thuật sĩ)

  1. vào tường lửa windows với bảo mật nâng cao
  2. Quy tắc đến -> Hành động -> Quy tắc mới
  3. chọn nút radio Định sẵn và sau đó chọn mục cuối cùng - World Wide Web Services (HTTP)
  4. nhấp vào tiếp theo và giữ nguyên các bước tiếp theo ( cho phép kết nối )

  • Bởi vì lưu lượng truy cập đi (từ máy chủ đến thế giới bên ngoài) được cho phép theo mặc định . Điều này có nghĩa là ví dụ: phản hồi http mà máy chủ web đang gửi lại cho người dùng và yêu cầu bên ngoài

  • Nhưng lưu lượng truy cập vào (bắt nguồn từ thế giới bên ngoài đến máy chủ) bị chặn theo mặc định giống như yêu cầu web của người dùng bắt nguồn từ trình duyệt của họ mà không thể truy cập máy chủ web theo mặc định và bạn phải mở nó.

Bạn cũng có thể xem xét kỹ hơn các quy tắc đến và đi tại trang này


Nếu nó vẫn không hoạt động, thì bạn có thể Tắt tường lửa, ít nhất là đối với môi trường phát triển.
USER_NAME

@Contristo, tình cảm của tôi chính xác :)
Bryan Rayner

1
@hitesh, bạn chỉ cần mở cổng 80 thông qua tường lửa đã bật. nếu bạn không có sự cho phép thậm chí để thêm cổng bạn thường nên yêu cầu nhóm hỗ trợ liên quan để mở cổng này cho máy chủ này cho bạn
Iman

1
@Hitesh: bạn có thể lưu trữ trang web của mình trên cổng khác 80 và chỉ cho phép cổng đó cho bạn. Xem câu trả lời của tôi bên dưới về cách thực hiện.
Syed Ali Taqi

1
Truy cập nhanh vào Tường lửa của Windows với Bảo mật nâng cao: Win + R rồi nhập mmc.exe wf.msc.
facepalm42

35

Nếu bạn đang lưu trữ trang web trên một cổng cụ thể trong IIS như 4321 thì bạn cũng phải cho phép cổng này thông qua Tường lửa của Windows. Đây là các bước mà tôi đã làm theo cùng với câu trả lời của imanabidi để làm cho nó hoạt động với tôi:

  1. Tường lửa Windows> Cài đặt nâng cao
  2. Quy tắc đến> Quy tắc mới
  3. Chọn Cổng> Tiếp theo
  4. Các cổng cục bộ cụ thể> Thêm cổng bạn muốn cho phép
  5. Cho phép tất cả các kết nối
  6. Nhập tên và một số mô tả để sau này bạn nhớ lại
  7. Làm xong

10

Trước hết, hãy thử kết nối với IP LAN của máy chủ của bạn. Nếu IIS chỉ được thiết lập với một trang web, rất có thể trang web của bạn sẽ bật lên.

Nếu bạn muốn truy cập nó bằng tên, bạn sẽ phải thêm một mục nhập trong tệp HOSTS của mọi máy tính khách mà bạn muốn xem trang web với (rõ ràng không phải đến 127.0.0.1, mà là địa chỉ IP cục bộ của máy chủ của bạn).

Ngoài ra, Tường lửa của bạn cần được cấu hình để chấp nhận các cuộc gọi đến trên Cổng 80.

Đây thường là điểm hợp lý hơn khi thiết lập một dịch vụ DNS mà bạn có thể đăng ký các tên như "mysite.dev" một cách tập trung mà không cần phải thao tác với các tệp máy chủ. Nhưng đó là một câu chuyện khác và thuộc về superuser.com hoặc serverfault.com.


1
Tường lửa là phần quan trọng nhất ở đây.
Pierre

6

Mở cài đặt tường lửa. Sau đó, tìm kiếm một cái gì đó như - Cho phép chương trình hoặc tính năng cho phép thông qua tường lửa. Nếu trong danh sách World Wide Web services (HTTP) không được chọn, hãy kiểm tra nó và khởi động lại hệ thống.

Máy của chúng tôi được thiết lập để chấp nhận các yêu cầu gửi đến.


3

Câu trả lời rất muộn nhưng tôi sẽ nhấn mạnh một số điểm vì tôi đã phải đối phó với nó nhiều năm trước khi thiết lập trang web IIS của tôi trên mạng

  1. Cả hai máy của bạn phải được kết nối với cùng một mạng (cùng một mạng không dây cũng được)
  2. Truy cập máy từ xa của bạn qua IP 168.192.x.xhoặc qua http://his-pc-name(đừng quên phần http)
  3. Điều này sẽ phục vụ trang IIS mặc định trên máy tính từ xa (giống như trang được cung cấp thông qua localhost). Nếu bạn muốn máy chủ trang web khác, [bạn phải chắc rằng mặc định] đầu tiên 1 .

Đảm bảo rằng IIS của bạn hoạt động tốt trên máy từ xa bằng cách kiểm tra xem máy localhostnào sẽ phục vụ trang web mặc định. Đồng thời đảm bảo rằng tường lửa của bạn được định cấu hình để cho phép kết nối qua cổng 80 hoặc bạn chỉ có thể vô hiệu hóa tường lửa trong thời gian này cho mục đích thử nghiệm.


Sử dụng IP thay vì tên máy trạm của tôi đã hoạt động. Chúc mừng!
hatrumandcode

3

Ngoài việc sửa đổi tường lửa của bạn, đừng quên thêm cổng ràng buộc!

Mở $(SolutionDir)\.vs\config\applicationHost.configvà tìm các định nghĩa ràng buộc, sẽ giống như thế này

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

Chỉ cần thêm các dòng bổ sung để phản ánh IP máy và cổng được chỉ định của bạn

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

Nguồn: https://blog.falafel.com/expose-iis-express-site-local-network/


2
Port Binding là một bước quan trọng đối với tôi! Tôi đang sử dụng IIS Express sẽ không cho phép truy cập qua địa chỉ IP theo mặc định (chỉ localhost). Vì vậy, nếu không có bước này, các câu trả lời được xếp hạng cao hơn sẽ không phù hợp với tôi!
JonoB

2
 Control Panel>System and Security>Windows Firewall>Allowed Programs-> then check all " World Wide Web Services(Http) tab". 

Nó đã làm việc cho tôi


2

Có thể là muộn, nhưng đối với bất kỳ người nào khác có thể gặp sự cố như vậy trong tương lai, đối với bất kỳ kết nối nào bạn muốn thực hiện với máy chủ (trong trường hợp này là máy lưu trữ ứng dụng web, bất kể đó là iis hay xampp) bạn cần cho phép kết nối hoặc lưu lượng thông qua cổng cụ thể sẽ được sử dụng trong tường lửa

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

và bạn đã hoàn thành


1

Sau khi cài đặt phần mềm chống vi-rút, tôi gặp phải vấn đề này và tôi nhận thấy rằng tường lửa của tôi tự động đặt như bật, Bây giờ tôi chỉ cần tắt tường lửa và nó đã giải quyết được sự cố của tôi. Hy vọng nó sẽ giúp ích cho ai đó :)


0

127.0.0.1 luôn trỏ đến localhost. Trên mạng gia đình, bạn nên có địa chỉ IP được chỉ định bởi bộ định tuyến internet của bạn (dsl / cablemodem / bất cứ thứ gì). Bạn cần liên kết trang web của mình với địa chỉ này. Sau đó, bạn sẽ có thể sử dụng tên máy để truy cập trang web, nhưng tôi khuyên bạn nên thực sự chỉnh sửa tệp máy chủ của máy khách được đề cập để trỏ một tên cụ thể vào máy tính đó. Tệp máy chủ có thể được tìm thấy tại c: \ windows \ system32 \ drivers \ etc \ hosts (sử dụng notepad) và mục nhập sẽ giống như sau:

192.168.1.1     mycomputername

@JenishZinzuvadiya: Cái gì? Nhận xét của bạn không có ý nghĩa.
Joel Etherton

-1

Bạn phải thực hiện các bước sau.

Đi tới IIS ->
Sites->
Nhấp vào trang Web của bạn ->
Thực hiện Nhấp vào Chỉnh sửa quyền ->
Bảo mật ->
Nhấp vào THÊM ->
Nâng cao ->
Tìm ngay ->
Thêm tất cả người dùng trong đó ->
và cấp tất cả quyền cho người dùng khác ->
nhấp vào Ok.

Nếu bạn làm đúng những điều trên, bạn có thể truy cập trang web của mình bằng cách sử dụng miền của bạn.
Đề xuất - Không thêm tên máy chủ vào trang web của bạn, nó sẽ tạo ra vấn đề đôi khi. Vì vậy, hãy lưu trữ trang web của bạn bằng địa chỉ ip máy của bạn.

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.