由于某种原因,我无法在我的 Google 计算实例上打开端口 443。我已在实例上启用 HTTPS 服务器,使用gcloud compute firewall-rules list
返回以下规则:
NAME NETWORK DIRECTION PRIORITY ALLOW DENY
default-allow-http default INGRESS 1000 tcp:80
default-allow-https default INGRESS 1000 tcp:443
default-allow-icmp default INGRESS 65534 icmp
default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp
default-allow-rdp default INGRESS 65534 tcp:3389
default-allow-ssh default INGRESS 65534 tcp:22
然而,当我使用类似的东西检查端口是否打开时,nmap
它说它已关闭。
PORT STATE SERVICE
22/tcp open ssh
443/tcp closed https
编辑:这是我的该网站的 nginx conf 文件。 https://gist.github.com/cclloyd/e7f1183f3a018dbc32cd7c55e15375cf
答案1
检查应用程序是否正在运行
您需要检查您的实例上是否确实有一个应用程序正在运行并监听 443 端口。
sudo netstat -plnt
例如,如果有 nginx 服务正在运行,并且配置为监听 443 端口,您将看到类似这样的内容
Proto Local Address Foreign Address State PID/Program name
tcp 0.0.0.0:443 0.0.0.0:* LISTEN 2742/nginx -g daemo
检查防火墙规则关联
您还可以检查防火墙规则和实例是否具有适当的标签:
检查防火墙规则targetTags:
$ gcloud compute firewall-rules describe default-allow-https --format="value(targetTags)"
应输出“https-server”
检查实例标签:
$ gcloud compute instances describe %INSTANCE_NAME% --format="value(tags.items)"
也应该输出“https-server”。