Virtual private network

Extension of a private network across a public one

"VPN" redirects here. For other uses, see VPN (disambiguation). For commercial services, see VPN service.

Virtual private network (VPN) is a network architecture for virtually extending a private network (i.e. any computer network which is not the public Internet) across one or multiple other networks which are either untrusted (as they are not controlled by the entity aiming to implement the VPN) or need to be isolated (thus making the lower network invisible or not directly usable).[1]

A VPN can extend access to a private network to users who do not have direct access to it, such as an office network allowing secure access from off-site over the Internet.[2] This is achieved by creating a link between computing devices and computer networks by the use of network tunneling protocols.

It is possible to make a VPN secure to use on top of insecure communication medium (such as the public internet) by choosing a tunneling protocol that implements encryption. This kind of VPN implementation has the benefit of reduced costs and greater flexibility, with respect to dedicated communication lines, for remote workers.[3]

The term VPN is also used to refer to VPN services which sell access to their own private networks for internet access by connecting their customers using VPN tunneling protocols.

## Motivation

[edit]

The goal of a virtual private network is to allow network hosts to exchange network messages across another network to access private content, as if they were part of the same network. This is done in a way that makes crossing the intermediate network transparent to network applications. Users of a network connectivity service may consider such an intermediate network to be untrusted, since it is controlled by a third-party, and might prefer a VPN implemented via protocols that protect the privacy of their communication.

In the case of a provider-provisioned VPN, the goal is not to protect against untrusted networks, but to isolate parts of the provider's own network infrastructure in virtual segments, in ways that make the contents of each segment private with respect to the others. This situation makes many other tunneling protocols suitable for building PPVPNs, even with weak or no security features (like in VLAN).

## Operation

[edit]

How a VPN works depends on which technologies and protocols the VPN is built upon. A tunneling protocol is used to transfer the network messages from one side to the other. The goal is to take network messages from applications on one side of the tunnel and replay them on the other side. Applications do not need to be modified to let their messages pass through the VPN, because the virtual network or link is made available to the OS.

Applications that do implement tunneling or proxying features for themselves without making such features available as a network interface, are not to be considered VPN implementations but may achieve the same or similar end-user goal of exchanging private contents with a remote network.

## Topology

[edit]

VPN classification tree based on the topology first, then on the technology used VPN connectivity overview, showing intranet site-to-site and remote-work configurations used together

Virtual private networks configurations can be classified depending on the purpose of the virtual extension, which makes different tunneling strategies appropriate for different topologies:

Remote access
A host-to-network configuration is analogous to joining one or more computers to a network to which they cannot be directly connected. This type of extension provides that computer access to local area network of a remote site, or any wider enterprise networks, such as an intranet. Each computer is in charge of activating its own tunnel towards the network it wants to join. The joined network is only aware of a single remote host for each tunnel. This may be employed for remote workers, or to enable people accessing their private home or company resources without exposing them on the public Internet. Remote access tunnels can be either on-demand or always-on. Because the remote host location is usually unknown to the central network until the former tries to reach it, proper implementations of this configuration require the remote host to initiate the communication towards the central network it is accessing.

Site-to-site
A site-to-site configuration connects two networks. This configuration expands a network across geographically disparate locations. Tunneling is only done between gateway devices located at each network location. These devices then make the tunnel available to other local network hosts that aim to reach any host on the other side. This is useful to keep sites connected to each other in a stable manner, like office networks to their headquarters or datacenter. In this case, any side may be configured to initiate the communication as long as it knows how to reach the other.

In the context of site-to-site configurations, the terms intranet and extranet are used to describe two different use cases.[4] An intranet site-to-site VPN describes a configuration where the sites connected by the VPN belong to the same organization, whereas an extranet site-to-site VPN joins sites belonging to multiple organizations.

Typically, individuals interact with remote access VPNs, whereas businesses tend to make use of site-to-site connections for business-to-business, cloud computing, and branch office scenarios. However, these technologies are not mutually exclusive and, in a significantly complex business network, may be combined.

Apart from the general topology configuration, a VPN may also be characterized by:

* the tunneling protocol used to tunnel the traffic,
* the tunnel's termination point location, e.g., on the customer edge or network-provider edge,
* the security features provided,
* the OSI layer they present to the connecting network, such as Layer 2 link/circuit or Layer 3 network connectivity,
* the number of simultaneous allowed tunnels,
* the relationship between the actor implementing the VPN and the network infrastructure provider, and whether the former trusts the medium of the former or not

A variety of VPN technics exist to adapt to the above characteristics, each providing different network tunneling capabilities and different security model coverage or interpretation.

## Native and third-party support

[edit]

Operating systems vendors and developers do typically offer native support to a selection of VPN protocols. These are subject to change over the years, as some have been proven to be unsecure with respect to modern requirements and expectations, and others have emerged.

### Support in consumer operating systems

[edit]

Desktop, smartphone and other end-user device operating systems usually support configuring remote access VPN from their graphical or command-line tools.[5][6][7] However, due to the variety of, often non standard, VPN protocols there exists many third-party applications that implement additional protocols not yet or no longer natively supported by the OS.

For instance, Android lacked native IPsec IKEv2 support until version 11,[8] and users needed to install third-party apps in order to connect that kind of VPN. Conversely, Windows does not natively support plain IPsec IKEv1 remote access native VPN configuration (commonly used by Cisco and Fritz!Box VPN solutions).

### Support in network devices

[edit]

Network appliances, such as firewalls, often include VPN gateway functionality for either remote access or site-to-site configurations. Their administration interfaces often facilitate setting up virtual private networks with a selection of supported protocols. In some cases, like in the open source operating systems devoted to firewalls and network devices (like OpenWrt, IPFire, PfSense or OPNsense) it is possible to add support for additional VPN protocols by installing missing software components or third-party apps.

Commercial appliances with VPN features based on proprietary hardware or software platforms usually support a consistent VPN protocol across their products, but do not allow customizations outside the use cases they implement. This is often the case for appliances that rely on hardware acceleration of VPNs to provide higher throughput or support a larger number of simultaneously connected users.

## Security mechanisms

[edit]

Whenever a VPN is intended to virtually extend a private network over a third-party untrusted medium, it is desirable that the chosen protocols match the following security model:

* confidentiality to prevent disclosure of private information or data sniffing, such that even if the network traffic is sniffed at the packet level (see network sniffer or deep packet inspection), an attacker would see only encrypted data, not the raw data
* message integrity to detect and reject any instances of tampering with transmitted messages, data packets are secured by tamper proofing via a message authentication code (MAC), which prevents the message from being altered or tampered without being rejected due to the MAC not matching with the altered data packet.

VPN are not intended to make connecting users anonymous or unidentifiable from the untrusted medium network provider perspective. If the VPN makes use of protocols that do provide those confidentiality features, their usage can increase user privacy by making the untrusted medium owner unable to access the private data exchanged across the VPN.

### Authentication

[edit]

In order to prevent unauthorized users from accessing the VPN, most protocols can be implemented in ways that also enable authentication of connecting parties. This secures the joined remote network confidentiality, integrity and availability.

Tunnel endpoints can be authenticated in various ways during the VPN access initiation. Authentication can happen immediately on VPN initiation (e.g. by simple whitelisting of endpoint IP address), or very lately after actual tunnels are already active (e.g. with a web captive portal).

Remote-access VPNs, which are typically user-initiated, may use passwords, biometrics, two-factor authentication, or other cryptographic methods. People initiating this kind of VPN from unknown arbitrary network locations are also called "road-warriors". In such cases, it is not possible to use originating network properties (e.g. IP addresses) as secure authentication factors, and stronger methods are needed.

Site-to-site VPNs often use passwords (pre-shared keys) or digital certificates. Depending on the VPN protocol, they may store the key to allow the VPN tunnel to establish automatically, without intervention from the administrator.

## Protocols

[edit]

The life cycle phases of an IPSec tunnel in a virtual private network

A virtual private network is based on a tunneling protocol, and may be possibly combined with other network or application protocols providing extra capabilities and different security model coverage.

* Internet Protocol Security (IPsec) was initially developed by the Internet Engineering Task Force (IETF) for IPv6, and was required in all standards-compliant implementations of IPv6 before RFC 6434 made it only a recommendation.[9] This standards-based security protocol is also widely used with IPv4. Its design meets most security goals: availability, integrity, and confidentiality. IPsec uses encryption, encapsulating an IP packet inside an IPsec packet. De-encapsulation happens at the end of the tunnel, where the original IP packet is decrypted and forwarded to its intended destination. IPsec tunnels are set up by Internet Key Exchange (IKE) protocol. IPsec tunnels made with IKE version 1 (also known as IKEv1 tunnels, or often just "IPsec tunnels") can be used alone to provide VPN, but have been often combined to the Layer 2 Tunneling Protocol (L2TP). Their combination made possible to reuse existing L2TP-related implementations for more flexible authentication features (e.g. Xauth), desirable for remote-access configurations. IKE version 2, which was created by Microsoft and Cisco, can be used alone to provide IPsec VPN functionality. Its primary advantages are the native support for authenticating via the Extensible Authentication Protocol (EAP) and that the tunnel can be seamlessly restored when the IP address of the associated host is changing, which is typical of a roaming mobile device, whether on 3G or 4G LTE networks. IPsec is also often supported by network hardware accelerators,[10] which makes IPsec VPN desirable for low-power scenarios, like always-on remote access VPN configurations.[11][12]
* Transport Layer Security (SSL/TLS) can tunnel an entire network's traffic (as it does in the OpenVPN project and SoftEther VPN project[13]) or secure an individual connection. A number of vendors provide remote-access VPN capabilities through TLS. A VPN based on TLS can connect from locations where the usual TLS web navigation (HTTPS) is supported without special extra configurations,
* Datagram Transport Layer Security (DTLS) – used in Cisco AnyConnect VPN and in OpenConnect VPN[14] to solve the issues TLS has with tunneling over TCP (SSL/TLS are TCP-based, and tunneling TCP over TCP can lead to big delays and connection aborts[15]).
* Microsoft Point-to-Point Encryption (MPPE) works with the Point-to-Point Tunneling Protocol and in several compatible implementations on other platforms.
* Microsoft Secure Socket Tunneling Protocol (SSTP) tunnels Point-to-Point Protocol (PPP) or Layer 2 Tunneling Protocol traffic through an SSL/TLS channel (SSTP was introduced in Windows Server 2008 and in Windows Vista Service Pack 1).
* Multi Path Virtual Private Network (MPVPN). Ragula Systems Development Company owns the registered trademark "MPVPN".[relevant?][16]
* Secure Shell (SSH) VPN – OpenSSH offers VPN tunneling (distinct from port forwarding) to secure[ambiguous] remote connections to a network, inter-network links, and remote systems. OpenSSH server provides a limited number of concurrent tunnels. The VPN feature itself does not support personal authentication.[17] SSH is more often used to remotely connect to machines or networks instead of a site to site VPN connection.
* WireGuard is a protocol. In 2020, WireGuard support was added to both the Linux[18] and Android[19] kernels, opening it up to adoption by VPN providers. By default, WireGuard utilizes the Curve25519 protocol for key exchange and ChaCha20-Poly1305 for encryption and message authentication, but also includes the ability to pre-share a symmetric key between the client and server.[20]
* OpenVPN is a free and open-source VPN protocol based on the TLS protocol. It supports perfect forward-secrecy, and most modern secure cipher suites, like AES, Serpent, TwoFish, etc. It is currently[may be outdated as of March 2023] being developed and updated by OpenVPN Inc., a non-profit providing secure VPN technologies.
* Crypto IP Encapsulation (CIPE) is a free and open-source VPN implementation for tunneling IPv4 packets over UDP via encapsulation.[21] CIPE was developed for Linux operating systems by Olaf Titz, with a Windows port implemented by Damion K. Wilson.[22] Development for CIPE ended in 2002.[23]

## Trusted delivery networks

[edit]

Trusted VPNs do not use cryptographic tunneling; instead, they rely on the security of a single provider's network to protect the traffic.[24]

* Multiprotocol Label Switching (MPLS) often overlays VPNs, often with quality-of-service control over a trusted delivery network.
* L2TP[25] which is a standards-based replacement, and a compromise taking the good features from each, for two proprietary VPN protocols: Cisco's Layer 2 Forwarding (L2F)[26] (obsolete as of 2009[update]) and Microsoft's Point-to-Point Tunneling Protocol (PPTP).[27]

From a security standpoint, a VPN must either trust the underlying delivery network or enforce security with a mechanism in the VPN itself. Unless the trusted delivery network runs among physically secure sites only, both trusted and secure models need an authentication mechanism for users to gain access to the VPN.[citation needed]

## Mobile environments

[edit]

Mobile virtual private networks are used in settings where an endpoint of the VPN is not fixed to a single IP address, but instead roams across various networks such as data networks from cellular carriers or between multiple Wi-Fi access points without dropping the secure VPN session or losing application sessions.[28] Mobile VPNs are widely used in public safety where they give law-enforcement officers access to applications such as computer-assisted dispatch and criminal databases,[29] and in other organizations with similar requirements such as field service management and healthcare.[30][need quotation to verify]

## Networking limitations

[edit]

A limitation of traditional VPNs is that they are point-to-point connections and do not tend to support broadcast domains; therefore, communication, software, and networking, which are based on layer 2 and broadcast packets, such as NetBIOS used in Windows networking, may not be fully supported as on a local area network. Variants on VPN such as Virtual Private LAN Service (VPLS) and layer 2 tunneling protocols are designed to overcome this limitation.[31]

## See also

[edit]

* Free Software portal
* Internet portal

* VPN service \- list of VPN service providers
* Anonymizer
* Dynamic Multipoint Virtual Private Network
* Ethernet VPN
* Internet privacy
* Mediated VPN
* Opportunistic encryption
* Provider-provisioned VPN
* Split tunneling
* Virtual private server
* VPNLab

## References

[edit]

1. ^ "virtual private network". NIST Computer Security Resource Center Glossary. Archived from the original on 2 January 2023. Retrieved 2 January 2023.
2. ^ "What Is a VPN? - Virtual Private Network". Cisco. Archived from the original on 31 December 2021. Retrieved 5 September 2021.
3. ^ Mason, Andrew G. (2002). Cisco Secure Virtual Private Network. Cisco Press. p. 7. ISBN 9781587050336.
4. ^ RFC 3809 - Generic Requirements for Provider Provisioned Virtual Private Networks. sec. 1.1. doi:10.17487/RFC3809. RFC 3809.
5. ^ "Connect to a VPN in Windows - Microsoft Support". support.microsoft.com. Retrieved 11 July 2024.
6. ^ "Connect to a virtual private network (VPN) on Android". Retrieved 11 July 2024.
7. ^ "VPN settings overview for Apple devices". Apple Support. Retrieved 11 July 2024.
8. ^ "IPsec/IKEv2 Library". Android Open Source Project. Retrieved 11 July 2024.
9. ^ E. Jankiewicz; J. Loughney; T. Narten (December 2011). IPv6 Node Requirements. Internet Engineering Task Force. doi:10.17487/RFC6434. ISSN 2070-1721. RFC 6434. Obsolete. p. 17. Obsoleted by RFC 8504. Obsoletes RFC 4294. "Previously, IPv6 mandated implementation of IPsec and recommended the key management approach of IKE. This document updates that recommendation by making support of the IPsec Architecture RFC4301 a SHOULD for all IPv6 nodes."
10. ^ "Security for VPNs with IPsec Configuration Guide, Cisco IOS Release 15S - VPN Acceleration Module [Support]". Cisco. Retrieved 9 July 2024.
11. ^ "VPN overview for Apple device deployment". Apple Support. Retrieved 9 July 2024.
12. ^ "About Always On VPN for Windows Server Remote Access". learn.microsoft.com. 22 May 2023. Retrieved 9 July 2024.
13. ^ "1. Ultimate Powerful VPN Connectivity". www.softether.org. SoftEther VPN Project. Archived from the original on 8 October 2022. Retrieved 8 October 2022.
14. ^ "OpenConnect". Archived from the original on 29 June 2022. Retrieved 8 April 2013. "OpenConnect is a client for Cisco's AnyConnect SSL VPN [...] OpenConnect is not officially supported by, or associated in any way with, Cisco Systems. It just happens to interoperate with their equipment."
15. ^ "Why TCP Over TCP Is A Bad Idea". sites.inka.de. Archived from the original on 6 March 2015. Retrieved 24 October 2018.
16. ^ "Trademark Status & Document Retrieval". tarr.uspto.gov. Archived from the original on 21 March 2012. Retrieved 8 October 2022.
17. ^ "ssh(1) – OpenBSD manual pages". man.openbsd.org. Archived from the original on 5 July 2022. Retrieved 4 February 2018.
* Barschel, Colin. "Unix Toolbox". cb.vu. Archived from the original on 28 May 2019. Retrieved 2 August 2009.
* "SSH_VPN – Community Help Wiki". help.ubuntu.com. Archived from the original on 2 July 2022. Retrieved 28 July 2009.
18. ^ Salter, Jim (30 March 2020). "WireGuard VPN makes it to 1.0.0—and into the next Linux kernel". Ars Technica. Archived from the original on 31 March 2020. Retrieved 30 June 2020.
19. ^ "Diff - 99761f1eac33d14a4b1613ae4b7076f41cb2df94^! - kernel/common - Git at Google". android.googlesource.com. Archived from the original on 29 June 2022. Retrieved 30 June 2020.
20. ^ Younglove, R. (December 2000). "Virtual private networks - how they work". Computing & Control Engineering Journal. 11 (6): 260–262\. doi:10.1049/cce:20000602 (inactive 12 July 2025). ISSN 0956-3385.`{{cite journal}}`: CS1 maint: DOI inactive as of July 2025 (link)[dead link]
* Benjamin Dowling, and Kenneth G. Paterson (12 June 2018). "A cryptographic analysis of the WireGuard protocol". International Conference on Applied Cryptography and Network Security. ISBN 978-3-319-93386-3.
21. ^ Fuller, Johnray; Ha, John (2002). Red Hat Linux 9: Red Hat Linux Security Guide (PDF). United States: Red Hat, Inc. pp. 48–53\. Archived (PDF) from the original on 14 October 2022. Retrieved 8 September 2022.
* Petersen, Richard (2004). "Chapter 17: Internet Protocol Security: IPsec, Crypto IP Encapsulation for Virtual Private Networks". Red Hat - The Complete Reference Enterprise Linux & Fedora Edition. United States: McGraw-Hill/Osborne. ISBN 0-07-223075-4. Archived from the original on 17 January 2023. Retrieved 17 January 2023.
22. ^ Titz, Olaf (20 December 2011). "CIPE - Crypto IP Encapsulation". CIPE - Crypto IP Encapsulation. Archived from the original on 18 May 2022. Retrieved 8 September 2022.
23. ^ Titz, Olaf (2 April 2013). "CIPE - encrypted IP in UDP tunneling". SourceForge. Archived from the original on 8 September 2022. Retrieved 8 September 2022.
* Wilson, Damion (19 October 2002). "CIPE-Win32 - Crypto IP Encapsulation for Windows NT/2000". SourceForge. Archived from the original on 8 September 2022. Retrieved 8 September 2022.
24. ^ Cisco Systems, Inc. (2004). Internetworking Technologies Handbook. Networking Technology Series (4 ed.). Cisco Press. p. 233\. ISBN 9781587051197. Retrieved 15 February 2013. "[...] VPNs using dedicated circuits, such as Frame Relay [...] are sometimes called trusted VPNs, because customers trust that the network facilities operated by the service providers will not be compromised."
25. ^ Layer Two Tunneling Protocol "L2TP" Archived 30 June 2022 at the Wayback Machine, RFC 2661, W. Townsley et al., August 1999
26. ^ IP Based Virtual Private Networks Archived 9 July 2022 at the Wayback Machine, RFC 2341, A. Valencia et al., May 1998
27. ^ Point-to-Point Tunneling Protocol (PPTP) Archived 2 July 2022 at the Wayback Machine, RFC 2637, K. Hamzeh et al., July 1999
28. ^ Phifer, Lisa. "Mobile VPN: Closing the Gap" Archived 6 July 2020 at the Wayback Machine, SearchMobileComputing.com, 16 July 2006.
29. ^ Willett, Andy. "Solving the Computing Challenges of Mobile Officers" Archived 12 April 2020 at the Wayback Machine, www.officer.com, May, 2006.
30. ^ Cheng, Roger. "Lost Connections" Archived 28 March 2018 at the Wayback Machine, The Wall Street Journal, 11 December 2007.
31. ^ Sowells, Julia (7 August 2017). "Virtual Private Network (VPN) : What VPN Is And How It Works". Hackercombat. Archived from the original on 17 June 2022. Retrieved 7 November 2021.

## Further reading

[edit]

* Kelly, Sean (August 2001). "Necessity is the mother of VPN invention". Communication News: 26–28\. ISSN 0010-3632. Archived from the original on 17 December 2001.

* v
* t
* e

Virtual private networking

Communication protocols|

* DTLS
* DirectAccess
* EVPN
* IPsec
* L2F
* L2TP
* L2TPv3
* PPTP
* SSTP
* Split tunneling
* SSL/TLS
* (Opportunistic: tcpcrypt)

Connection applications|

* FreeLAN
* FreeS/WAN
* Libreswan
* n2n
* OpenConnect
* OpenIKED
* Openswan
* OpenVPN
* Social VPN
* SoftEther VPN
* strongSwan
* tcpcrypt
* tinc
* VTun
* WireGuard
* Shadowsocks

Enterprise software|

* Avast SecureLine VPN
* Check Point VPN-1
* LogMeIn Hamachi

Risk vectors|

* Content-control software
* Deep content inspection
* Deep packet inspection
* IP address blocking
* Network enumeration
* Stateful firewall
* TCP reset attack
* VPN blocking

VPN Services|

| Avast|

* HMA
* SecureLine

|

Kape Technologies|

* CyberGhost
* ExpressVPN
* Private Internet Access
* Zenmate

McAfee|

* TunnelBear

Tesonet|

* NordVPN
* NordLayer
* Surfshark

Ziff Davis|

* IPVanish
* StrongVPN

* Hola
* IVPN
* Mozilla VPN
* Mullvad
* PrivadoVPN
* FineVPN
* Proton VPN
* PureVPN
* SaferVPN
* Tailscale
* Windscribe

* v
* t
* e

Cryptographic software

Email clients|

* Apple Mail
* Autocrypt
* Claws Mail
* Enigmail
* GPG
* Gpg4win
* GPG Mail
* Kontact
* Outlook
* p≡p
* PGP
* Sylpheed
* Thunderbird

Secure
communication|

| OTR|

* Adium
* BitlBee
* Centericq
* ChatSecure
* climm
* Jitsi
* Kopete
* Profanity

|

SSH|

* Dropbear
* lsh
* OpenSSH
* PuTTY
* SecureCRT
* WinSCP
* wolfSSH

TLS & SSL|

* BBM Enterprise
* Bouncy Castle
* BoringSSL
* Botan
* cryptlib
* GnuTLS
* JSSE
* LibreSSL
* MatrixSSL
* NSS
* OpenSSL
* mbed TLS
* BSAFE
* SChannel
* SSLeay
* stunnel
* TeamNote
* wolfSSL

VPN|

* Check Point VPN-1
* Hamachi
* Openswan
* OpenVPN
* SoftEther VPN
* strongSwan
* Tinc
* WireGuard

ZRTP|

* Jitsi
* Linphone
* Jami
* Zfone

P2P|

* Bitmessage
* Briar
* RetroShare
* Tox

DRA|

* Matrix
* OMEMO
* Cryptocat
* ChatSecure
* Proteus
* Session
* Signal Protocol
* Facebook Messenger
* Google Allo
* Google Messages
* Signal
* TextSecure
* WhatsApp

Disk encryption
(Comparison)|

* BestCrypt
* BitLocker
* Cryptoloop
* dm-crypt
* DriveSentry
* E4M
* eCryptfs
* FileVault
* FreeOTFE
* GBDE
* geli
* LUKS
* PGPDisk
* Private Disk
* Scramdisk
* Sentry 2020
* TrueCrypt
* History
* VeraCrypt

Anonymity|

* GNUnet
* I2P
* Java Anon Proxy
* Tor
* Vidalia
* RetroShare
* Ricochet
* Wickr

File systems (List)|

* EncFS
* EFS
* eCryptfs
* LUKS
* PEFS
* Rubberhose
* StegFS
* Tahoe-LAFS

Security-focused
operating system|

* Tails
* Qubes

Service providers|

* Hyphanet
* Tresorit
* Wuala
* NordLocker

Educational|

* CrypTool

Anti–computer forensics|

* USBKill
* BusKill

Related topics|

* Outline of cryptography
* Timeline of cryptography
* Hash functions
* Cryptographic hash function
* List of hash functions
* Homomorphic encryption
* End-to-end encryption
* S/MIME

* Category
* Commons

* v
* t
* e

Internet censorship circumvention technologies

Background|

* Internet censorship
* Internet censorship in China
* National intranet
* Censorship and blocking technologies
* IP address blocking
* DNS cache poisoning
* Wordfilter
* Great Firewall of China
* Blocks on specific websites
* Facebook
* GitHub
* Twitter
* Wikipedia

Principles|

| With a proxy server|

* P2P
* Web proxies
* SSH
* VPN
* PAC

|

Without a proxy server|

* HTTPS
* IPv6 transition mechanism
* hosts
* DNSCrypt
* Domain fronting
* Refraction networking

Anti-censorship software|

| Free software|

* Psiphon
* Shadowsocks
* OnionShare
* Orbot
* Outline VPN
* GoAgent
* PirateBox
* VPN Gate
* WireGuard

|

Proprietary software|

* Lantern
* Freegate
* Ultrasurf
* Hotspot Shield
* Telex
* Proxify

Browser extensions|

* Snowflake
* uProxy

Anonymity|

| Anonymous software|

* Tor
* JAP (JonDonym)
* Flash proxy
* Mixmaster

|

Anonymous P2P network|

* Hyphanet
* I2P
* StealthNet
* Tribler
* ZeroNet

Physical circumvention methods|

* Sneakernet
* USB dead drop

Relevant organizations|

* GreatFire
* FreeWeibo
* NetBlocks
* OONI
* Turkey Blocks

Reference|

* Great Cannon

Italics indicates that maintenance of the tool has been discontinued.  Category Commons
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template