

In the server configuration, when the network interface wants to send a packet to a peer (a client), it looks at that packet's destination IP and compares it to each peer's list of allowed IPs to see which peer to send it to. For example, when a packet is received by the server from peer gN65BkIK., after being decrypted and authenticated, if its source IP is 10.10.10.230, then it's allowed onto the interface otherwise it's dropped. In the server configuration, each peer (a client) will be able to send packets to the network interface with a source IP matching his corresponding list of allowed IPs. PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw= PrivateKey = gI6EdUSYvn8ugXOt8QQD6Yc+JyiZxIhp3GInSWRfWGE= They can be passed around for use in configuration files by any out-of-band method, similar to how one might send their SSH public key to a friend for access to a shell server.įor example, a server computer might have this configuration: Public keys are short and simple, and are used by peers to authenticate each other. Each network interface has a private key and a list of peers. Cryptokey RoutingĪt the heart of WireGuard is a concept called Cryptokey Routing, which works by associating public keys with a list of tunnel IP addresses that are allowed inside the tunnel. If not, drop it.īehind the scenes there is much happening to provide proper privacy, authenticity, and perfect forward secrecy, using state-of-the-art cryptography.

If you intend to implement WireGuard for a new platform, please read the cross-platform notes. If you're interested in the internal inner workings, you might be interested in the brief summary of the protocol, or go more in depth by reading the technical whitepaper, which goes into more detail on the protocol, cryptography, and fundamentals.

#Easyvpn github how to
You then may progress to installation and reading the quickstart instructions on how to use it.

If you'd like a general conceptual overview of what WireGuard is about, read onward here. WireGuard is the result of a lengthy and thoroughly considered academic process, resulting in the technical whitepaper, an academic research paper which clearly defines the protocol and the intense considerations that went into each decision.
