$ ssh localhost sh -c \"echo \\\'how to print single quotes here\\\'\"
'how to print single quotes here'
$ ssh localhost echo \\\'how to print single quotes here\\\'
'how to print single quotes here'
Чтобы понять правила, запомните этот уровень цитирования удаляется локальной оболочкой, затем SSH вызывает удаленную оболочку, которая удаляет второй уровень цитирования.
Поскольку вы редактируете /etc/hosts, у вас есть корневой доступ. Лучшим и самым элегантным способом является использование iptables (т.е. блок пакетов, оставляющих коробку www.telegram.org)
Вы можете протестировать, введя команды iptables в командной строке.
# iptables -A OUTPUT -d www.telegram.org -j REJECT
Вы можете видеть, что вы добавили правило с:
# iptables -S OUTPUT
-P OUTPUT ACCEPT
-A OUTPUT -d 149.154.167.120/32 -j REJECT --reject-with icmp-port-unreachable
И вы можете проверить попытку доступа к нему с помощью:
# wget web.telegram.org
--2017-04-26 14:38:01-- http://web.telegram.org/
Resolving web.telegram.org... 149.154.167.120, 2001:67c:4e8:fa60:3:0:811:140
Connecting to web.telegram.org|149.154.167.120|:80... failed: Connection refused.
Connecting to web.telegram.org|2001:67c:4e8:fa60:3:0:811:140|:80... failed: Network is unreachable.
Вы не сказали нам, какую ОС вы используете, поэтому у вас может не быть более новой версии iptables, и, следовательно, вам может не хватать ключа -S. Вы можете использовать -L:
# iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere 149.154.167.120 reject-with icmp-port-unreachable
Если вы хотите удалить только что добавленное правило, просто замените -A на -D в команде выше.
Примечание: если вы хотите, чтобы эти правила были постоянными при перезагрузке, вы должны сделать iptables-save > /etc/sysconfig/iptables
или вручную добавить их в /etc/sysconfig/iptables.
iptables довольно сложен, но справочные страницы весьма полезны.
(Я использую CentOS 6 и 7 на своих серверах. Брандмауэр - это новый интерфейс по умолчанию на CentOS 7, но я установил iptables-используйте его вместо этого, который полностью поддерживается.)
Кстати, я бы установил хост 127.0.0.1 вместо 0.0.0.0.... это может быть вашей исходной проблемой.
В любом случае, еще один трюк заключается в добавлении специального маршрута для нарушающего IP-номера(ов):
# route add -host 10.11.12.13 dev lo
Вам придется добавить их в ваш rc.local (или аналогичный), чтобы эти правила воссоздавались во время перезагрузки.
Я использовал это, чтобы заблокировать людей, которые пытались взломать пароль для моего веб-сайта компании.
он использует веб-сокеты для получения сообщений
добавить
0.0.0.0 zws2.web.telegram.org
П.С. проверьте, как отлаживать веб-сокеты в chrome devtools