我正在使用 terraform 创建资源,并且在子网 172.1.0.0 中有一个节点,该节点没有分配安全组或规则;该节点有两个端点 22 和 80。
我使用 nmap 确认端口是开放的,它们是:
nmap -Pn -sT -p T:11 some-ingress.cloudapp.net
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-08 19:02 EAT
Nmap scan report for some-ingress.cloudapp.net (1.2.3.4
Host is up (0.31s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 1.34 seconds
nmap -Pn -sT -p T:80 some-ingress.cloudapp.net
Starting Nmap 6.47 ( http://nmap.org ) at 2016-07-08 19:02 EAT
Nmap scan report for some-ingress.cloudapp.net (1.2.3.4)
Host is up (0.036s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
我已经在节点上安装了 nginx 并正在运行curl 172.1.0.4
,curl 127.0.0.1
并curl 0.0.0.0
获取默认 nginx 页面。
但是运行curl <public ip>
或curl <dns name>
挂起,我得到一个
curl: (56) Recv failure: Connection reset by peer
我的 iptables 规则是:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
ACCEPT udp -- anywhere anywhere udp dpt:bootps
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
为什么我无法通过节点的公网 IP 访问 nginx?
该节点位于虚拟网络172.1.0.0/16
和子网中,172.1.0.0/24
如果需要,我可以发布 terraform 配置。
答案1
造成这种情况的原因可能有很多:
- 我假设这是部署在 VPC 中。
通常,如果您使用 VPC,则必须添加 Internet 网关并设置与您的子网关联的路由表,并使用路由将目标 0.0.0.0/0 发送到 igw。
希望这可以帮助。