当前命令:ng serve --host --public $IP:$PORT
我的网站上的结果:
无效的主机标头
--disable-host-check
如果您需要从 Cloud9 运行,该标志可以正常工作。
我使用以下命令:
ng serve --open --host $IP --port $PORT --disable-host-check
您需要指定主机
ng serve --port 8080 --host 123.34.56.78
这对我有用:
ngrok http --host-header=rewrite PORT
例如 :
ngrok http --host-header=rewrite 4200
看到这个问题
在(第 425 行)中编辑以下行
node_modules/webpack-dev-server/lib/Server.js
,更改为:return true;
我正在使用 cloud9 IDE,然后运行:
ng serve --port 8080 --host 0.0.0.0
. 现在工作正常。
就我而言,我使用我的主机名来更新 /etc/hosts 文件。
vi /etc/hosts
并在最后一行添加您的主机名。
127.0.0.1 myHostName.com
连接我的服务器,
ng serve -o
连接到myHostName.com:4200时发生错误。
所以,我确实喜欢这样,
ng serve --host 0.0.0.0 --disableHostCheck true
重新连接到myHostName.com:4200 :)
您需要运行以下命令:
ng serve --port 8080 --publicHost 123.34.56.78 // your server ip or host name.
为我工作。
使用下面的命令对我有用。
ng serve --host 0.0.0.0 --port 8080 --public ipAddress
对 Angular CLI 使用以下命令对我有用:6.0.7
ng serve --host 0.0.0.0 --port 8080 --disableHostCheck
在具有 bitnami 图像的 AWS EC2 实例上部署我的 Angular 应用程序后,我遇到了同样的错误。然后我使用以下命令启动了我的应用程序,它运行良好。
ng serve --host 0.0.0.0 --port 8080 --disableHostCheck true
在以下版本的 Angular 和服务器 Amazon 上测试。
Angular CLI: 6.0.8
Node: 8.11.3
OS: linux x64
Angular: 5.2.8
ng 命令选项已更改,现在使用configuration
而不是env
. 对我有用的命令是
ng serve --configuration=dev --port 4009 --host 0.0.0.0 --publicHost myhost.com
切勿--disable-host-check
在公共服务器上使用。如果你使用它,Angular 会警告你。它可能有效,但这是一个严重的安全问题。如果您使用该标志,您将收到此消息。
警告:使用 --disable-host-check 运行服务器存在安全风险。有关更多信息,请参阅 https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a 。
请花一些时间阅读那篇值得一读的文章。
ng 服务 --host 0.0.0.0 --port 1234 --public-host mydomain.com
这对我有用。
使用下面的命令和最新版本的 Angular CLI 对我有用。
ng serve --host 0.0.0.0 --public-host <workspace>-<username>.c9users.io
多亏了Mateusz Sawa,这实际上在 YouTube 视频评论之一中得到了解决
去这里看看。
-- 在 package.json 中指定主机不再起作用 --
只是要注意,没有必要使用视频中使用的命令,下面的说明足以使应用程序使用常规angular-cli
开发工作
首先你需要在etc/文件夹中找到主机
在控制台中输入cd ..
,直到您到达 linux 机器的根目录,并始终检查ls
列出的内容
如果您看到主机文件,则说明您位于正确的位置,然后使用sudo vi hosts
它进行编辑
在所有 IP 地址下面添加一行“0.0.0.0 yourworkspace-yourusername.c9users.io ”(当然不带引号 :-))
同样在 package.json 中更改“开始”:“ng serve -H yourworkspace-yourusername.c9users.io ”
然后你只需要转到应用程序文件夹并在终端中启动应用程序npm start
刚才检查了一下,它工作
除了@ruwan800 的回答,最好始终启用主机检查。这可以防止使用DNS 重新绑定的攻击。
https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a
要解决您的问题,请检查您是否拥有对主机 IP 的完全访问权限。这是一个可能的原因。
如果这不能解决您的问题,那么您可以自担风险,在您的角度配置中禁用主机检查。不过,我建议您仅对本地计算机执行此操作。
如果您选择这样做,只需在您的angular.json
.
即,下architect -> serve -> configurations -> development
,设disableHostCheck: false
喜欢:
"architect": {
//...
"serve": {
//...
"configurations": {
//...
"development": {
//...
"disableHostCheck": true
}
},
},
//...
}
这样,它仅在以开发模式运行时禁用,而不是在部署在您的服务器上时禁用。
请不要将--disable-host-check
标志用于开发服务器!
这是一个主要的安全问题:一些恶意代码可以代表您请求您的开发服务器并获得响应。问题是开发服务器也发送你的应用程序的源代码,所以基本上,如果你使用那个标志,你就可以访问你正在构建的应用程序的代码。
试试这个:
ng serve --public-host my.dev.host.com
以下两种解决方案都可以。在命令行中:
ng serve --public --host yourip --port yourportnumber
ng serve --host 0.0.0.0 --port yourport --disableHostCheck true
参考:https ://github.com/angular/angular-cli/issues/6070
使用公共标志。例如:ng serve --host <workspace>-<username>.c9users.io --public
我得到了同样的错误。公共选项为我解决了如下问题:
ng serve --host 0.0.0.0 --port 8080 --live-reload-port 8081 --public $C9_HOSTNAME
问题是您只能访问您在 --public 参数中指定的链接。就我而言,我在 --public 中提供了 IP 地址,并尝试使用我针对该 IP 注册的域来访问它。但是 ng 将它绑定到 --public 中提供的唯一主机。
为了解决这个问题,我又提供了一个参数:disable-host-check
. 完成命令:ng serve --disable-host-check --host 0.0.0.0 --port 3100 --public x.x.x.x
要了解更多信息,请单击此处
尝试使用该localtunnel
实用程序访问我们的应用程序时出现此错误。
@tarn 的添加--disableHostCheck true
到ng serve
命令的建议(来自对已接受答案的评论)起到了作用。
如果有人仍然invalid host header
遇到问题,这是解决方案:
运行ng eject
它将创建webpack.config.js
. npm install
如果它正在询问,请运行。 在下面"disableHostCheck":true
添加。如下所示: devServer
webpack.config.js
"devServer": {
"historyApiFallback": true,
"disableHostCheck" : true //<-- add this line
}
然后在像这样的package.json
文件更改start
选项中ng
"start": "webpack-dev-server --host 0.0.0.0 --port YOURPORT --public YOURIP:YOURPORT"
现在用npm start
命令运行角度。而已。
您只需将 0.0.0.0 更改为您的本地 IP 地址,如 192.168.1.42 即可。
ng serve --host 192.168.1.42
试一试
ng serve --host <private IP> --port <host port> --public-host <public IP>
将文件“node_modules/webpack-dev-server/lib/Server.js”中的第 425 行从 false 更改为 true。IE,
之前:返回假;
更新:返回真;