A virtual private network implementation method, wherein the method is applied to a virtual private network over Secure Sockets Layer, SSL VPN, the SSL VPN comprises: a client device, a gateway, and an intranet server of the SSL VPN, the client device communicates with the intranet server by using the gateway, the client device comprises a Transport Driver Interface, TDI, driver, a Network Driver Interface Specification, NDIS, protocol driver, a NDIS intermediate driver, a NDIS network interface card driver, and a client, and the method comprises: Intercepting , by the NDIS intermediate driver, a packet sent by an application program on the client device to the intranet server, obtaining a protocol type and a port number of the packet, determining according to the protocol type and the port number, and a mapping relationship from the TDI driver, a process identification, PID, of a process corresponding to the packet, wherein the mapping relationship comprises the protocol type, the port number and the PID, and determining, according to the PID and a PID table of processes that are allowed to use the SSL VPN, whether to allow the process corresponding to the packet to use the SSL VPN, wherein the PID table comprises PIDs of processes that are allowed to use the SSL VPN; if the process corresponding to the packet is allowed to use the SSL VPN, establishing , by the NDIS intermediate driver, a new packet, setting a destination address of the new packet as a local address of the client device , setting a destination port number of the new packet as a port number on which the client receives the packet, changing a source Internet Protocol, IP, address of the packet to a virtual IP address, using the packet as a payload of the new packet, and submitting the new packet to the NDIS network interface card driver, wherein the virtual IP address is a virtual IP address obtained from the gateway after the client and the gateway establish a Secure Sockets Layer, SSL, tunnel; and sending , by the NDIS network interface card driver, the new packet to the client, and sending, by the client, the new packet to the intranet server. Intercepting , by the NDIS intermediate driver, a packet sent by an application program on the client device to the intranet server, obtaining a protocol type and a port number of the packet, determining according to the protocol type and the port number, and a mapping relationship from the TDI driver, a process identification, PID, of a process corresponding to the packet, wherein the mapping relationship comprises the protocol type, the port number and the PID, and determining, according to the PID and a PID table of processes that are allowed to use the SSL VPN, whether to allow the process corresponding to the packet to use the SSL VPN, wherein the PID table comprises PIDs of processes that are allowed to use the SSL VPN; if the process corresponding to the packet is allowed to use the SSL VPN, establishing , by the NDIS intermediate driver, a new packet, setting a destination address of the new packet as a local address of the client device , setting a destination port number of the new packet as a port number on which the client receives the packet, changing a source Internet Protocol, IP, address of the packet to a virtual IP address, using the packet as a payload of the new packet, and submitting the new packet to the NDIS network interface card driver, wherein the virtual IP address is a virtual IP address obtained from the gateway after the client and the gateway establish a Secure Sockets Layer, SSL, tunnel; and sending , by the NDIS network interface card driver, the new packet to the client, and sending, by the client, the new packet to the intranet server. <EOS>