Не мог сделать голову или хвост для файла

Можно проверить с помощью ping-запросов 172.16.2.0/24 подсеть от 172.16.1.1, в то время как брандмауэр не включает основанные на IP правила, и Вы позволяете весь трафик от обоих eth1 и eth2 кому: eth0 (не IP базировался, включая такое перенаправление и задние пакеты),

Хорошим путем является к Отбрасыванию explicitely весь пакет, связанный с IP локальной подсети:

iptables -I FORWARD -i eth0 -d 192.168.0.0/16 -j DROP
iptables -I FORWARD -i eth0 -d 172.16.0.0/12 -j DROP
iptables -I FORWARD -i eth0 -d 10.0.0.0/8 -j DROP
iptables -A FORWARD -i eth1 -s 172.16.1.1/24 -o eth0 -j ACCEPT
iptables -A FORWARD -o eth1 -d 172.16.1.1/24 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth2 -s 172.16.2.1/24 -o eth0 -j ACCEPT
iptables -A FORWARD -o eth2 -d 172.16.2.1/24 -i eth0 -j ACCEPT

Для образца, где eth2 связан с Вашим dmz и eth1 к localnet.

с этим, Вы май способным к доступу 172.16.2.1/24 от 172.16.1.1/24, но не другим способом!

2
08.01.2014, 00:45
2 ответа

Единственная вещь я знаю об этом наиболее часто используемом пустое CR поскольку разделитель строки является старыми системами Mac (перед Mac OS X), но если это не действительно старый файл, который кажется маловероятным.

В любом случае mac2unix программа в dos2unix пакет должен смочь зафиксировать его для Вас.

5
27.01.2020, 21:52

file команда показывает Вам, что набор символов файла является английским текстом ISO 8859, можно использовать команду iconv преобразовать файлы от одного набора символов до другого.

Пример

Для начала с, у нас есть следующий файл.

$ file a.srt 
a.srt: ISO-8859 English text, with CRLF line terminators

Теперь давайте преобразуем файл из ISO-8859-15 кому: utf-8. Здесь мы берем файл a.srt кому: b.srt.

$ iconv -f ISO-8859-15 -t utf-8 a.srt > b.srt

Теперь новый файл b.srt находится в UTF-8 формат.

$ file b.srt 
b.srt: UTF-8 Unicode English text, with CRLF line terminators

Что относительно разделителей строки CRLF?

Они типичны для файлов, которые прибывают из ПК. На ПК конец строк завершается с возвратом каретки и переводом строки. Вы видите эти символы при использовании инструмента такой как hexdump.

Пример

hexdump -C b.srt | head -5
00000000  31 0d 0a 30 30 3a 30 30  3a 31 36 2c 33 30 32 20  |1..00:00:16,302 |
00000010  2d 2d 3e 20 30 30 3a 30  30 3a 31 39 2c 36 38 30  |--> 00:00:19,680|
00000020  0d 0a 3c 69 3e 54 68 65  20 63 69 74 79 27 73 20  |..<i>The city's |
00000030  63 61 6c 6c 65 64 20 44  75 6b 65 0d 0a 54 68 65  |called Duke..The|
00000040  20 73 74 61 74 65 27 73  20 63 61 6c 6c 65 64 20  | state's called |

Заметьте последовательность символов 0d 0a . Это "разделители строки CR, на которые" ссылаются в file команды производятся. Можно использовать инструмент такой как dos2unix удалить их.

$ dos2unix -n b.srt c.srt
dos2unix: converting file b.srt to file c.srt in UNIX format ...

Теперь, когда мы смотрим на получающийся файл для dos2unix, c.srt.

$ hexdump -C c.srt | head -5
00000000  31 0a 30 30 3a 30 30 3a  31 36 2c 33 30 32 20 2d  |1.00:00:16,302 -|
00000010  2d 3e 20 30 30 3a 30 30  3a 31 39 2c 36 38 30 0a  |-> 00:00:19,680.|
00000020  3c 69 3e 54 68 65 20 63  69 74 79 27 73 20 63 61  |<i>The city's ca|
00000030  6c 6c 65 64 20 44 75 6b  65 0a 54 68 65 20 73 74  |lled Duke.The st|
00000040  61 74 65 27 73 20 63 61  6c 6c 65 64 20 4e 65 77  |ate's called New|

Заметьте 0d 0a последовательность от b.srt файл был преобразован в 0a. Этот символ - то, как конец строк завершается в системах Unix.

Теперь, когда мы проверяем файл c.srt использование file обратите внимание, что о файле больше не сообщают как завершаемый с разделителями строки CRLF.

$ file c.srt 
c.srt: UTF-8 Unicode English text

Что относительно разделителей строки CR?

Как ответ @TomH касается, файл, который завершает использование просто CR, от Mac. Высказывать ясное мнение.

CR и LF символы, соответственно кодированные 0x0D (13 десятичных чисел) и 0x0A (10 десятичных чисел). Они используются для маркировки разрыва строки в текстовых файлах.

  • Windows использует два символа, т.е. CR LF последовательность
  • Unix только использует LF
  • Macintosh используется CR

Когда Apple переключилась на использование OSX (который основан на BSD), они переключились на также использование LF, данный BSD базирован в Unix.

Посмотрите Новые строки темы Википедии, который имеет раздел по Представлениям, он покрывает всю другую систему и их соответствующие символы новой строки.

Ссылки

2
27.01.2020, 21:52
  • 1
    не имеют никакого отношения к нему. Кроме того, системы DOS/Windows производят разделители строки с помощью и CR и LF. Рассматриваемый файл имеет только разделители строки CR, который предполагает, что был произведен классической системой Mac. –  AGWA 08.01.2014, 08:14
  • 2
    @AGWA - Вы упускаете суть моего A. То, что я заявляю, показывает 2 компонента вывода от file. Одним аспектом является кодирование другой, CR или природа CRLF линейного окончания. У меня нет древнего Mac для дублирования тех типов файлов, таким образом, я показываю больше деталей. Ответ TomH уже упомянул mac2unix инструмент, но оставил многие детали нетронутыми, таким образом, я пытаюсь показать часть механики. –  slm♦ 08.01.2014, 08:24
  • 3
    +1 Некоторая большая информация здесь slm... спасибо за совместное использование... –  Dhruuv 08.01.2014, 16:10
  • 4
    @Dhruuv - решенный вопрос, ответ TomH сказал Вам суть того, почему, я пытался дать Вам больше полного изображения того, почему и также ломают часть волшебства. –  slm♦ 08.01.2014, 16:21

Теги

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