---
name: "knock"
section: "1"
platform: "linux"
package: "knockd"
version: "0.8-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/knock"
---

# knock(1)

port-knock client

## NAME

knock - port-knock client

## SYNOPSIS

**knock \[options\] \<host\> \<port\[:proto\]\> \[port\[:proto\]\] ...**

## DESCRIPTION

**knock** is a *port-knock* client.  It sends TCP/UDP packets to each specified *port* on *host*, creating a special knock sequence on the listening server (see the **knockd** manpage for more info on this).

## OPTIONS

- **-u, --udp**

  Make all port hits use UDP (default is TCP). If you want each port to use a different protocol (TCP or UDP), then you can specify the protocol on a per-port basis.  See the example below.

- **-d \<t\>, --delay \<t\>**

  Wait \<t\> milliseconds between each port hit.  This can be used in situations where a router mistakes your stream of SYN packets as a port scan and blocks them.  If the packet rate is slowed with --delay, then the router should let the packets through.

- **-4, --ipv4 \<version\>**

  Force usage of IPv4.

- **-6, --ipv6 \<version\>**

  Force usage of IPv6.

- **-v, --verbose**

  Output verbose status messages.

- **-V, --version**

  Display the version.

- **-h, --help**

  Syntax help.

## EXAMPLES

```
knock myserver.example.com 123:tcp 456:udp 789:tcp
knock -u myserver.example.com 8284 4721 18592 42912
```

## SEE ALSO

**knockd** is the accompanying port-knock server.

## AUTHOR

```
Judd Vinet <jvinet@zeroflux.org>
```
