network-test(1)

NAME
network-test - check the network and test if everything is fine

SYNOPSIS
network-test -s [-vverboselevel]

DESCRIPTION
The network-test program will test your system's network configuration using basic tests and providing both information (INFO), warnings (WARN) and possible errors (ERR) based on the results of these tests. It will check and report on:
    * Status of the network interfaces of the system including: link status,
     IP addressing and number of transmitted packets and error rates. * Accessibility to configured routes to external networks,
      including the default network route, checking the routers configured
      to give access to the network * Proper host resolution, testing DNS resolution against a known host. * Proper network connectivity, testing reachability of remote hosts using ICMP and simulating a web connections to a remote web server (the web server used for the tests can be configured through the environment, see below) * Extra information of network connectivity using calls to external API services including the actual Internet IPv4 address, IPv6 address as well as GeoIP information (only if enabled by the user in the highest verbose level)

The program does not need special privileges to run as it does not do any system change. However, the behaviour of the program when running as an unprivileged user is not the same as running as system administrator (i.e. root). If the program is run as system administrator it will try to run some tools that are only available to it to speed up some of the tests.

The program relies on the use of ip, netstat, ifconfig, arp, nmcli, and (when running as root and using Ethernet interfaces) ethtool or mii-tool, to obtain information about the system's networking configuration (status of available interfaces and configured network routes). It also uses ping, host, curl, and nc (netcat) to do tests of the network connectivity and ensure that the host can connect to the Internet.

OPTIONS

-s  The log messages are sent also to the local3 syslog facility. This is useful if the script is run periodically (from cron) and the system administrator wants to preserve the output in syslog

-v verbosity
    Verbosity level is a value that defines the level of output information that the script should use. Valid values are: 0 (silent run), 1 (show only error messages), 2 (Show error and warning messages), 3 (default level - show informational messages), 4 (show detailed information) and 5 (Show information from external APIs -IP address and GeoIP). As the privacy policies of different external services vary. These services are only queried if the user selects the highest verbosity level (5).

ENVIRONMENT
The program will, by default, check www.debian.org and its associated web server. If you want to use a different check host you can setup the environment as follows:

CHECK_HOST
    The name of a host to use when testing DNS resolution. By default 'www.debian.org'

CHECK_IP_ADRESS
    The CHECK_HOST 's IP address. By default defined with the following value: 194.109.137.218

CHECK_WEB_HOST
    The web server to use for testing purposes when testing network connectivity. By default it will use 'www.debian.org'

CHECK_WEB_PORT
    The web server port of server CHECK_WEB_HOST that will be used for testing. By default it will use TCP port 80..

CHECK_WEB_URL
    A web service to test network connectivity by downloading some content. By default it will use 'http://network-test.debian.org/moo'

CHECK_WEB_MD5
    The MD5sum value of the content being checked.

CHECK_IP_URL
    A web service used to determine the system's public IPv4 address. By default it will use 'https://api.ipify.org'

CHECK_IP6_URL
    A web service used to determine the system's public IPv6 address. By default it will use 'https://api6.ipify.org'

CHECK_GEOIP_URL
    A web service used to determine the system's Geographical information based on public databases. By default it will use 'http://api.geoiplookup.net/'

EXIT STATUS
The program will exit with error (1) if any of the network checks fail.

BUGS
This program does not have super cow powers so it is unable to fix the errors by itself. It is also unable to detect if the network is failing due to a local firewall policy been in place so make sure you check your system logs with dmesg (1) to detect if some of the active tests are being dropped due to your local firewall. Other known issues that might make the program not work reliable are:
    * IPv6: The program does not yet explicitly handle IPv6 only hosts, some of the tests might be biased towards IPv4 and might fail in IPv6 environments. * Proxies: The program does not check network connectivity for hosts that connect through the Internet using a proxy gateway for services. The program might report issues in hosts using proxies even when these might connect to the Internet properly through proxied services. * Firewall environments: some of the tests rely on direct connectivity to external hosts, which are tested using ICMP queries (through the use of ping. These tests might fail in hosts installed in networking environments with firewalls that block outbound ICMP communication.

SEE ALSO
ip (8), ncmli (1), netstat (8), ifconfig (8), ethtool (8), mii-tool (8), ping (8), nc (1), curl (1), and host (1).

AUTHOR
network-test was written by Javier Fernandez-Sanguino for the Debian GNU/Linux distribution.

COPYRIGHT AND LICENCE
Copyright (C) 2005-2020 Javier Fernandez-Sanguino <jfs@debian.org>. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. On Debian systems, a copy of the GNU General Public License may be found in /usr/share/common-licenses/GPL.