У меня есть экземпляр GCE, который раскручивается с помощью конфигурации terraform.Экземпляр вращается нормально, и я могу SSH к нему.У меня есть правило брандмауэра для доступа к TCP-порту 9090:
gcloud compute firewall-rules list
NAME NETWORK DIRECTION PRIORITY ALLOW
DENY
allow-http default INGRESS 1000 tcp:8080
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
fitnesse default INGRESS 1000 tcp:9090
Но я не могу получить доступ к любому серверу, работающему на порту 9090, извне.
$ curl http://a.b.c.d:9090
curl: (7) Failed to connect to a.b.c.d port 9090: Connection refused
Я попытался удалить все теги наи экземпляр и правило безрезультатны.Я создал другое правило для другого порта (8080), и он также недоступен.
Я проверил iptables -L -nv
на экземпляре, и у меня есть это INPUT
цепное правило, которое мне кажется подходящим:
Chain INPUT (policy ACCEPT 163 packets, 26970 bytes)
pkts bytes target prot opt in out source destination
72510 1208M sshguard all -- * * 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy DROP 0 packets, 0 bytes)
Хотя, возможно, это связано с проблемой докера, так как сервис является контейнером докера с подключенным портом, но он также не работает с nc -l 9090
...
Обновление:
Я изменил сопоставление портов с 9090
на 80
, и теперь оно работает: я могу получить доступ к серверу извне.
netstat -lntp
дает мне следующее:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 864/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1774/sshd
tcp6 0 0 :::80 :::* LISTEN 19537/docker-proxy
tcp6 0 0 :::18001 :::* LISTEN 12754/docker-proxy
tcp6 0 0 :::5778 :::* LISTEN 13837/docker-proxy
tcp6 0 0 :::18002 :::* LISTEN 12903/docker-proxy
tcp6 0 0 :::18003 :::* LISTEN 16534/docker-proxy
tcp6 0 0 :::18004 :::* LISTEN 16546/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1774/sshd
Похоже, что это указывает на проблему с ipv4 / ipv6, когда прокси-сервер докера связывается только с ipv6.
Я в растерянности, любая помощь по устранению неполадок этой проблемы будет многооценили.