Làm thế nào để cho phép truy cập bên ngoài localhost


184

Làm cách nào tôi có thể cho phép truy cập bên ngoài localhost tại Angular2? Tôi có thể điều hướng localhost:3030/paneldễ dàng nhưng tôi không thể điều hướng khi tôi viết IP của mình như 10.123.14.12:3030/panel/.

Bạn có thể vui lòng cho phép tôi làm thế nào để sửa chữa nó? Tôi không sử dụng npm(quản lý dự án nút - cài đặt nút / bắt đầu nút) để cài đặt và chạy dự án.

Nếu bạn muốn, tôi có thể cung cấp của tôi package.jsonindex.html.


1
bạn có dùng ng phục vụ không?
mast3rd3mon

1
vâng tôi đang sử dụng máy chủ ng
Tonyukuk

2
bạn đã thử phục vụ --host 10.123.14.12 chưa?
Digvijay

1
Tôi mệt mỏi phục vụ và nó nói "Tôi phải ở trong một dự án góc cạnh để sử dụng lệnh phục vụ".
Tonyukuk

Câu trả lời:


338

Sử dụng ng serve --host 0.0.0.0sẽ cho phép bạn kết nối với việc ng servesử dụng ip của bạn thay vì localhost.

BIÊN TẬP

Trong các phiên bản mới hơn của cli, thay vào đó bạn phải cung cấp địa chỉ IP cục bộ của mình

CHỈNH SỬA 2

Trong các phiên bản mới hơn của cli (tôi nghĩ v5 trở lên), bạn có thể sử dụng lại 0.0.0.0làm ip để lưu trữ nó cho bất kỳ ai trên mạng của bạn nói chuyện.


1
nó nói "bạn phải ở trong một dự án angluar - cli để sử dụng lệnh phục vụ" với cảnh báo màu đỏ khi tôi viết ng sveve và cũng là một thông báo màu vàng cho biết tôi đang chạy phiên bản 6.2.2 của Node, trong đó sẽ không được hỗ trợ trong các phiên bản tương lai của CLI sau khi viết phục vụ
Tonyukuk

1
đầu tiên, hãy thử cập nhật nút, thứ hai, thử khởi động lại terminal / vscode của bạn
mast3rd3mon

1
Tôi đã cập nhật nó từ gói json lên 6.0.46 dưới dạng "@ type / node": "6.0.46", nhưng vẫn nhận được thông báo tương tự
Tonyukuk

1
Tôi không hiểu cách mọi người đưa ra - bỏ phiếu cho câu hỏi của tôi và tôi không biết ai làm điều đó. Ngay cả bạn hiểu sai câu hỏi và cho tôi câu trả lời sai họ vẫn đưa ra danh tiếng "-". Tôi tự tìm câu trả lời. Tôi đã định thêm "" máy chủ ":" webpack-dev-server --inline --proceed --host 0.0.0.0 --port 3000 "," vào packjson
Tonyukuk

7
Điều này làm việc cho tôi:ng serve --open --host 0.0.0.0 --disable-host-check
Jonathan.Brink

39

Người dùng Mac:

  1. Chuyển đến Tùy chọn hệ thống -> Mạng -> Wi-Fi
  2. Sao chép địa chỉ IP bên dưới Trạng thái (Thông thường 192.168.1.x)
  3. Dán nó trong ng của bạn phục vụ như: ng serve --host 192.168.1.x

Sau đó, bạn phải có thể xem trang của bạn trên các thiết bị khác thông qua 192.168.1.x:4200.


1
Được sử dụng để làm việc cho tôi và không làm việc nữa. Tự hỏi tại sao. Tôi cảm thấy như tôi đã thử mọi thứ! Tường lửa của tôi bị vô hiệu hóa. ng phục vụ --host 10.xxx --disable-host-check / ng phục vụ --host 0.0.0.0 --disable-host-check -> Không thể truy cập từ một máy từ xa Windows trên cùng một mạng với 10.xxx : 4200
Rafaël Moser

Hoạt động tốt trong Angular 7 và MacOS 10.14.6
bks

Đối với những gì nó có giá trị, câu trả lời được chấp nhận đang hoạt động với tôi trên MacOS kể từ tháng 10 năm 2019.
Alexander Nied

Điều này hiệu quả với tôi và sau khi tìm kiếm rất xa, đó là câu trả lời duy nhất tôi thấy để chỉ định bước quan trọng này: trong thanh địa chỉ của trình duyệt iphone safari của bạn, hãy cắm vào: 192.168.1.x: 4200, trong đó x = chữ số cuối cùng của địa chỉ IP của bạn. Bao gồm cả ": 4200" là sự khác biệt đối với tôi.
9gt53wS

@ RafaëlMoser bạn đã giải quyết nó? Tôi có cùng một vấn đề và tôi thực sự là nhân viên.
Maaddy

29

chạy lệnh

ng serve --host=0.0.0.0 --disable-host-check

điều này sẽ vô hiệu hóa kiểm tra máy chủ và cho phép truy cập từ bên ngoài (thay vì localhost) bằng địa chỉ IP


3
Tôi không cần --disable-host-check. ng serve --host 0.0.0.0làm việc tốt cho tôi Kiểm tra máy chủ phải làm gì?
Andrew

5
Tôi đã một lần cần disabled-host-checknếu không tôi nhận được thông báo "Tiêu đề máy chủ không hợp lệ"
GameDroids

Có cách nào để xác định nó trong một tập tin cấu hình để tránh đề cập đến nó mọi lúc không?
Ayush Kumar

12

Bạn có thể sử dụng lệnh sau để truy cập bằng ip của mình.

ng serve --host 0.0.0.0 --disable-host-check

Nếu bạn đang sử dụng npm và muốn tránh chạy lệnh mỗi lần, chúng ta có thể thêm dòng sau vào tệp pack.json trong phần script .

"scripts": {
    ...
    "start": "ng serve --host 0.0.0.0 --disable-host-check"
    ...
}

Sau đó, bạn có thể chạy ứng dụng của mình bằng lệnh bên dưới để được truy cập từ hệ thống khác trong cùng mạng.

npm start

3
Bây giờ là -disablehostCheck = true | false trong phiên bản của tôi, Angular 8.
Tony

8

Tôi chỉ chỉnh sửa angular.json tập tin trong dự án của tôi như dưới đây và nó hoạt động

...

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "project:build",
        "host": "0.0.0.0"
      },

...


8

bạn cũng có thể xem xét tất cả lưu lượng HTTP đang chạy trên các đường hầm của mình bằng ngrok , sau đó bạn có thể hiển thị bằng cách sử dụngngrok http --host-header=rewrite 4200


4

Mở cmd và điều hướng đến vị trí dự án tức là nơi bạn chạy cài đặt npm hoặc ng phục vụ cho dự án.

và sau đó chạy lệnh - ng serve --host 10.202.32.45nơi10.202.32.45 địa chỉ IP của bạn .

Bạn sẽ có thể truy cập trang của bạn tại 10.202.32.45:4200 4200 là số cổng của bạn.

Lưu ý: Nếu bạn phục vụ ứng dụng của mình bằng lệnh này thì bạn sẽ không thể truy cậplocalhost:4200


Có thể truy cập cả hai cách?
zishan paya

nó hoạt động cảm ơn..tôi đoán tôi đã nhìn nhầm địa chỉ IP
Tejashri Patange 25/03/19

biết nó nghe có vẻ ngớ ngẩn, nhưng hãy chắc chắn rằng điện thoại của bạn đang sử dụng cùng một mạng wifi như máy dev của bạn. Tôi đã sử dụng một mạng khách ... +1 cho câu trả lời duy nhất phù hợp với tôi.
greg

3

Đối với vấn đề là Tường lửa. Nếu bạn đang ở trên Windows, hãy đảm bảo rằng nút được cho phép thông qua nhập mô tả hình ảnh ở đây


Tôi không thể truy cập từ cùng một mạng ngay cả sau khi được phục vụ với ng phục vụ --host 0.0.0.0. Nhưng sự cho phép của tường lửa là vấn đề như bạn đã đề cập. Cảm ơn đã dành thời gian để chia sẻ cái này.
Sandy B

3

Một giải pháp nhanh chóng có thể giúp được ai đó:

Thêm dòng này như giá trị cho sự khởi đầu ng serve --host 0.0.0.0 --disable-host-check trong bạnpackage.json

Ví dụ:

{
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --disable-host-check",
"build": "ng build",
}

Và sau đó chỉ cần làm starthoặcnpm run start

bạn sẽ có thể truy cập dự án của bạn từ các IP địa phương khác.


1

Nếu bạn gặp phải vấn đề tương tự bên trong Docker, thì bạn có thể sử dụng bên dưới CMDtrong Dockerfile.

CMD ["ng", "serve", "--host", "0.0.0.0"]

Hoặc hoàn thành Dockerfile

FROM node:alpine
WORKDIR app
RUN npm install -g @angular/cli
COPY . .
CMD ["ng", "serve", "--host", "0.0.0.0"]

-1

Tạo proxy.conf.jsonvà dán cấu hình này

{  
"/api/*":
    {    
        "target": "http://localhost:7070/your api project name/",
        "secure": false,
        "pathRewrite": {"^/api" : ""}
    }
}

Thay thế:

let url = 'api/'+ your path;

Chạy từ CLI:

ng serve  --host port.number —-proxy-config proxy.conf.json

-1

Đối với tôi nó hoạt động bằng cách sử dụng "ng phục vụ --open --host 0.0.0.0" nhưng có một cảnh báo


CẢNH BÁO: Đây là một máy chủ đơn giản để sử dụng để kiểm tra hoặc gỡ lỗi các ứng dụng Angular cục bộ. Nó đã không được xem xét cho các vấn đề bảo mật.

Liên kết máy chủ này với một kết nối mở có thể dẫn đến việc xâm phạm ứng dụng hoặc máy tính của bạn. Sử dụng một máy chủ khác với máy chủ được chuyển đến cờ "--host" có thể dẫn đến các sự cố kết nối websocket. Bạn có thể cần phải sử dụng "--disablehostCheck" nếu đó là trường hợp.


-1

Không có gói.json là cần thiết để thay đổi.

Đối với tôi nó hoạt động bằng cách sử dụng:

ng phục vụ --host = 0.0.0.0 --port = 5999 --disable-host-check

Máy chủ: http: // localhost: 5999 /


-1
  • Sử dụng ng serve --host<Your IP> --port<Required if any>.

  • ng phục vụ --host = 192.111.1.11 --port = 4545.

  • Bây giờ bạn có thể thấy dòng dưới đây ở phần cuối của quá trình biên dịch.

Angular Live Development Server đang nghe trên 192.111.1.11:4545, mở trình duyệt của bạn trên http://192.111.1.11:4545/**.


-3

Đối với những người đang sử dụng trình quản lý dự án nút, dòng này thêm vào gói.json là đủ. Đối với người dùng CLI góc cạnh, câu trả lời của mast3rd3mon là đúng.

Bạn có thể thêm

"server": "webpack-dev-server --inline --progress --host 0.0.0.0 --port 3000"

đến pack.json

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.