Я создаю ресурсы с помощью 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
Почему я не могу получить доступ к nginx по общедоступному IP-адресу узла?
Узел находится в виртуальной сети 172.1.0.0/16
и подсеть 172.1.0.0/24
Если нужно, могу выложить конфиги терраформа.
Для этого могло быть несколько причин:
Обычно, если вы используете VPC, вам необходимо добавить интернет-шлюз и настроить таблицы маршрутов, связанные с вашей подсетью, с маршрутом, в котором указано, что пункт назначения 0.0.0.0/0 отправляется в igw.
Надеюсь это поможет.