A port-knocking daemon
Alternatives To Knock
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Coredns10,4488141715 hours ago271September 08, 202268apache-2.0Go
CoreDNS is a DNS server that chains plugins
React Redux Realworld Example App5,183
a year ago88mitJavaScript
Exemplary real world application built with React + Redux
Ssh25,0623,1821,18824 days ago100June 11, 202296mitJavaScript
SSH2 client and server modules written in pure JavaScript for node.js
2 days ago25gpl-3.0PHP
HTPC/Homelab Services Organizer - Written in PHP
Vantage3,45847346 years ago51June 02, 201615mitJavaScript
Distributed, realtime CLI for live Node apps.
Web Socket Js2,704
46 years agoApril 03, 201429bsd-3-clauseJavaScript
HTML5 Web Socket implementation powered by Flash
2 months ago75mitJavaScript
server for
Py Kms1,787
4 months ago25unlicensePython
KMS Server Emulator written in Python
Start Server And Test1,39375172615 days ago61September 02, 202172mitJavaScript
Starts server, waits for URL, then runs test command; when the tests end, shuts down server
6 years ago10November 24, 2014mitPython
Malformed servers to test your HTTP client
Alternatives To Knock
Select To Compare

Alternative Project Comparisons

knock: A port-knocking implementation

Copyright (c) 2004, Judd Vinet [email protected]


This is a port-knocking server/client. Port-knocking is a method where a server can sniff one of its interfaces for a special "knock" sequence of port-hits. When detected, it will run a specified event bound to that port knock sequence. These port-hits need not be on open ports, since we use libpcap to sniff the raw interface traffic.


To build knockd, make sure you have libpcap and the autoconf tools installed. Then run the following:

$ autoreconf -fi
$ ./configure --prefix=/usr/local
$ make
$ sudo make install


The example below could be used to run a strict (DENY policy) firewall that can only be accessed after a successful knock sequence.

  1. Client sends four TCP SYN packets to Server, at the following ports: 38281, 29374, 4921, 54918
  2. Server detects this and runs an iptables command to open port 22 to Client.
  3. Client connects to Server via SSH and does whatever it needs to do.
  4. Client sends four more TCP SYN packets to Server: 37281, 8529, 40127, 10100
  5. Server detects this and runs another iptables command to close port 22 to Client.


The accompanying knock client is very basic. If you want to do more advanced knocks (eg, setting specific tcp flags) then you should take look at more powerful clients.


Here are some other implementations of port-knocking:

Popular Server Projects
Popular Port Projects
Popular Networking Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.