knock
is a simple, command-line network reachability tester. I made knock
because I found myself using telnet
to test if I could successfully connect
to remote databases, webservers, and the like fairly often and realized that I
don't actually need all of the features and historical baggage of that
software: I just want to know if I can get from point A to B. knock
is
designed around this use-case. Other tools like ncat
do more and better, but
they also bring needless complexity to this task.
Build from source or download a pre-built binary.
$ ./build.tcl
You can call knock
just like telnet
:
$ knock localhost 8080
Failed: connection refused.
Or with a colon:
$ knock 192.168.100.1:22
Succeeded.
Or with option flags:
$ knock -time 10 -dest example.com -port 8000 -net tcp
Failed: connection timed out after 10 seconds.
Normally, any problem connecting will be reported to the user
as explicitly as possible. Unlike telnet
, knock
will never
prompt the user for interactive input. As soon as a connection
succeeds, knock
will hang up and report back that success.
Option | Description |
---|---|
-dest | Network destination address or name |
-net | Network type to use (default tcp ) |
-port | Port number to knock on destination (default 80 ) |
-time | Time to wait in seconds before giving up (default 15 ) |
Supported network types are tcp
, tcp4
, tcp6
, udp
, udp4
, udp6
,
ip
, ip4
, ip6
, unix
, unixgram
, and unixpacket
. The network types
with 4
in their name are IPv4-only, and those with 6
are IPv6-only.
Knock is open source-software distributed under the 0BSD license. To report bugs or view source code, see https://codeberg.org/nat-418/knock.