- LinkChecker
- Check websites for broken links
- Introduction
- Features
- Screenshots
- Basic usage
- Other linkcheckers
- Test suite status
- How to quickly check if a website is up or down
- Method-1: Check a website availability with fping
- Method-2: Testing a website from Linux command line
- Method-3: Health check of web page using curl
- Method-4: How to check if a website is up or down with wget
- Method-5: lynx command to check if website is up or down
- Method-6: ping command to check the url availability
- Method-7: how to check whether a website is working or not
- Method-8: Shell script to check website status
- Conclusion
- 🌐 Проверьте доступность веб-сайта из командной строки Linux
- Проверить доступность сайта с помощью CURL
- Проверить доступность сайта с помощью TELNET
- 7 сетевых Linux-команд, о которых стоит знать системным администраторам
- Команда ip
- Команда ifconfig
- Команда mtr
- Команда tcpdump
- ▍ Захват трафика, идущего к некоему хосту и от него
- ▍ Захват трафика, идущего в некую сеть и из неё
- ▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
- Команда netstat
- Команда nslookup
- Команда ping
- ▍ Destination Host Unreachable
- ▍ Request timed out
- ▍ Unknown host/Ping Request Could Not Find Host
- Итоги
LinkChecker
Check websites for broken links
Introduction
LinkChecker is a free, GPL licensed website validator. LinkChecker checks links in web documents or full websites. It runs on Python 2 systems, requiring Python 2.7.2 or later. Python 3 is not yet supported.
Features
- recursive and multithreaded checking and site crawling
- output in colored or normal text, HTML, SQL, CSV, XML or a sitemap graph in different formats
- HTTP/1.1, HTTPS, FTP, mailto:, news:, nntp:, Telnet and local file links support
- restriction of link checking with regular expression filters for URLs
- proxy support
- username/password authorization for HTTP and FTP and Telnet
- honors robots.txt exclusion protocol
- Cookie support
- HTML5 support
- Plugin support allowing custom page checks. Currently available are HTML and CSS syntax checks, Antivirus checks, and more.
- Different interfaces: command line, GUI and web interface
- . and a lot more check options documented in the manual page.
Screenshots
Commandline interface | GUI client | CGI web interface |
Basic usage
To check a URL like http://www.example.org/myhomepage/ it is enough to enter http://www.example.org/myhomepage/ in the GUI client or web interface, or execute linkchecker http://www.example.org/myhomepage/ on the command line.
This check will validate recursively all pages starting with http://www.example.org/myhomepage/ . Additionally, all external links pointing outside of www.example.org will be checked but not recursed into.
Other linkcheckers
If this software does not fit your requirements, you can check out other free linkcheckers.
Test suite status
Linkchecker has extensive unit tests to ensure code quality. Travis CI is used for continuous build and test integration.
Источник
How to quickly check if a website is up or down
Linux users can easily test a websites availability from the command line by obtaining the status codes from the web server.
The below HTTP response status codes will tell you the status of a website, and most of the time you will see one of the below codes in the browser when you encounter a problem accessing the website, except the first two codes.
- 200 OK : Standard response for successful HTTP requests.
- 301 Moved Permanently : The requested page has moved to a new url. This is because you are redirected from a Non-www to www or vice versa.
- 403 Forbidden : Access is forbidden to the requested page.
- 404 Not Found : The server can not find the requested page.
- 500 Internal Server Error : The request was not completed. The server met an unexpected condition.
- 502 Bad Gateway : The request was not completed. The server received an invalid response from the upstream server.
- 503 Service Unavailable : The request was not completed. The server is temporarily overloading or down.
Most of us prefer to use the ping command, which performs a basic test to determine if a remote host is available, but it does not check whether the web server is up or not.
In this guide, we will show you several commands to check if a website is down, from the Linux terminal.
We have added various options to check this information for single host and multiple hosts.
If you are maintaining certain websites and want to receive real-time alerts when the website goes down. I recommend using real-time website tracking tools, some of which are free, but most are paid, so choose the one you prefer based on your needs. We will cover this topic in our upcoming article.
Method-1: Check a website availability with fping
fping command is a program such as ping, which uses the Internet Control Message Protocol (ICMP) echo request to determine whether a target host is responding.
fping differs from ping because it allows users to ping any number of hosts in parallel as shown below:
Method-2: Testing a website from Linux command line
The httpie tool is a modern command line http client which makes CLI interaction with the web services.
It provides a simple http command that allows for sending arbitrary HTTP requests using a simple and natural syntax, and displays a colorized output.
It’s not cURL replacement but this is particularly well-suited to JSON-based REST APIs.
Method-3: Health check of web page using curl
curl command is a tool that is used to transfer data either from a server or to the server, using one of the supported protocols such as ftp, ftps, http, https, scp, etc.
The curl command is designed to work without user interaction, and this is inevitable when you are working on a console.
It supports proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume, Metalink, and more.
If you only want to see the HTTP status code instead of the full output, use the following curl command:
Use the following shell script to display a customized output with the http status code:
Run the script after adding the above script to a file:
Use the following shell script to view the status of multiple websites using curl command:
Run the script to see the output:
Method-4: How to check if a website is up or down with wget
wget command (formerly known as Geturl) is a Free, open source, command line download tool which retrieves the files using HTTP, HTTPS and FTP, the most widely-used Internet protocols.
It is a non-interactive command line tool and Its name is derived from “World Wide Web and get”.
wget handles the download pretty good compared with other tools. It’s features include working in the background, recursive download, multiple file downloads, resume downloads, non-interactive downloads & large file downloads.
You may have trouble identifying the website status from the above output as it contains so many lines making it difficult to read. Hence, use the following customized command to view only the HTTP status code instead of the full output:
Use the following bash script to add extra value in the output based on the status code for better readability:
You can see the output as soon as the script is executed as shown below:
Use the following shell script to view the status of multiple websites:
You can see the output as soon as the script is executed as shown below:
Method-5: lynx command to check if website is up or down
lynx is a highly configurable text-based web browser for use on cursor-addressable character cell terminals. It’s the oldest web browser, and still under active development.
Use the following lynx command if you want to see only the HTTP status code instead of the entire output:
If you want to check if a given website is up or down, use the following Bash script:
Once you have added the above script to a file, run the file to see the output:
Use the following shell script if you want to see the status of multiple websites:
Once you have added the above script to a file, run the file to see the output:
Method-6: ping command to check the url availability
ping command (stands for “Packet Internet Groper”) is a networking utility that’s used to test the target of a host availability/connectivity on an Internet Protocol (IP) network.
It verifies a host availability by sending Internet Control Message Protocol (ICMP) Echo Request packets to the target host and waiting for an ICMP Echo Reply.
Method-7: how to check whether a website is working or not
The Telnet command is an old network protocol used to communicate with another host over a TCP/IP network using the TELNET protocol.
It uses port 23 to connect to other devices, such as computer and network equipment.
Telnet is not a secure protocol and is usually not recommended, because the data sent to the protocol is not encrypted and can be intercepted by hackers.
Method-8: Shell script to check website status
In simple words, a shell script is a file that contains a series of commands. The shell reads this file and executes the commands one by one as they are entered directly on the command line.
To make it more useful we can add some conditions which reduces the tasks of a Linux admin.
If you want to see the status of multiple websites using the wget command, use the following shell script:
Once you have added the above script to a file, run the file to see the output:
If you want to see the status of multiple websites using the curl command, use the following bash script:
Once you have added the above script to a file, run the file to see the output:
Conclusion
In this guide, we have shown several commands that can be executed from a Linux terminal to test whether a website is up or down. Also, included is a small shell script to check the status of multiple websites simultaneously in each session.
If you have any questions or feedback, feel free to leave a comment and we will get back to you as soon as possible.
Источник
🌐 Проверьте доступность веб-сайта из командной строки Linux
Вы можете легко проверить доступность веб-сайта из командной строки Linux и получить коды состояния с веб-сервера, используя такие команды, как TELNET или CURL.
Проверить доступность сайта с помощью CURL
Выполните следующую команду, чтобы проверить, работает ли веб-сайт и какое сообщение о состоянии показывает веб-сервер:
Код состояния «200 OK» означает, что запрос успешно выполнен и веб-сайт доступен.
Вот еще один пример, который показывает вам, как curl отображает различные коды состояния.
301 это редирект с https на http
Проверить доступность сайта с помощью TELNET
Вы также можете проверить доступность веб-сайта и получить код ответа с помощью команды telnet:
Вы получите вывод следующим образом:
- Аудит ИБ (44)
- Вакансии (10)
- Закрытие уязвимостей (98)
- Книги (27)
- Мануал (1 937)
- Медиа (66)
- Мероприятия (38)
- Мошенники (22)
- Обзоры (724)
- Обход запретов (33)
- Опросы (3)
- Скрипты (106)
- Статьи (292)
- Философия (77)
- Юмор (17)
Anything in here will be replaced on browsers that support the canvas element
Источник
7 сетевых Linux-команд, о которых стоит знать системным администраторам
Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.
Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.
В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.
Команда ip
Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.
Синтаксис этой команды выглядит так:
Самое важное тут — это (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:
- address — адрес протокола (IPv4 или IPv6) на устройстве.
- tunnel — IP-туннель.
- route — запись таблицы маршрутизации.
- rule — правило в базе данных политики маршрутизации.
- vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
- xfrm — управление IPSec-политикой.
Ниже приведены примеры, демонстрирующие распространённые сценарии использования команды ip .
Вывод IP-адресов, назначенных интерфейсу на сервере:
Назначение IP-адреса интерфейсу, например — enps03 :
Удаление IP-адреса из интерфейса:
Изменение статуса интерфейса, в данном случае — включение eth0 :
Изменение статуса интерфейса, в данном случае — выключение eth0 :
Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :
Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:
Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :
Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:
Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :
Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:
Вывод маршрута к IP 10.10.1.4:
Команда ifconfig
Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip , о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.
Команда mtr
MTR (Matt’s traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute . Она, как traceroute , может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.
Синтаксис команды выглядит так:
Рассмотрим несколько распространённых способов применения mtr .
Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:
Вот — вариант использования mtr , когда вместо имён хостов выводятся их IP-адреса (речь идёт о ключе -g , благодаря которому вместо имён выводятся числовые IP-адреса):
А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:
Так можно задать количество ping-пакетов, которые нужно отправить системе, маршрут к которой подвергается анализу:
А так можно получить отчёт, содержащий результаты работы mtr :
Вот — ещё один вариант получения такого отчёта:
Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:
А вот так можно использовать UDP вместо ICMP:
Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:
Так можно настроить размер пакета:
Для вывода результатов работы mtr в формате CSV используется такая команда:
Вот — команда для вывода результатов работы mtr в формате XML:
Команда tcpdump
Утилита tcpdump предназначена для захвата и анализа пакетов.
Установить её можно так:
Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.
Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:
Или — такой, с указанием (через ключ -c ) количества пакетов, которые нужно захватить:
▍ Захват трафика, идущего к некоему хосту и от него
Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:
Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:
Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:
▍ Захват трафика, идущего в некую сеть и из неё
Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:
Ещё можно поступить так:
Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.
Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):
Вот — захват трафика с фильтрацией по сети, в которую он направляется:
▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта
Вот пример захвата трафика только для DNS-порта по умолчанию (53):
Захват трафика для заданного порта:
Захват только HTTPS-трафика:
Захват трафика для всех портов кроме 80 и 25:
Команда netstat
Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig , частью пакета net-tools . В новом пакете iproute2 для достижения тех же целей используется утилита ss .
Если в вашей системе netstat отсутствует, установить эту программу можно так:
Ей, в основном, пользуются, вызывая без параметров:
В более сложных случаях её вызывают с параметрами, что может выглядеть так:
Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:
Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:
Для вывода сведений обо всех TCP-портах применяется такой вариант команды:
Если нужны данные по UDP-портам — утилиту вызывают так:
Список портов любых протоколов, ожидающих соединений, можно вывести так:
Список TCP-портов, ожидающих соединений, выводится так:
Так выводят список UDP-портов, ожидающих соединений:
А так — список UNIX-портов, ожидающих соединений:
Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:
Так выводятся статистические сведения по TCP-портам:
Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:
Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:
Команда nslookup
Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.
Рассмотрим распространённые примеры использования этой команды.
Получение A-записи домена:
Просмотр NS-записей домена:
Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:
Обнаружение всех доступных DNS-записей домена:
Проверка использования конкретного DNS-сервера (в данном случае запрос производится к серверу имён ns1.nsexample.com ):
Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:
Команда ping
Команда ping — это инструмент, с помощью которого проверяют, на уровне IP, возможность связи одной TCP/IP-системы с другой. Делается это с использованием эхо-запросов протокола ICMP (Internet Control Message Protocol Echo Request). Программа фиксирует получение ответов на такие запросы и выводит сведения о них вместе с данными о времени их приёма-передачи. Ping — это основная команда, используемая в TCP/IP-сетях и применяемая для решения сетевых проблем, связанных с целостностью сети, с возможностью установления связи, с разрешением имён.
Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:
В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C . В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:
- Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
- Avg — среднее время, которое требуется на получение ответа.
- Max — максимальное время, которое требуется на получение ответа.
Кроме того, среди данных, выводимых программой о пакетах, есть такой параметр, как TTL (Time To Live, время жизни пакета). Тут используются числовые значения TTL, указывающие на то, сколько шагов маршрутизации может пройти пакет. Это значение ещё известно как «лимит переходов» (hop limit).
Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:
А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q :
В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping . Например, есть компьютер, имеющий интерфейсы eth0 и eth1 . Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:
Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:
Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:
В процессе работы с утилитой ping вы столкнётесь с различными результатами. В частности, это могут быть сообщения о нештатных ситуациях. Рассмотрим три таких ситуации.
▍ Destination Host Unreachable
Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.
▍ Request timed out
Если результат работы ping выглядит именно так — это значит, что локальная система не получила, в заданное время, эхо-ответов от целевой системы. По умолчанию используется время ожидания ответа в 1 секунду, но этот параметр можно настроить. Подобное может произойти по разным причинам. Чаще всего это — перегруженность сети, сбой ARP-запроса, отбрасывание пакетов фильтром или файрволом и прочее подобное.
▍ Unknown host/Ping Request Could Not Find Host
Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.
О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).
Итоги
Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.
Источник