Это печатает случайное число между 1 и 67. Это, возможно, также было записано без echo
:
awk 'BEGIN{srand(); print int(rand()*67+1)}'
Посмотрите гну пользовательское руководство Awk:
srand ([x])
Установите начальную точку или семя, для генерации случайных чисел к значению x.
Я думаю, общие принципы сетевого поиска и устранения неисправностей:
Что касается меня, я обычно получаю всю запрошенную информацию с помощью всех необходимых инструментов и пытаюсь соответствовать этой информации к своему опыту. Решение, какой уровень сетевого стека содержит ошибку, помогает отключить маловероятные варианты. Используя опыт других людей помогает решить проблемы быстро, но часто он приводит к ситуации, что я могу решить некоторую проблему без ее понимания и если эта проблема происходит снова, для меня невозможно заняться им снова без Интернета.
И в целом, я не знаю, как я решаю сетевые проблемы. Кажется, что существует некоторая волшебная функция в моем названном мозгу SolveNetworkProblem(information_about_system_state, my_experience, people_experience)
, то, которое могло иногда давать точно правильный ответ и также могло иногда перестать работать (как здесь TCP умирает на ноутбуке Linux).
Я обычно использую utils от этого набора для сетевой отладки:
ifconfig
(или ip link
, ip addr
) - для получения информации о сетевых интерфейсахping
- для проверки, если целевой узел доступен от моей машины. ping
также мог использоваться для базовой диагностики DNS - мы могли проверить с помощью ping-запросов хост IP-адресом или его именем хоста и затем решить, работает ли DNS вообще. И затем traceroute
или tracepath
или mtr
смотреть, что продолжается на пути там.dig
- диагностируйте все DNSdmesg | less
или dmesg | tail
или dmesg | grep -i error
- для понимания, что ядро Linux думает о некоторой проблеме.netstat -antp
+ | grep smth
- мое самое популярное использование команды netstat, которая показывает информацию о соединениях TCP. Часто я выполняю некоторую фильтрацию с помощью grep. См. также новое ss
команда (от iproute2
новый стандартный пакет Linux сетевые инструменты) и lsof
как в lsof -ai tcp -c some-cmd
.telnet <host> <port>
- очень полезно для общения с различными сервисами TCP (например, на SMTP, протоколах HTTP), также мы могли проверить общую возможность соединиться с некоторым портом TCP.iptables-save
(на Linux) - для дампа полных iptables таблицethtool
- получите все параметры сетевой карты (состояние ссылки, скорости, разгрузите параметры...),socat
- швейцарский армейский инструмент для тестирования всех сетевых протоколов (UDP многоадресно передайте, SCTP...). Особенно полезный (больше, чем telnet) с некоторыми -d
опции.iperf
- протестировать доступность пропускной способностиopenssl
(s_client
, ocsp
, x509
...) для отладки всех проблем SSL/TLS/PKI.wireshark
- мощный инструмент для получения и анализа сетевого трафика, который позволяет Вам анализировать и ловить много сетевых ошибок.iftop
- покажите крупным пользователям в сети/маршрутизаторе.iptstate
(на Linux) - текущее представление отслеживания соединения брандмауэра.arp
(или новое (Linux) ip neigh
) - показывают состояние таблицы ARP.route
или более новое (на Linux) ip route
- покажите состояние таблицы маршрутизации.strace
(или truss
, dtrace
или tusc
в зависимости от системы) - полезный инструмент, который показывает, какие системные вызовы делает процесс задач, это также показывает коды ошибок (errno), когда системные вызовы перестали работать. Эта информация часто говорит достаточно для понимания поведения системы и решения проблемы. С другой стороны, использующие точки останова на некоторых сетевых функциях в gdb
может позволить Вам узнать, когда они сделаны и с который аргументы.iptables -nvL
шоу, сколько пакетов подобрано каждым правилом (iptables -Z
обнулять счетчики). LOG
цель, вставленная в цепочки брандмауэра, полезна для наблюдения, какие пакеты достигают их и как они были уже преобразованы, когда они добираются там. Добираться далее NFLOG
(связанный с ulogd
) зарегистрирует полный пакет.Удивительное количество "сетевых проблем" сводится к проблемам DNS одного вида или другого. Начальный поиск и устранение неисправностей должен использовать ping -n w.x.y.z
чтобы не учесть разрешение DNS имени хоста и просто проверить возможность соединения IP. После этого использовать route -n
для проверки IP по умолчанию направляют без разрешения DNS.
После проверки возможности соединения IP и маршрутизации, nslookup
, host
и dig
может привести к информации. Помните, что "запирание" может указать, что тайм-ауты DNS происходят.
Не забывайте проверять существование и содержание /etc/resolv.conf
. Изменения клиентов DHCP, что файл с каждым арендным договором, и иногда они понимают его превратно, или если дисковое пространство трудно, обновление, не могло бы произойти.
Кабельные соединения проблем могут существовать. Если Вы имеете доступ к аппаратным средствам, удостоверяетесь, что кабели все включаются и механически заняты. Если Вы видите маршрутизаторы или интерфейсы Ethernet, удостоверяетесь, что световые сигналы ссылки идут.
Удаленно, необходимо зависеть от ethtool
и mii-tool
.
[root@flask ~]# ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Speed: 10Mb/s
Duplex: Half
Port: MII
PHYAD: 24
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x00000001 (1)
drv
Link detected: yes
"Ссылка обнаружила: да" хорошо, но 10Mb/s и Полудуплекс не хороши, поскольку NIC на том компьютере может добиться большего успеха. Я должен выяснить, провален ли NIC, или кабель. Другой компьютер включил тот же маршрутизатор, говорит 100Mb/s, Полный дуплекс.
nmap
. Профиль открытых портов на машине может быстро дать, Вы подсказываете относительно того, смотрите ли Вы на Linux или Windows Server, например. – Adam Monsen 21.04.2017, 21:54