В системах Linux для доступа к файлу вам также необходимо иметь доступ для обхода всех каталогов на пути (бит выполнения в разрешениях UNIX ). В вашем случае разрешения /var/spool/cron
установлены на rwx------
, а владельцем является root
, поэтому вы не можете перейти в каталог как пользователь, отличный от root
, и получить ошибку Permission denied
при попытке доступа к содержимому внутри.
Стек TCP решает, как реагировать на соединение, на основе набора правил (, которые могут быть установлены на уровне брандмауэра ). Вы можете ОТКЛОНИТЬ пакет подключения (SYN ), но вы также можете УДАЛИТЬ его. Отбрасывать его имеет смысл, например, из-за сканирования портов.
Это зависит от того, что удаленный конец отправляет обратно.
Для порта, который не прослушивается ни одним процессом, удаленное устройство отправляет пакет с установленным битом сброса (RST ), что приводит к ошибке «Отказ в соединении» на клиенте. Другой возможностью является сообщение ICMP «Порт недоступен», которое, например. iptables -j REJECT
в Linux отправляет по умолчанию. Это также приведет к «Отказу в соединении».
С другой стороны, если удаленное устройство не отправляет обратно ничего , тогда клиент не может знать, в чем проблема, и, вероятно, повторит попытку и/или будет ждать, возможно, значительное количество времени.
Пример с iptables
в Linux:
# iptables -I INPUT -p tcp --dport 3001 -j REJECT # iptables -I INPUT -p tcp --dport 3002 -j DROP $ nc -v 127.0.0.1 3000 nc: connect to 127.0.0.1 port 3000 (tcp) failed: Connection refused $ nc -v 127.0.0.1 3001 nc: connect to 127.0.0.1 port 3001 (tcp) failed: Connection refused $ nc -v 127.0.0.1 3002 (waits...)
Таким образом, чтобы узнать, что серверная часть не работает, вам нужно убедиться, что там есть кто-то, кто отправляет ошибку обратно. Это, конечно, может быть трудно сделать, если весь хост выйдет из строя, поэтому вам, возможно, придется договориться о более коротком тайм-ауте.