ping: неизвестный хост с включенным iptables

IFS=\;; set -- $IFS; echo $#; echo "$*"

1
;

IFS=; set -- $IFS; echo $#; echo "$*"

0
#there doesn't seem to be anything here

Как видно - $IFS в первом случае не пуст - он содержит ровно один разделитель полей.

Когда оболочка разворачивает нецитируемую переменную, она разделяет ее значение на разделители, определенные в $IFS. Таким образом, каждая переменная потенциально является массивом, разделенным $IFS. По умолчанию $IFS установлен в <пространство>, \tab, и \newline. Каждая из них обладает особыми свойствами в $IFS, так как это $IFS белый пробел. $IFS разделители пробела не сохраняются, и каждая последовательность обоих усекается до одного поля, когда оболочка выполняет словоразделение, в то время как все остальные разделяют одно поле на разделитель. $IFS пробелы также будут полностью удалены из начала или конца поля. Например:

IFS=/; slashes=///////; printf '<%s>' $slashes
<><><><><><><>

IFS=' '; spaces='      '; printf '<%s>' $spaces
<>

printf '<%s>' $spaces$slashes
<///////>

Но $IFS пробела очевидно не удаляется, когда в не в $IFS:

IFS=/; printf '<%s>' $spaces$slashes
<      ><><><><><><>
1
29.09.2014, 09:59
2 ответа

В дополнение к предыдущему ответу попробуйте добавить правило, разрешающее трафик UDP, как в предыдущем ответе, и TCP-соединение, как это:

# iptables -A INPUT -p tcp --sport 53 -j ACCEPT

TCP-соединение используется, когда размер данных ответа превышает 512 байт , это нормально.

0
27.01.2020, 23:52

Я не вижу правила, чтобы разрешить UDP Port 53. Без порта 53 UDP вы не получаете DNS, поэтому не удивительно, что разрешение имени не удается.

Вам нужно добавить правило, чтобы разрешить входящий трафик UDP из порта 53, по крайней мере, с сервера DNS (ы) ваших поставщиков доступа в Интернет. Что-то вроде

iptables -A INPUT -p udp --sport 53 -j ACCEPT

, возможно, с дополнительными ограничениями, возможно, в другом правиле (я не понимаю организацию вашего брандмауэра). Поскольку ваши правила брандмауэра, похоже, были автоматически сгенерированы автоматически, вы, вероятно, захотите изменить настройки инструмента настройки брандмауэра, а не вызова IPTables напрямую.

1
27.01.2020, 23:52

Теги

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