Невозможно подключиться к компьютеру в той же сети

261
Kostas

Предположим, что две машины подключены к беспроводному маршрутизатору (Archer C7 v2) и являются частью одной локальной сети. Пинг-машина A с машины B работает, но ssh, telnet, netcat не работают. Зачем?

подробности

Машина A (сервер под управлением Ubuntu 14.04.5, локальный адрес 192.168.0.16)

Экземпляр сервера openssh работает, прослушивает порт 2200 и работает без проблем.

$netstat -ntlp | grep LISTEN (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:8979 0.0.0.0:* LISTEN -  tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -  tcp 0 0 0.0.0.0:2200 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:29754 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:10555 0.0.0.0:* LISTEN -  tcp 0 0 127.0.0.1:1023 0.0.0.0:* LISTEN -  tcp6 0 0 :::80 :::* LISTEN -  tcp6 0 0 ::1:53 :::* LISTEN -  tcp6 0 0 ::1:631 :::* LISTEN -  tcp6 0 0 :::2200 :::* LISTEN -  

Брандмауэр отключен:

$sudo ufw status' gives Status: inactive

Это результат iptables -Sзапроса:

$iptables -S -P INPUT DROP -P FORWARD DROP -P OUTPUT ACCEPT -N DOCKER -N DOCKER-ISOLATION -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i ipsec+ -p 254 -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p ah -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5308 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5900 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5901 -j ACCEPT -A INPUT -p tcp -m tcp --dport 12080 -j ACCEPT -A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with icmp-port-unreachable -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5656 -j ACCEPT -A INPUT -p udp -m udp --dport 5004:5005 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5004:5005 -j ACCEPT -A INPUT -p udp -m udp --dport 20830 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20830 -j ACCEPT -A INPUT -p tcp -m tcp --dport 5060:5062 -j ACCEPT -A INPUT -p udp -m udp --dport 5060:5062 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21100 -j ACCEPT -A INPUT -p tcp -m tcp --dport 2001 -j ACCEPT -A INPUT -p gre -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 4 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 12 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 9 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8081 -j ACCEPT -A INPUT -p tcp -m tcp --dport 1533 -j ACCEPT -A INPUT -p udp -m state --state NEW -m udp --dport 52311 -j ACCEPT -A INPUT -p tcp -m tcp --dport 30000:30005 -j ACCEPT -A INPUT -p tcp -m tcp --dport 67:68 -j DROP -A INPUT -p udp -m udp --dport 67:68 -j DROP -A INPUT -p tcp -m tcp --dport 137 -j DROP -A INPUT -p udp -m udp --dport 137 -j DROP -A INPUT -p tcp -m tcp --dport 138 -j DROP -A INPUT -p udp -m udp --dport 138 -j DROP -A INPUT -p tcp -m tcp --dport 139 -j DROP -A INPUT -p udp -m udp --dport 139 -j DROP -A INPUT -p tcp -m tcp --dport 1:20 -j DROP -A INPUT -p tcp -m tcp --dport 111 -j DROP -A INPUT -p tcp -m tcp --dport 161:162 -j DROP -A INPUT -p tcp -m tcp --dport 520 -j DROP -A INPUT -p tcp -m tcp --dport 6348:6349 -j DROP -A INPUT -p tcp -m tcp --dport 6345:6347 -j DROP -A INPUT -p tcp -m limit --limit 3/min -j LOG --log-prefix "FIREWALL: " --log-level 7 -A INPUT -p udp -m limit --limit 3/min -j LOG --log-prefix "FIREWALL: " --log-level 7 -A INPUT -j DROP -A FORWARD -j DOCKER-ISOLATION -A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A FORWARD -o docker0 -j DOCKER -A FORWARD -i docker0 ! -o docker0 -j ACCEPT -A FORWARD -i docker0 -o docker0 -j ACCEPT -A DOCKER-ISOLATION -j RETURN

Компьютер B (клиент работает под управлением MacOS 10.12.6, локальный адрес 192.168.0.14)

Попытка подключения через ssh приводит к «сообщению об истечении срока действия»:

$ssh user@192.168.0.16 -p 2200 -i ~/.ssh/id_rsa -vvv OpenSSH_7.4p1, LibreSSL 2.5.0 debug1: Reading configuration data /Users/jdoe/.ssh/config debug1: Reading configuration data /etc/ssh/ssh_config debug2: resolving "192.168.0.16" port 2200 debug2: ssh_connect_direct: needpriv 0 debug1: Connecting to 192.168.0.16 [192.168.0.16] port 2200. debug1: connect to address 192.168.0.16 port 2200: Operation timed out ssh: connect to host 192.168.0.16 port 2200: Operation timed out

Netcat также истекает:

$nc -w 1 -v 192.168.0.16 -z 2200 nc: connectx to 192.168.0.16 port 2200 (tcp) failed: Operation timed out

Но эй, ping (это другой протокол) работает:

$ping 192.168.0.16 PING 192.168.0.16 (192.168.0.16): 56 data bytes 64 bytes from 192.168.0.16: icmp_seq=0 ttl=64 time=97.027 ms 64 bytes from 192.168.0.16: icmp_seq=1 ttl=64 time=4.329 ms 64 bytes from 192.168.0.16: icmp_seq=2 ttl=64 time=2.402 ms ^C --- 192.168.0.16 ping statistics --- 3 packets transmitted, 3 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 2.402/34.586/97.027/44.159 ms

Что мне не хватает? Что у меня на пути?

0
Пожалуйста, опубликуйте вывод `iptables -S`. gmelis 6 лет назад 0
Обновил пост с этой информацией. Позвольте мне знать, если вам нужно что-нибудь еще. Kostas 6 лет назад 0

1 ответ на вопрос

1
gmelis

У вас запущен брандмауэр, так iptables -Sкак вывод составляет около двух экранов. Но правила в существующем брандмауэре настроены на sshdпрослушивание по TCP-порту 22. Короче говоря, неверный способ исправить это - но это хорошо для тестирования и обучения - просто набрать sudo iptables -P INPUT ACCEPTи вуаля, с которой вы можете соединиться ssh,

После этого вам лучше сообщить брандмауэру, что sshон прослушивает порт 2200, а не 22, и все будет в порядке. Может случиться так, что он dockerразвертывает свой собственный брандмауэр, так что вы можете посмотреть его конфигурационные файлы и посмотреть, сможете ли вы изменить sshdпорт.

Это работает как шарм. (`sudo iptables -R INPUT 8 -p tcp -s 0.0.0.0/0 --dport 2200 -j ПРИНЯТЬ` для справки.) Спасибо! Kostas 6 лет назад 0

Похожие вопросы