Отправка очень длинных команд на отсоединенный экран приводит к ошибке "ERROR remote control too long"

IPtables обрабатывают правила сверху вниз. Вот проблема:

Обратите внимание на следующие правила:

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:svn 

После правила Reject allвсе пакеты отбрасываются, включая ваше правило svn. Вот почему вы не можете подключиться.

Решение:

Поместите следующее правило как последнее в цепочку INPUT, если вы действительно хотите отбросить все остальные пакеты:

iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
0
18.09.2019, 21:01
1 ответ

Экранная команда stuffне запускает команды, а эмулирует ввод. Похоже, у вас есть оболочка, работающая в сеансе экрана, которая читает то, что, по ее мнению, печатает, и запускает ее, когда получает новую строку.

Таким образом, вы можете разрезать команду на маленькие части;вы можете отправить его по одному символу за раз, если хотите. Оболочка внутри экрана не запустит его, по крайней мере, до тех пор, пока вы не отправите последний символ, \n.

(Тем не менее, вероятно, гораздо проще поместить все это в файл сценария оболочки, а затем либо запустить, либо получить его ).

1
28.01.2020, 02:39

Теги

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