Linux (как любые современные Ose мультипроцесса, я надеялся бы), гарантирует, что процессы только обнуляются страницы, когда они выделяют память. Таким образом, процесс не может считать память, раньше используемую другим процессом.
В соответствии с Linux, происходит обнуление, когда страница выделяется, не, когда это освобождено. Это оставляет два способа считать память, раньше используемую процессом:
Патч к ядру Linux, чтобы позволить обнулять страницы, как только они освобождены, был предложен (sanitize_mem
эпизод 1, sanitize_mem
эпизод 2), но насколько я могу сказать не принятый.
На практике самое большое окно для нападения является областью подкачки (который может сохранять данные в течение долгого времени), и даже который не тривиален для взломщика (кто должен украсть диск и разобраться в беспорядке страниц). Является также самым легким зафиксировать: зашифруйте область подкачки с dm-crypt
.
ping
к внешнему хосту может перестать работать для множества причин, только несколько из которых на самом деле говорят что-либо полезное о состоянии Вашей собственной сети.
Как первый шаг, откройте окно терминала и тип ip route ls
Необходимо видеть вывод вроде
shadur@equinox:~$ ip route ls
192.168.15.0/24 dev eth0 proto kernel scope link src 192.168.15.102
default via 192.168.15.1 dev eth0
Это указывает, что Ваша локальная сеть является соединением Ethernet (eth0
) с адресом 192.168.15.0
, и что его шлюз по умолчанию, через который это получает доступ к остальной части Интернета, может быть найден в 192.168.15.1
.
Затем, можно попытаться ping
тот адрес:
shadur@equinox:~$ ping 192.168.15.1
PING 192.168.15.1 (192.168.15.1) 56(84) bytes of data.
64 bytes from 192.168.15.1: icmp_req=1 ttl=255 time=0.352 ms
64 bytes from 192.168.15.1: icmp_req=2 ttl=255 time=0.269 ms
^C
--- 192.168.15.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.269/0.310/0.352/0.045 ms
Если Вы видите что-то подобное вышеупомянутому, Ваша собственная локальная сеть, по крайней мере, прекрасна. В этой точке можно начать смотреть с более усовершенствованными инструментами как traceroute
видеть, где Ваша связь с местом назначения могла бы прерываться.
Однако после быстрой проверки Google какой growl
как на самом деле предполагается, я получаю чувство, что существует что-то еще идущее не так, как надо. Можно ли развернуть вопрос предоставить нам еще несколько подробной информации о том, что Вы пытаетесь сделать, как Вы делаете попытку его, и полный вывод ошибок? Строка, которую Вы в настоящее время даете нам, отключена резко...
Очень простой и быстрый путь состоит в том, чтобы использовать ping
команда.
Можно просто ввести
$ ping yahoo.com
(или cnn.com или любой другой хост), и видят, возвращаете ли Вы вывод. Это предполагает, что имена хостов могут быть разрешены (т.е. DNS работает). В противном случае можно, надо надеяться, предоставить допустимый IP-адрес / количество удаленной системы и видеть, может ли оно быть достигнуто.
Вот страница справочника ping.
Обновление:
Как быстрый пример, можно проверить возвращаемое значение (например, с "echo $?"
) от ping
видеть если команда, за которой следуют (Вы могли бы всегда передавать вывод по каналу команды к > /dev/nul
). Обратите внимание, что я использую -c 1
здесь, но Вы могли использовать больше.
$ ping -c 1 yahoo.com
PING yahoo.com (72.30.38.140) 56(84) bytes of data.
64 bytes from ir1.fp.vip.sp2.yahoo.com (72.30.38.140): icmp_seq=1 ttl=52 time=83.5 ms
--- yahoo.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 83.593/83.593/83.593/0.000 ms
echo $?
0
$ ping -c 1 unicorns.are.here
ping: unknown host unicorns.are.here
$ echo $?
2
ping -c 2 -n <other host's IP>
и воздействуйте на код возврата: если верный (0), то это имеет возможность соединения; если ложь (1), то это не может говорить с той машиной.
– lxop
17.07.2012, 08:00
ping -c 2 -n <other host's IP>
и воздействуйте на код возврата: если верный (0), то это имеет возможность соединения; если ложь (1), то это не может говорить с той машиной.
– lxop
17.07.2012, 08:00
Я бы использовал netcat
для нужного сервиса.
Например, успешное тестирование IP-порта
> nc -zv 192.168.1.1 80
Connection to 172.26.0.1 80 port [tcp/http] succeeded!
...и провал
> nc -zv 192.168.1.1 22
netcat: connect to 172.26.0.1 port 22 (tcp) failed: Connection refused
с тайм-аутом 10 с
> nc -zv -w 10 10.0.0.1 80
netcat: connect to 10.0.0.1 port 80 (tcp) timed out: Operation now in progress
Я использую следующую функцию... По умолчанию используется quad9, но вы можете передать другой домен. Время ожидания истекает через 15 минут после попытки
wait_for_dns() {
local fqhn="quad9.net"
fqhn=${1:-$fqhn}
printf "waiting"
for i in {1..15}; do
local a_record=$(dig +short +time=2 $fqhn)
if [[ $a_record != '' ]]; then
printf "\n"
return 0
fi
printf '.'
sleep 60
done
printf "\n"
return 1
}
ip route get 1.2.3.4
более надежно, чем просто выполнениеip route ls
. Первый возьмет в эффект любые правила, которые существуют в дополнение к маршрутам. Это также удаляет возможность неправильного чтения таблицы (таблиц) маршрутизации. – Patrick 17.07.2012, 15:16