У меня возникают трудности с доступом к службе прослушивания (Ionic) через порт 8100 из удаленного браузера.
У меня есть iptables на сервере Ubuntu 16.04 LTS, настроенный следующим образом:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p icmp -m state --state NEW -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables_INPUT_denied: " --log-level 7
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A INPUT -p tcp -m tcp --dport 8100 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8100 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
-A FORWARD -m limit --limit 5/min -j LOG --log-prefix "iptables_FORWARD_denied: " --log-level 7
-A FORWARD -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 8100 -m state --state NEW -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 8100 -m conntrack --ctstate ESTABLISHED -j ACCEPT
После того, как это не сработало, я попытался добавить правила с помощью UFW:
Status: active
To Action From
-- ------ ----
8100 ALLOW Anywhere
8100/tcp ALLOW Anywhere
8100 (v6) ALLOW Anywhere (v6)
8100/tcp (v6) ALLOW Anywhere (v6)
Я все еще получаю ERR_CONNECTION_REFUSED
когда я пытаюсь получить доступ к этому порту из удаленного браузера. Порты 80 и 22 работают в обычном режиме.
Что касается самой службы на порту 8100, я попытался прослушать ее следующим образом:
dev server running: http://localhost:8100/
и:
dev server running: http://<my server's IP>:8100/
Что приводит к той же ошибке.
Изменить, когда я бегу $ ss -ltnp "src :8100"
:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 <server's IP address>:8100 *:*
edit 2, Также попытался заставить его слушать следующим образом:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:8100 *:*
С iptables выигрывает первое совпадение, поэтому
-A INPUT -j REJECT --reject-with icmp-port-unreachable
Все, что находится ниже этой строки во ВХОДЕ, будет отклонено, и вы получите сообщение об отказе в соединении.
Посмотри, что под ним
-A INPUT -p tcp -m tcp --dport 8100 -m state --state NEW -j ACCEPT
-A ВХОД -p tcp -m tcp --dport 8100 -m conntrack --ctstate НОВОЕ, УСТАНОВЛЕННОЕ -j ПРИНЯТЬ
Q.E.D.