После прочтения вашего комментария кажется, что эти 2 ПК являются частью одной и той же Локальной сети (LAN). По этой причине вы не можете видеть трафик с вашего Linux Box.
Этот учебникнаучит вас основам работы в локальной сети, но сделает его простым:
10.0.2.0/24
или любую другую маску, которую вы определили)tl,dr: эти компьютеры находятся в одной локальной сети, поэтому, чтобы увидеть некоторый трафик с вашего компьютера с Linux (и вы не сможете для «перехвата/исправления», просто посмотрите»), вам нужно будет перевести свой сетевой адаптер Linux в режим promisc: ip link set dev eth0 promisc on
Хорошо.Пропуская все эти теоретические вещи, когда вы создаете DNAT
внутри той же локальной сети, вам придется «принудительно» вернуть пакет обратно к его происхождению, используя SNAT. Это особый случай, когда у вас есть 2 компьютера в одной локальной сети при выполнении NAT.
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 10.0.2.188:3389
iptables -t nat -A POSTROUTING -p tcp -d 10.0.2.188 --dport 3389 -j SNAT --to-source 10.0.2.122
Таким образом, вы обеспечите, чтобы, когда пакет возвращается на вашу Linux-систему, исходный nat выполнялся для 10.0.2.122
Другие альтернативы:
Создайте RDP-прокси с HA-proxyи разместите эти хосты в отдельных сетях. Это излишество (создание баланса прокси-сервера rdp для одного члена), но это альтернатива.
Используйте grep
следующим образом в команде find
:
find -type f -name "index.php" -exec grep -q 'hello' '{}' \; -exec echo '{}' \;
Использование grep
сfind
:
find /top-dir -type f -name index.php -exec grep -l 'hello' {} +
где /top-dir
— это путь к -самому верхнему каталогу, в котором вы хотите выполнить поиск.
С -type f
мы просматриваем только обычные файлы с find
, а с -name index.php
мы ограничиваем поиск файлами с именем index.php
.
-exec grep -l 'hello' {} +
запустит grep
для найденных файлов и выведет пути ко всем файлам, которые соответствуют шаблону ('hello'
). Это -l
с grep
, которые вызывают вывод путей.
С +
в конце, find
будет предоставлять как можно больше файлов при каждом вызове grep
. Изменение этого параметра на ';'
или \;
приведет к тому, что grep
будет вызываться с одним файлом за раз, что может быть медленным, если файлов много.
Если вы используете оболочку bash, включите опцию globstar
, чтобы **
соответствовало внутри подкаталогов, а затем просто используйте grep
как обычно:
shopt -s globstar
grep -l hello **/index.php
(Вам нужно shopt -s globstar
только один раз в оболочке, если вы не отключите эту опцию с помощью shopt -u globstar
.)
Еще 2 способа командой find
:
find -type f -name "index.php" -exec grep -l 'hello' {} \;
find -type f -name "index.php" -exec grep -q 'hello' {} \; -print
Здесь представлен только подход GNU grep
, который возвращает относительный путь совпадающих файлов в текущем рабочем каталоге и рекурсивно, и только имя файла — 'index.php'.
grep -rl --include="index.php" "hello".
Здесь также можно получить абсолютный путь для совпадающих файлов, заменив .
на ${PWD}
вместо:
grep -rl --include="index.php" "hello" "${PWD}"