介绍
想要安全地从智能手机或笔记本电脑上连接到不受信任的网络,如酒店或咖啡店的WiFi? Virtual Private Network(VPN)允许您私下和安全地穿过不受信任的网络,就像您在私人网络上一样。
当与 HTTPS 连接相结合时,此设置允许您保护无线登录和交易,您可以绕过地理限制和审查,并保护您的位置和未加密的 HTTP 流量免受不受信任的网络的影响。
OpenVPN是一个全功能的开源 Secure Socket Layer (SSL) VPN 解决方案,可容纳各种配置。 在本教程中,我们将在Droplet上设置一个OpenVPN服务器,然后从Windows,OS X,iOS和Android配置访问它。本教程将使安装和配置步骤尽可能简单。
<$>[注] 注: 如果您打算在DigitalOcean Droplet上设置一个OpenVPN服务器,请注意,像许多托管提供商一样,我们会收取带宽过期费用。
请参阅此页面(https://www.digitalocean.com/docs/accounts/billing/bandwidth/)以获取更多信息。
前提条件
要完成本教程,您需要访问Ubuntu 16.04服务器。
在启动本指南之前,您需要配置具有sudo
权限的非根用户,您可以遵循我们的 Ubuntu 16.04初始服务器设置指南来设置具有相应权限的用户。
当你准备开始时,登录你的Ubuntu服务器作为你的sudo
用户,并继续下方。
步骤1:安装OpenVPN
首先,我们将将OpenVPN安装到我们的服务器上。OpenVPN在Ubuntu的默认存储库中可用,因此我们可以使用apt
进行安装。
更新您的服务器的包索引并安装所需的包类型:
1sudo apt-get update
2sudo apt-get install openvpn easy-rsa
所需的软件现在在服务器上,准备配置。
步骤 2:设置 CA 目录
OpenVPN是一个TLS/SSL VPN,这意味着它使用证书来加密服务器和客户端之间的流量。为了发行可信证书,我们需要建立自己的简单证书授权机构(CA)。
首先,我们可以用make-cadir
命令将easy-rsa
模板目录复制到我们的主目录:
1make-cadir ~/openvpn-ca
移动到新创建的目录以开始配置 CA:
1cd ~/openvpn-ca
步骤 3: 配置 CA 变量
要配置我们的CA将使用的值,我们需要在目录中编辑vars
文件,现在在文本编辑器中打开该文件:
1nano vars
在里面,你会发现一些可调整的变量来确定你的证书将如何创建,我们只需要担心其中一些。
在文件的底部,寻找设置,为新的证书设置域默认值。
1[label ~/openvpn-ca/vars]
2. . .
3
4export KEY_COUNTRY="US"
5export KEY_PROVINCE="CA"
6export KEY_CITY="SanFrancisco"
7export KEY_ORG="Fort-Funston"
8export KEY_EMAIL="[email protected]"
9export KEY_OU="MyOrganizationalUnit"
10
11. . .
将红色值编辑为您喜欢的任何值,但不要让它们空白:
1[label ~/openvpn-ca/vars]
2. . .
3
4export KEY_COUNTRY="US"
5export KEY_PROVINCE="NY"
6export KEY_CITY="New York City"
7export KEY_ORG="DigitalOcean"
8export KEY_EMAIL="[email protected]"
9export KEY_OU="Community"
10
11. . .
当我们在这里时,我们还会编辑这个部分下面的KEY_NAME
值,它填充了主题字段. 为了保持这个简单,我们将在本指南中称之为服务器
:
1[label ~/openvpn-ca/vars]
2export KEY_NAME="server"
完成后,保存并关闭文件。
步骤 4:构建证书权威
现在,我们可以使用我们设置的变量和easy-rsa
实用程序来构建我们的证书权威。
确保你在你的CA目录,然后源于你刚刚编辑的vars
文件:
1cd ~/openvpn-ca
2source vars
你应该看到以下内容,如果它是正确的来源:
1[secondary_label Output]
2NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys
确保我们在干净的环境中运行,键入:
1./clean-all
现在,我们可以通过键入构建我们的根 CA:
1./build-ca
这将启动创建 root 证书权限密钥和证书的过程. 由于我们填写了vars
文件,所有值都应该自动填充。
1[secondary_label Output]
2Generating a 2048 bit RSA private key
3..........................................................................................+++
4...............................+++
5writing new private key to 'ca.key'
6-----
7You are about to be asked to enter information that will be incorporated
8into your certificate request.
9What you are about to enter is what is called a Distinguished Name or a DN.
10There are quite a few fields but you can leave some blank
11For some fields there will be a default value,
12If you enter '.', the field will be left blank.
13-----
14Country Name (2 letter code) [US]:
15State or Province Name (full name) [NY]:
16Locality Name (eg, city) [New York City]:
17Organization Name (eg, company) [DigitalOcean]:
18Organizational Unit Name (eg, section) [Community]:
19Common Name (eg, your name or your server's hostname) [DigitalOcean CA]:
20Name [server]:
21Email Address [[email protected]]:
我们现在有一个CA,可以用来创建我们需要的其他文件。
步骤 5:创建服务器证书、密钥和加密文件
接下来,我们将生成我们的服务器证书和密钥对,以及在加密过程中使用的一些额外文件。
首先,创建 OpenVPN 服务器证书和密钥对,我们可以通过键入:
<$>[注意]
注意:如果您在这里选择了服务器
以外的名称,您将不得不调整下面的一些说明。例如,当将生成的文件复制到/etc/openvpn
directroy时,您将不得不替换正确的名称。
1./build-key-server server
再次,提示将基于我们刚刚传输的参数(‘服务器’)和我们来源的‘vars’文件的内容具有默认值。
请轻松接受默认值,点击 ENTER. Do not 输入此设置的挑战密码. 到最后,您将不得不输入 y 两个问题来签署和承诺证书:
1[secondary_label Output]
2. . .
3
4Certificate is to be certified until May 1 17:51:16 2026 GMT (3650 days)
5Sign the certificate? [y/n]:y
6
71 out of 1 certificate requests certified, commit? [y/n]y
8Write out database with 1 new entries
9Data Base Updated
接下来,我们可以通过键入生成一个强大的Diffie-Hellman密钥,以便在密钥交换过程中使用:
1./build-dh
这可能需要几分钟才能完成。
之后,我们可以生成 HMAC 签名,以加强服务器的 TLS 完整性验证能力:
1openvpn --genkey --secret keys/ta.key
步骤 6:生成客户证书和密钥对
接下来,我们可以生成客户端证书和密钥对,虽然这可以在客户端机器上完成,然后由服务器/CA为安全目的签署,但对于本指南,我们将为了简单而在服务器上生成签名的密钥。
我们将为本指南生成单个客户端密钥/证书,但如果您有多个客户端,您可以重复此过程尽可能多次。
由于您可能在稍后重返此步骤,我们将重源vars
文件,我们将使用client1
作为本指南的第一个证书/钥匙对值。
要生成没有密码的身份证件,以协助自动连接,请使用这样的构建密钥
命令:
1cd ~/openvpn-ca
2source vars
3./build-key client1
如果您想创建一个受密码保护的凭证集,请使用build-key-pass
命令:
1cd ~/openvpn-ca
2source vars
3./build-key-pass client1
再次,默认值应该被填充,所以你可以点击 ENTER继续。留下挑战密码空,并确保输入 y,以便提示是否要签署和承诺证书。
步骤 7: 配置 OpenVPN 服务
接下来,我们可以开始使用我们生成的身份证和文件来配置OpenVPN服务。
将文件复制到 OpenVPN 目录
首先,我们需要将所需的文件复制到 /etc/openvpn
配置目录。
我们可以从我们刚刚生成的所有文件开始,这些文件在它们创建时被放置在~/openvpn-ca/keys
目录中,我们需要移动我们的CA cert,我们的服务器 cert和密钥,HMAC签名和Diffie-Hellman文件:
1cd ~/openvpn-ca/keys
2sudo cp ca.crt server.crt server.key ta.key dh2048.pem /etc/openvpn
接下来,我们需要将样本OpenVPN配置文件复制到配置目录中,以便我们可以将其作为我们的设置的基础:
1gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
调整OpenVPN配置
现在我们的文件已经在场,我们可以修改服务器配置文件:
1sudo nano /etc/openvpn/server.conf
基本配置
首先,通过搜索tls-auth
指令来查找HMAC部分,删除**;**
以解除tls-auth
行评论:
1[label /etc/openvpn/server.conf]
2tls-auth ta.key 0 # This file is secret
接下来,通过搜索评论的数字
线来查找加密加密的部分。AES-128-CBC
加密提供了良好的加密水平,并且得到良好的支持。
1[label /etc/openvpn/server.conf]
2cipher AES-128-CBC
下面,添加一个auth
行来选择HMAC消息消化算法,因此,SHA256
是一个很好的选择:
1[label /etc/openvpn/server.conf]
2auth SHA256
最后,找到用户
和组
设置,并在开始时删除**;**
以不评论这些行:
1[label /etc/openvpn/server.conf]
2user nobody
3group nogroup
(可选)推动 DNS 更改,通过 VPN 重定向所有流量
上面的设置将创建两台机器之间的VPN连接,但不会强迫任何连接使用隧道. 如果您希望使用VPN来路由您的所有流量,您可能希望将DNS设置推到客户端计算机。
您可以这样做,不遵循几条指令,这些指令将配置客户端机器来通过VPN重定向所有网络流量,找到重定向网关
部分,并从重定向网关
行开始删除半字符**;**
,以便不评论它:
1[label /etc/openvpn/server.conf]
2push "redirect-gateway def1 bypass-dhcp"
就在此下方,找到dhcp-option
部分. 再次,从两行前面删除**;**
,以免评论它们:
1[label /etc/openvpn/server.conf]
2push "dhcp-option DNS 208.67.222.222"
3push "dhcp-option DNS 208.67.220.220"
这应该帮助客户重新配置他们的DNS设置,以便使用VPN隧道作为默认网关。
(可选) 调整端口和协议
默认情况下,OpenVPN服务器使用 1194 端口和 UDP 协议来接受客户端连接. 如果您需要使用不同的端口,因为客户端可能存在的限制性网络环境,您可以更改端口
选项。
1[label /etc/openvpn/server.conf]
2# Optional!
3port 443
通常,如果协议也会被限制到该端口,那么如果是,则从UDP更改proto
到TCP:
1[label /etc/openvpn/server.conf]
2# Optional!
3proto tcp
如果您不需要使用不同的端口,最好将这两个设置作为默认设置。
(可选)指向非默认凭证
如果您早些时候在/build-key-server
命令中选择了不同的名称,请修改您看到的cert
和key
行,以指向相应的.crt
和.key
文件。
1[label /etc/openvpn/server.conf]
2cert server.crt
3key server.key
完成后,保存并关闭文件。
步骤 8:调整服务器网络配置
接下来,我们需要调整服务器网络的一些方面,以便OpenVPN能够正确地路由流量。
允许IP转发
首先,我们需要允许服务器传输流量,这对于我们希望我们的VPN服务器提供的功能非常重要。
我们可以通过修改 /etc/sysctl.conf
文件来调整此设置:
1sudo nano /etc/sysctl.conf
在内部,寻找设置net.ipv4.ip_forward
的行,从行开始删除**#**
字符,以解除该设置的评论:
1[label /etc/sysctl.conf]
2net.ipv4.ip_forward=1
保存并关闭文件,当你完成。
要读取文件并调整当前会话的值,键入:
1sudo sysctl -p
调整UFW规则以掩盖客户端连接
如果你遵循Ubuntu 16.04初始服务器安装指南的先决条件,你应该有UFW防火墙。无论你是否使用防火墙来阻止不需要的流量(你几乎总是应该做),我们需要本指南中的防火墙来操纵部分流量进入服务器。
在我们打开防火墙配置文件以添加伪装之前,我们需要找到我们机器的公共网络接口。
1ip route | grep default
例如,此结果显示了名为wlp11s0
的界面,该界面如下所示:
1[secondary_label Output]
2default via 203.0.113.1 dev wlp11s0 proto static metric 600
当您有与默认路径相关联的界面时,请打开 /etc/ufw/before.rules
文件以添加相关配置:
1sudo nano /etc/ufw/before.rules
此檔案處理了在傳統 UFW 規則下載之前應實施的配置。向檔案的頂部添加下面的突出的行。這將設定「NAT」表中的「POSTROUTING」連鎖的默認策略,並掩蓋來自 VPN 的任何流量:
<$>[注]
注:请记住,在下面的-A POSTROUTING
行中代替wlp11s0
以您在上面的命令中找到的界面。
1[label /etc/ufw/before.rules]
2#
3# rules.before
4#
5# Rules that should be run before the ufw command line added rules. Custom
6# rules should be added to one of these chains:
7# ufw-before-input
8# ufw-before-output
9# ufw-before-forward
10#
11
12# START OPENVPN RULES
13# NAT table rules
14*nat
15:POSTROUTING ACCEPT [0:0]
16# Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!)
17-A POSTROUTING -s 10.8.0.0/8 -o wlp11s0 -j MASQUERADE
18COMMIT
19# END OPENVPN RULES
20
21# Don't delete these required lines, otherwise there will be errors
22*filter
23. . .
保存并关闭文件,当你完成。
我们需要告诉 UFW 以默认方式允许转发的数据包。 为了做到这一点,我们将打开 /etc/default/ufw
文件:
1sudo nano /etc/default/ufw
在内部,找到DEFAULT_FORWARD_POLICY
指令,我们将值从DROP
更改为ACCEPT
:
1[label /etc/default/ufw]
2DEFAULT_FORWARD_POLICY="ACCEPT"
保存并关闭文件,当你完成。
打开 OpenVPN 端口并启用更改
接下来,我们将调整防火墙本身,以允许流量到OpenVPN。
如果您未在 /etc/openvpn/server.conf
文件中更改端口和协议,则需要打开 UDP 流量到端口 1194。
我们还会添加SSH端口,如果您在遵循前提教程时忘了添加它:
1sudo ufw allow 1194/udp
2sudo ufw allow OpenSSH
现在,我们可以禁用并重新启用 UFW 来从我们修改的所有文件中加载更改:
1sudo ufw disable
2sudo ufw enable
我们的服务器现在已配置为正确处理OpenVPN流量。
步骤 9:启动并启用 OpenVPN 服务
我們終於準備在我們的伺服器上啟動 OpenVPN 服務,我們可以使用 systemd 這樣做。
我们需要启动OpenVPN服务器,将我们的配置文件名指定为系统d单元文件名之后的实例变量。我们为我们的服务器的配置文件名为 /etc/openvpn/server.conf,所以我们在调用它时将
@server`添加到我们的单元文件的尽头:
1sudo systemctl start openvpn@server
通过键入双重检查服务是否成功启动:
1sudo systemctl status openvpn@server
如果一切顺利,你的输出应该看起来像这样的东西:
1[secondary_label Output]
2● openvpn@server.service - OpenVPN connection to server
3 Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
4 Active: active (running) since Tue 2016-05-03 15:30:05 EDT; 47s ago
5 Docs: man:openvpn(8)
6 https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
7 https://community.openvpn.net/openvpn/wiki/HOWTO
8 Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta
9 Main PID: 5856 (openvpn)
10 Tasks: 1 (limit: 512)
11 CGroup: /system.slice/system-openvpn.slice/openvpn@server.service
12 └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid
13
14May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
15May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
16May 03 15:30:05 openvpn2 ovpn-server[5856]: GID set to nogroup
17May 03 15:30:05 openvpn2 ovpn-server[5856]: UID set to nobody
18May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link local (bound): [undef]
19May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link remote: [undef]
20May 03 15:30:05 openvpn2 ovpn-server[5856]: MULTI: multi_init called, r=256 v=256
21May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
22May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL LIST
23May 03 15:30:05 openvpn2 ovpn-server[5856]: Initialization Sequence Completed
您也可以通过键入来检查OpenVPN的tun0
接口是否可用:
1ip addr show tun0
你应该看到一个配置的界面:
1[secondary_label Output]
24: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100
3 link/none
4 inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
5 valid_lft forever preferred_lft forever
如果一切顺利,请启用该服务,以便在启动时自动启动:
1sudo systemctl enable openvpn@server
步骤 10:创建客户端配置基础设施
接下来,我们需要建立一个系统,使我们能够轻松创建客户端配置文件。
创建客户端 Config 目录结构
在您的家庭目录中创建一个目录结构来存储文件:
1mkdir -p ~/client-configs/files
由于我们的客户端配置文件将嵌入客户端密钥,我们应该在内部目录中锁定权限:
1chmod 700 ~/client-configs/files
创建基础配置
接下来,让我们将一个客户端配置示例复制到我们的目录中,以便作为我们的基本配置:
1cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
在文本编辑器中打开此新文件:
1nano ~/client-configs/base.conf
内部,我们需要做一些调整。
首先,找出远程
指令,将客户端指向我们的OpenVPN服务器地址,这应该是您的OpenVPN服务器的公共IP地址,如果您更改了OpenVPN服务器正在收听的端口,则更改1194
到您选择的端口:
1[label ~/client-configs/base.conf]
2. . .
3# The hostname/IP and port of the server.
4# You can have multiple remote entries
5# to load balance between the servers.
6remote server_IP_address 1194
7. . .
请确保协议匹配您在服务器配置中使用的值:
1[label ~/client-configs/base.conf]
2proto udp
接下来,通过删除**;**
删除用户
和组
指令:
1[label ~/client-configs/base.conf]
2# Downgrade privileges after initialization (non-Windows only)
3user nobody
4group nogroup
查找设置ca
,cert
和key
的指令. 评论这些指令,因为我们将在文件本身中添加证件和密钥:
1[label ~/client-configs/base.conf]
2# SSL/TLS parms.
3# See the server config file for more
4# description. It's best to use
5# a separate .crt/.key file pair
6# for each client. A single ca
7# file can be used for all clients.
8#ca ca.crt
9#cert client.crt
10#key client.key
镜像我们在/etc/openvpn/server.conf
文件中设置的cipher
和auth
设置:
1[label ~/client-configs/base.conf]
2cipher AES-128-CBC
3auth SHA256
接下来,在文件中的某个地方添加钥匙方向
指令,此 **必须设置为1
,以便与服务器工作:
1[label ~/client-configs/base.conf]
2key-direction 1
最后,添加几个 评论出来的行. 我们希望在每一个配置中包含这些,但应该只为带有 `/etc/openvpn/update-resolv-conf’ 文件的 Linux 客户端启用它们。
1[label ~/client-configs/base.conf]
2# script-security 2
3# up /etc/openvpn/update-resolv-conf
4# down /etc/openvpn/update-resolv-conf
如果您的客户端运行的是 Linux,并且有一个 /etc/openvpn/update-resolv-conf
文件,您应该从生成的 OpenVPN 客户端配置文件中删除这些行。
完成后保存文件。
创建 Configuration Generation 脚本
接下来,我们将创建一个简单的脚本来编译我们的基本配置与相关的证书,密钥和加密文件。
在~/client-configs
目录中创建并打开名为make_config.sh
的文件:
1nano ~/client-configs/make_config.sh
在内部,插入以下脚本:
1[label ~/client-configs/make_config.sh]
2#!/bin/bash
3
4# First argument: Client identifier
5
6KEY_DIR=~/openvpn-ca/keys
7OUTPUT_DIR=~/client-configs/files
8BASE_CONFIG=~/client-configs/base.conf
9
10cat ${BASE_CONFIG} \
11 <(echo -e '<ca>') \
12 ${KEY_DIR}/ca.crt \
13 <(echo -e '</ca>\n<cert>') \
14 ${KEY_DIR}/${1}.crt \
15 <(echo -e '</cert>\n<key>') \
16 ${KEY_DIR}/${1}.key \
17 <(echo -e '</key>\n<tls-auth>') \
18 ${KEY_DIR}/ta.key \
19 <(echo -e '</tls-auth>') \
20 > ${OUTPUT_DIR}/${1}.ovpn
保存并关闭文件,当你完成。
通过键入标记文件为可执行:
1chmod 700 ~/client-configs/make_config.sh
步骤 11:生成客户端配置
现在,我们可以轻松地生成客户端配置文件。
如果您跟随了指南,您将创建一个名为client1.crt
和client1.key
的客户端证书和密钥,分别在步骤 6 中运行./build-key client1
命令,我们可以通过进入我们的~/client-configs
目录并使用我们创建的脚本来生成这些凭证的配置:
1cd ~/client-configs
2./make_config.sh client1
如果一切顺利,我们应该在我们的~/client-configs/files
目录中有一个client1.ovpn
文件:
1ls ~/client-configs/files
1[secondary_label Output]
2client1.ovpn
将配置转移到客户端设备
我们需要将客户端配置文件传输到相应的设备,例如,这可能是您的本地计算机或移动设备。
虽然用于实现此转移的确切应用程序将取决于您的选择和设备的操作系统,但您希望该应用程序在后端使用SFTP(SSH文件传输协议)或SCP(安全副本)。
以下是一個例子 SFTP 命令,使用我們的 client1.ovpn 例子. 這個命令可以從您的本地電腦(OS X 或 Linux)執行。
1sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/
以下是几个工具和教程,以安全地将文件从服务器传输到本地计算机:
步骤 12:安装客户端配置
现在,我们将讨论如何在 Windows、OS X、iOS 和 Android 上安装客户端 VPN 配置文件. 这些客户端指令并不相互依赖,因此请自由跳过适用于您的任何内容。
在我们的例子中,这意味着连接将被称为client1.ovpn
为我们生成的第一个客户端文件。
窗口
- 安装 *
OpenVPN Windows 客户端应用程序可在 OpenVPN 的下载页面找到。
<$>[注] [标签注] OpenVPN需要管理权限来安装。
安装 OpenVPN 后,将.ovpn 文件复制到:
1C:\Program Files\OpenVPN\config
当您启动OpenVPN时,它会自动看到您的个人资料并使其可用。
OpenVPN 每次使用都必须作为管理员运行,即使是由管理员帐户使用。 要做到这一点,不用右键单击并选择 ** 作为管理员运行** 每次使用VPN,您可以预设此功能,但这必须从管理员帐户执行。 这也意味着标准用户需要输入管理员的密码才能使用 OpenVPN。
要将 OpenVPN 应用程序设置为始终以管理员身份运行,请右键单击其快捷图标,然后转到 属性。在 兼容性选项卡的底部,点击按钮为 更改所有用户的设置。
- 连接 *
每次启动 OpenVPN GUI 时,Windows 都会询问您是否希望允许该程序对您的计算机进行更改. 点击 Yes. 启动 OpenVPN 客户端应用程序只会将 applet 放入系统盘,以便VPN 可根据需要连接和断开连接;它实际上不会实现 VPN 连接。
一旦 OpenVPN 启动,请通过进入系统底盘的 applet 并右键单击 OpenVPN applet 图标来启动连接,这将打开背景菜单,在菜单顶部选择 client1(这是我们的client1.ovpn
配置文件),然后选择 Connect。
在建立连接时,会打开状态窗口,显示日志输出,并在客户端连接后会显示消息。
以同样的方式脱离VPN:进入系统底盘应用程序,右键单击OpenVPN应用程序图标,选择客户端配置文件,然后单击 脱离。
对于X
- 安装 *
Tunnelblick 是 Mac OS X 的免费开源 OpenVPN 客户端,您可以从 Tunnelblick 下载页面下载最新的磁盘图像。
安装过程结束时,Tunnelblick 会询问您是否有任何配置文件。 回答 No 可以更容易,然后让Tunnelblick 完成。 打开 Finder 窗口并双击client1.ovpn
。
- 连接 *
启动 Tunnelblick 通过在 Applications文件夹中双击 Tunnelblick。一旦启动 Tunnelblick,屏幕右上方的菜单栏中会出现一个 Tunnelblick 图标,以便控制连接。
Linux 的
安装
如果您正在使用 Linux,您可以根据您的发行版使用各种工具,您的桌面环境或窗口管理器也可能包括连接实用程序。
然而,最通用的连接方式是仅仅使用OpenVPN软件。
在Ubuntu或Debian上,您可以像在服务器上一样安装它,键入:
1sudo apt-get update
2sudo apt-get install openvpn
在CentOS上,您可以启用EPEL存储库,然后通过键入来安装它:
1sudo yum install epel-release
2sudo yum install openvpn
配置
检查您的分布是否包含 /etc/openvpn/update-resolv-conf
脚本:
1ls /etc/openvpn
1[secondary_label Output]
2update-resolve-conf
接下来,编辑您转移的 OpenVPN 客户端配置文件:
1nano client1.ovpn
如果您能找到一个update-resolv-conf
文件,则不符合我们放置的三个行以调整 DNS 设置:
1[label client1.ovpn]
2script-security 2
3up /etc/openvpn/update-resolv-conf
4down /etc/openvpn/update-resolv-conf
如果您正在使用 CentOS,请将组
从nogroup
更改为nobody
,以匹配分布的可用组:
1[label client1.ovpn]
2group nobody
保存并关闭文件。
现在,您可以通过指向客户端配置文件的openvpn
命令连接到VPN:
1sudo openvpn --config client1.ovpn
这将使您连接到您的服务器。
对
- 安装 *
从 iTunes App Store 搜索并安装 OpenVPN Connect,官方的 iOS OpenVPN 客户端应用程序. 要将您的 iOS 客户端配置传输到设备上,请直接连接到计算机。
通过iTunes完成传输将被描述在这里. 在计算机上打开iTunes,然后点击 iPhone > apps. 向下滚动到 File Sharing 部分,然后点击 OpenVPN 应用程序. 右侧的空白窗口, OpenVPN 文档,用于共享文件。
现在在 iPhone 上启动 OpenVPN 应用程序. 将收到通知,新配置文件已准备好导入。
- 连接 *
OpenVPN现在已经准备好与新配置文件一起使用。通过将 Connect按钮滑动到 On位置来启动连接。
<$>[注]
[标签注]
在设置
下的VPN交换机不能用来连接到VPN。
安卓
- 安装 *
搜索并安装 Android OpenVPN Connect,是官方的Android OpenVPN客户端应用程序。
可以通过 USB 将 Android 设备连接到您的计算机并复制文件来传输 .ovpn
配置文件. 或者,如果您有 SD 卡阅读器,您可以删除设备的 SD 卡,将该配置文件复制到其上,然后将该卡重新插入到 Android 设备中。
启动OpenVPN应用程序,然后点击菜单来导入配置文件。
然后导航到保存的配置文件的位置(屏幕截图使用 /sdcard/Download/
)并选择文件。
- 连接 *
要连接,只需点击 连接 ** 按钮,您将被问及是否信任 OpenVPN 应用程序。 选择 OK 来启动连接。 要脱离 VPN,请返回 OpenVPN 应用程序并选择 ** 脱离。
步骤 13:测试您的VPN连接
一旦一切都安装完毕,一个简单的检查就证实一切正常工作了. 没有启用VPN连接,请打开浏览器,然后转到 DNSLeakTest。
该网站将返回由您的互联网服务提供商分配的IP地址,并显示给世界其他地方. 要通过相同的网站检查您的DNS设置,请单击 扩展测试,它将告诉您正在使用的DNS服务器。
现在将OpenVPN客户端连接到您的Droplet的VPN,并刷新浏览器。VPN服务器的完全不同的IP地址现在应该出现。这就是您现在向世界展示的方式。 再次,DNSLeakTest(https://www.dnsleaktest.com) Extended Test将检查您的DNS设置并确认您现在正在使用VPN推出的DNS解析器。
第14步:取消客户证书
有时,您可能需要撤销客户端证书,以防止进一步访问 OpenVPN 服务器。
要做到这一点,请输入您的 CA 目录并重新源 vars
文件:
1cd ~/openvpn-ca
2source vars
接下来,使用您想要撤销的客户端名称拨打撤销完整
命令:
1./revoke-full client3
这会显示一些输出,以错误23
结束,这是正常的,该过程应该成功生成必要的撤销信息,该信息存储在名为crl.pem
的文件中,在关键
子目录中。
将此文件转移到 /etc/openvpn
配置目录:
1sudo cp ~/openvpn-ca/keys/crl.pem /etc/openvpn
接下来,打开 OpenVPN 服务器配置文件:
1sudo nano /etc/openvpn/server.conf
在文件的底部,添加crl-verify
选项,以便OpenVPN服务器在每次尝试连接时检查我们创建的证书撤销列表:
1[label /etc/openvpn/server.conf]
2crl-verify crl.pem
保存并关闭文件。
最后,重新启动 OpenVPN 来执行证书撤销:
1sudo systemctl restart openvpn@server
客户端现在不应该再能够使用旧身份证成功连接到服务器。
若要取消额外的客户,请遵循此过程:
- 创建一个新的证书撤销列表,将
vars
文件源于~/openvpn-ca
目录,然后在客户端名称上调用revoke-full
脚本。 - 将新的证书撤销列表复制到
/etc/openvpn
目录,以重写旧列表。
此过程可以用来撤销您之前为您的服务器发行的任何证书。
结论
恭喜您!您现在正在安全地穿越互联网,保护您的身份,位置和流量免受欺诈者和审查者的影响。
若要配置更多客户端,只需按照步骤 6和每个额外设备的步骤 11-13。