Ответ @Julie Pelletier на 100% правильный, но, вероятно, вам не очень понятен.
Во-первых, как упоминалось несколько раз в комментариях, метка не помещена в пакет Ethernet на проводе. Таким образом, если вы отправите эхо-запрос на сервер B с сервера A, сервер B никогда не сможет обнаружить метку. Если вы хотите что-то сделать, вам придется использовать только сервер A. Итак, вам нужно будет вставить / добавить правило в цепочку OUTPUT отправителя , чтобы увидеть что-нибудь.
Теперь давайте посмотрим, как использовать iptables
. Во-первых, мы хотим увидеть, какие правила активны в OUTPUT:
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
root@roran:~#
Хорошо, никаких правил. Определим правило:
root@roran:~# iptables -I OUTPUT -m mark --mark 0xa -j ACCEPT
root@roran:~#
Как видите, вывода нет. Но в таблице ядра теперь есть запись:
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 177 packets, 120K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
Столбцы «pkts» и «bytes» оба равны 0, так как пакеты еще не отправлены. Теперь выполните эхо-запрос другого сервера без установки метки:
root@roran:~# ping -c 1 bermuda
PING bermuda (192.168.178.2) 56(84) bytes of data.
64 bytes from bermuda (192.168.178.2): icmp_seq=1 ttl=64 time=0.331 ms
[... some more lines omitted]
После этого таблица ядра по-прежнему ничего не сопоставила:
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 348 packets, 160K bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
Затем попробуйте выполнить эхо-запрос с установленной меткой:
root@roran:~# ping -m 10 -c 1 bermuda
PING bermuda (192.168.178.2) 56(84) bytes of data.
64 bytes from bermuda (192.168.178.2): icmp_seq=1 ttl=64 time=0.324 ms
[... some more lines omitted]
и посмотрите на таблицу еще раз:
root@roran:~# iptables -L OUTPUT -n -v
Chain OUTPUT (policy ACCEPT 631 packets, 319K bytes)
pkts bytes target prot opt in out source destination
1 84 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 mark match 0xa
root@roran:~#
Теперь правило нашло один пакет размером 84 байта.
Если вы хотите поэкспериментировать, после этого выполните iptables -F OUTPUT
, чтобы очистить таблицу; iptables -I OUTPUT -m mark --mark 0x0a -j REJECT
для предотвращения выхода помеченных пакетов с вашего компьютера, затем эхо-запрос на другой компьютер с отметкой и без нее. Вы увидите, что отмеченные пакеты не получают ответа, теперь, когда правило их отбрасывает.
Ваша первая подсказка заключается в том, что диагностика сообщила, что проверяет вывод systemctl status cloud9.service
, но вы не упомянули о выполнении это или совместное использование этого вывода.
Возможно, он скажет вам, что путь двоичного файла, который вы передаете ExecStart =
, должен быть абсолютным.