AutoKey
настольная утилита автоматизации для Linux и X11. Это позволяет автоматизацию фактически любой задачи путем ответа на введенные сокращения и горячие клавиши. Это предлагает полнофункциональный GUI, который делает это очень доступным для новичков, а также сценариев Python.... Вот ссылка на домашнюю страницу Автоключа.
Примечание: Когда я сначала посмотрел на Автоключ, его интерфейс сценариев не мог обработать Unicode полностью. Я забываю точно, как это было, но это было что-то как он, мог обработать UTF-8 внутренне, но не мог поставить его тому или другому. Если бы это не было, для которого, я использовал бы его сегодня; это выглядит большим, и это имеет хорошую репутацию (я знаю это от земли Windows). Иначе это довольно всесторонне. Я полагаю, что это - ветвление Autoit3 (снова Windows).. Я использовал Autoit3, и это абсолютно полнофункционально. Я думаю, что Автоключ подобен.... Autokey
доступно в репозитории Ubuntu..
xdotool
позволяет Вы программно (или вручную) моделируете ввод с клавиатуры и действие мыши, перемещаете и изменяете размер окон и т.д.
xdotool key --clearmodifiers --delay 40 "ctrl+shift+u"
Другая опция является пакетом xmacro
. Это содержит макроигру и xmacrorec (и xmacrorec2). xmacrorec
может использоваться для записи мыши и событий клавиатуры на любом дисплее X11. xmacroplay может использоваться, чтобы воспроизвести зарегистрированные события или отправить любую другую мышь/события клавиатуры, которую Вы выбираете.
echo -n "KeyStrPress Control_L
KeyStrPress Alt_L
KeyStrPress a
KeyStrRelease a
KeyStrRelease Alt_L
KeyStrRelease Control_L"|
xmacroplay :0.0 &>/dev/null
Короче говоря, тот ACK был отправлен, когда сокет не принадлежал никому. Вместо того, чтобы позволить пакеты, которые принадлежат сокету, который принадлежит пользователю x
, позвольте пакеты, которые принадлежат соединению, которое инициировалось сокетом от пользователя x
.
Более длинная история.
Для понимания проблемы это помогает понять как wget
и Запросы HTTP работают в целом.
В
wget http://cachefly.cachefly.net/10mb.test
wget
устанавливает соединение TCP к cachefly.cachefly.net
, и когда-то установленный отправляет запрос в протоколе HTTP, в котором говорится: "Отправьте мне содержание /10mb.test
(GET /10mb.test HTTP/1.1
) и между прочим, могли Вы не закрывать соединение после того, как Вы будете сделаны (Connection: Keep-alive
). Причина, которую это делает, который является, потому что в случае, если сервер отвечает с перенаправлением для URL на том же IP-адресе, это может снова использовать соединение.
Теперь сервер может ответить с также, "здесь прибывает данные, которые Вы запросили, остерегайтесь, это 10 МБ шириной (Content-Length: 10485760
), и да хорошо, я уеду, соединение открывают". Or if it does not know the size of the data, "Вот данные, извините я не могу оставить соединение открытым, но я скажу, когда можно будет прекратить загружать данные путем закрытия моего конца соединения".
В URL выше, мы в первом случае.
Так, как только wget
получил заголовки для ответа, он знает, что его задание сделано, после того как он загрузил 10 МБ данных.
В основном, что wget
делает считан данные, пока 10 МБ не были получены и выход. Но в той точке, существует больше, чтобы быть сделанным. Что относительно сервера? Этому сказали оставить соединение открытым.
Перед выходом, wget
завершения (close
системный вызов) дескриптор файла для сокета. На, close
, система заканчивает подтверждать данные, отправленные сервером, и отправляет a FIN
сказать: "Я не буду отправлять больше данные". В той точке close
возвраты и wget
выходы. Нет никакого сокета, связанного с соединением TCP больше (по крайней мере, не один принадлежавший никаким пользователем). Однако это еще не закончено. После получения этого FIN
, сервер HTTP видит конец файла при чтении следующего запроса от клиента. В HTTP, который не означает "больше запроса, я закрою свой конец". Таким образом, это отправляет свой FIN также, для высказывания, "Я ничего не буду отправлять также, то соединение уходит".
После получения, что FIN, клиент отправляет "ACK". Но, в той точке, wget
давно в прошлом, так, чтобы ACK не был ни от какого пользователя. Который является, почему это заблокировано Вашим брандмауэром. Поскольку сервер не получает ACK, он собирается отправить FIN много раз, пока он не сдастся, и Вы будете видеть более отброшенный ACKs. Это также означает путем отбрасывания тех ACKs, бесполезное использование ресурсов сервера (который должен поддержать сокет в состоянии последнего ACK), в течение достаточно долгого времени.
Поведение отличалось бы, если бы клиент не запросил "Активный", или сервер не ответил с "Активным".
Как уже упомянуто, если Вы используете средство отслеживания соединения, что Вы хотите сделать, позволен каждый пакет в УСТАНОВЛЕННЫХ и СВЯЗАННЫХ состояниях через, и только волнуйтесь о NEW
пакеты.
Если Вы позволяете NEW
пакеты от пользователя x
но не пакеты от пользователя y
, затем другие пакеты для установленных соединений пользователем x
пройдет, и потому что не может быть установленных соединений пользователем y
(так как мы блокируемся NEW
пакеты, которые установили бы соединение), не будет никакого пакета для пользователя y
прохождение через соединений.
Это позволяет порт 80 только для учетной записи "useraccount"
— хорошо, по крайней мере, правила, которые Вы показали, не подразумевают это на самом деле.
Существует также место для совета — не делают пользователя, проверяющего УСТАНОВЛЕННЫЕ потоки, просто делают это начинающее работу НОВЫЙ. Я также не вижу точку в проверке исходного порта при проверке УСТАНОВЛЕННОГО Поступления, что является различием, каким портом это было, это уже находится в УСТАНОВЛЕННОМ состоянии от PoV conntrack. Брандмауэр должен быть максимально простым, но эффективным все же, таким образом, подход бритвы Оккама является лучшим соответствием.