Это сделало бы это:
grep '^hghgh' txt.txt
egrep
— это просто grep -E
(точно так же, как fgrep
— это grep -F
), но -E
здесь не нужен, так как нам не нужно использовать расширенные регулярные выражения.
(Основное) регулярное выражение ^hghgh
соответствует литеральной строке hghgh
в начале строки. Это ^
, который привязывает шаблон к началу строки.
Если вы хотите сопоставить exact строку hghgh
в начале строки, а не, например. hghghaaaaaa
(где hghgh
— подстрока), затем используйте \>
или \b
или [[:>:] ]
в конце выражения, чтобы соответствовать концу этого слова:
grep '^hghgh\>' txt.txt
Или используйте awk
и выполните сравнение строк с первым полем:
awk '$1 == "hghgh"' txt.txt
Как отмечалось выше, мы могли бы добиться большего, если бы получили больше информации. Предлагаемое ниже решение предполагает, что iptables
настроен для разрешения входящего / исходящего трафика. В любом случае, вам может не хватать двух вещей.
Вам необходимо явно разрешить пересылку трафика. Вам необходимо изменить / etc / sysctl.conf`, добавив следующую строку.
net.ipv4.ip_forward=1
Кроме того, вам необходимо замаскировать исходящий трафик. Маскарадинг перезаписывает исходящий IP-адрес всех пакетов на хост, имеющий дополнительный ник с NAT. Вы можете включить маскировку, как показано ниже. Следите за именем интерфейса NAT.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Замените eth0
именем вашего интерфейса NAT.
Советы по устранению неполадок
iptables
разрешает трафик ICMP. Если
нет, вам нужно проверить конфигурацию брандмауэра iptables
. исходящие правила
и маскарад постмаршрутизации
. Возможно, вам придется проверить это снова. Ребята, вы были правы. Я пропустил маскарад POSTROUTING и форвард, как показано здесь ниже:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT