CentOS7搭建OpenVPN

Stella981
• 阅读 1177

CentOS7搭建OpenVPN

[toc]

**文:铁乐与猫 **

2017年11月份

环境

安装了虚拟机,尝试搭建OpenVPN。

  • 公网IP:X.x.x.x
  • 内网IP:172.16.1.218
  • 操作系统:centos7.3 64位
  • openvpn 2.4.4

安装

第一步、安装openvpn及所需软件

  • 安装EPEL仓库

    wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
    rpm -Uvh epel-release-6-8.noarch.rpm
    
  • 安装openvpn

yum install openvpn

CentOS7搭建OpenVPN

上图中可以看出有可能第一次我尝试编译安装时没有将依赖所需的lz4包装上会有点问题。 另外安装上epel仓库后,获取到的openvpn包也比较新呐。

  • 安装openvpn最新的easy-rsa

该包用来制作ca证书,服务端证书,客户端证书。 最新的为easy-rsa3。

  • 将解压得到的文件夹easy-rsa-master重命名为easy-rsa

    mv easy-rsa-mater/ easy-rsa/
    然后将easy-ras文件夹复制到/etc/openvpn/目录下
    cp -R easy-rsa/ /etc/openvpn/
    

第二步、编辑vars文件,根据自己环境配置

  • 进入/etc/openvpn/easy-rsa/easyrsa3目录 cd /etc/openvpn/easy-rsa/easyrsa3/

  • 复制vars.example 为vars cp vars.example vars

  • 修改下面字段

    • 命令:vim vars,然后修改,最后wq保存

      //以下字段根据自己实际情况更改,这些信息前面是有#注释的,去掉#号

      set_var EASYRSA_REQ_COUNTRY “CN” #国家 set_var EASYRSA_REQ_PROVINCE “GuangDong” #省份 set_var EASYRSA_REQ_CITY “GuangZhou” #城市 set_var EASYRSA_REQ_ORG “tielemao” #非盈利组织,此处可填公司之类 set_var EASYRSA_REQ_EMAIL “wwz@tielemao.com” #邮箱地址 set_var EASYRSA_REQ_OU “My OpenVPN” #组织单元

这个vars文件似乎也不是很重要,不过填上一些信息也无不可?

第三步、创建服务端证书及key

  • 进入/etc/openvpn/easy-rsa/easyrsa3/目录初始化./easyrsa init-pki

    [root@yunwei_OpenVPN easyrsa3]# ./easyrsa init-pki
    
    Note: using Easy-RSA configuration from: ./vars
    
    init-pki complete; you may now create a CA or requests.
    Your newly created PKI dir is: /etc/openvpn/easy-rsa/easyrsa3/pki
    
  • 创建根证书 ./easyrsa build-ca 如下图:

CentOS7搭建OpenVPN 注意:在上述部分需要输入PEM密码 PEM pass phrase,输入两次,此密码必须记住,不然以后不能为证书签名。 这里密码测试的时候我输入了比较好记的ABCabc123。 还需要输入common name 通用名,自定义一个好记的。 生成的根证书文件为:`/etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt`

  • 创建服务器端证书 ./easyrsa gen-req server nopass 如下图:
CentOS7搭建OpenVPN

同样起个好记的通用名字,不过就不能和前面根证书的一样。 生成的文件有两个,注意这个时候这两个文件还不是服务端证书:

req: /etc/openvpn/easy-rsa/easyrsa3/pki/reqs/server.req
key: /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key
  • 签约服务端证书:
    • ./easyrsa sign server server
    • 注,这里前一个server是命令表示注册的是server端,后一个server是可以自行定义的名字, 但是要和前面命令起的名字一致,我这里一致都是server。 如下图:
CentOS7搭建OpenVPN

要输入yes确认才能继续操作下去, 输入之前创建根证书的时候输入的PEM密码,如果忘记了就得从创建根证书重新做起了。 最终生成服务端的证书,crt格式: /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt

  • 创建Diffie-Hellman,确保key穿越不安全网络的命令: ./easyrsa gen-dh 如下图:
CentOS7搭建OpenVPN
  • 生成dh.pem文件: /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem

第四步、创建客户端证书

  • 新建client文件夹

进入root目录新建client文件夹,文件夹可随意命名,然后拷贝前面解压得到的easy-ras文件夹到client文件夹,进入下列目录:

cd /root/
mkdir client && cd client
cp -R /root/easy-rsa/ client/

:这里我是将之前下载的master.zip解压和命令了放置在root下了,所以路径是/root/easy-rsa

实验的时候要根据自己的实际情况操作。

cd client/easy-rsa/easyrsa3/

  • 初始化

    ./easyrsa init-pki

注:其实和之前创建服务端证书前的操作无二,不同的是这次是将easy-rsa的目录放用户家目录下。 其实理解原理后,跳过这两步,也可以考虑反复只用/etc/openvpn/easy-rsa这个目录去操作。

  • 创建客户端key及生成证书(记住和之前的操作一样生成时是自己输入的密码) ./easyrsa gen-req client-wwz //名字自己定义

    [root@yunwei_OpenVPN easyrsa3]# ./easyrsa gen-req client-wwz Generating a 2048 bit RSA private key ...........................+++...............................................................................+++ writing new private key to '/root/client/easy-rsa/easyrsa3/pki/private/client-wwz.key.fXcHCDk8k1' Enter PEM pass phrase:

    Verifying - Enter PEM pass phrase:

    You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value,

    If you enter '.', the field will be left blank.

    Common Name (eg: your user, host, or server name) [client-wwz]:

    Keypair and certificate request completed. Your files are: req: /root/client/easy-rsa/easyrsa3/pki/reqs/client-wwz.req key: /root/client/easy-rsa/easyrsa3/pki/private/client-wwz.key

  • 将生成的client-wwz.req导入然后签约客户端证书

返回到/etc/openvpn/easy-rsa/easyrsa3/ cd /etc/openvpn/easy-rsa/easyrsa3/ 导入req

./root/client/easy-rsa/easyrsa3/pki/reqs/client-wwz.req client-wwz

[root@yunwei_OpenVPN easyrsa3]# cd /etc/openvpn/easy-rsa/easyrsa3/
[root@yunwei_OpenVPN easyrsa3]# pwd
/etc/openvpn/easy-rsa/easyrsa3
[root@yunwei_OpenVPN easyrsa3]# ./easyrsa import-req /root/client/easy-rsa/easyrsa3/pki/reqs/client-wwz.req client-wwz

Note: using Easy-RSA configuration from: ./vars

The request has been successfully imported with a short name of: client-wwz

## You may now use this name to perform signing operations on this request.

签约证书
./easyrsa sign client client-wwz
//这里生成client所以必须为client,client-wwz要与之前导入名字一致
上面签约证书跟server类似,就不截图了,但是期间还是要输入CA的密码

------

[root@yunwei_OpenVPN easyrsa3]# ./easyrsa sign client client-wwz

Note: using Easy-RSA configuration from: ./vars

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a client certificate for 3650 days:

subject=
commonName = client-wwz

Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes
Using configuration from ./openssl-easyrsa.cnf
Enter pass phrase for /etc/openvpn/easy-rsa/easyrsa3/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'client-wwz'
Certificate is to be certified until Nov 9 07:10:14 2027 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated

## Certificate created at: /etc/openvpn/easy-rsa/easyrsa3/pki/issued/client-wwz.crt

客户端的证书client-wwz.crt路径在/etc/openvpn/easy-rsa/easyrsa3/pki/issued/client-wwz.crt

  • 现在梳理一下上面都生成了些什么东西:

    • 服务端:etc/openvpn/easy-rsa/文件夹

      /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn/easy-rsa/easyrsa3/pki/reqs/server.req /etc/openvpn/easy-rsa/easyrsa3/pki/reqs/client.req /etc/openvpn/easy-rsa/easyrsa3/pki/private/ca.key /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn/easy-rsa/easyrsa3/pki/issued/client-ww.crt /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem

    重要的是pki/issued目录下的服务端和客户端这两个证书

    • 客户端:root/client/easy-rsa文件夹

      /root/client/easy-rsa/easyrsa3/pki/private/clinet-wwz.key /root/client/easy-rsa/easyrsa3/pki/reqs/client.req //这个文件被我们导入到了服务端文件所以那里也有

    感觉这里都不太重要了,其实是没必要特意在root家目录下再弄这一出。 下次统一用/etc/openvpn/easy-rsa/easyrsa3下操作创建客户端证书等也可。

第五步、拷贝生成的证书放置回openvpn目录

  • 拷贝证书等文件放入到相应位置。

将下列文件放到/etc/openvpn/ 目录:

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/easyrsa3/pki/private/server.key /etc/openvpn
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/server.crt /etc/openvpn
cp /etc/openvpn/easy-rsa/easyrsa3/pki/dh.pem /etc/openvpn

这样就将上述四个文件放入到了/etc/openvpn目录下

将下列文件放到/root/client 目录下:

cp /etc/openvpn/easy-rsa/easyrsa3/pki/ca.crt /root/client
cp /etc/openvpn/easy-rsa/easyrsa3/pki/issued/client-wwz.crt /root/client
cp /root/client/easy-rsa/easyrsa3/pki/private/client-wwz.key /root/client

将上述三个文件复制到/root/client目录。

  • 检验:

    [root@yunwei_OpenVPN easyrsa3]# ls /etc/openvpn/ ca.crt dh.pem easy-rsa master.zip server.crt server.key

    [root@yunwei_OpenVPN easyrsa3]# ls /root/client/ ca.crt client-wwz.crt client-wwz.key easy-rsa

CentOS7搭建OpenVPN

第六步、编写服务端配置文件

文件都准备好后,就可以进行编写服务端配置文件了。这就是磨刀不误砍柴工,万事俱备,只欠东风!

由于我们是yum安装的openvpn。 所以相应在/usr/share/doc/下会有对应openvpn版本/sample/sample-config-files目录下会有一个server.conf文件, 将这个文件复制到/etc/openvpncp /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/server.conf /etc/openvpn/

然后修改配置vi server.conf如下:

local 172.16.1.128            # 填自己openvpn服务器的 IP,默认侦听服务器上的所有ip
port 1194                     # 侦听端口,默认1194
proto udp                     # 端口协议,默认udp,也可以开启tcp方便映射转发。
dev tun                       # 默认创建一个路由IP隧道
ca /etc/openvpn/ca.crt        # 根证书
cert /etc/openvpn/server.crt  # 证书
key /etc/openvpn/server.key   # 私钥文件/重要保密
dh /etc/openvpn/dh.pem

server 10.66.72.0 255.255.255.0 
# 设置服务器端模式,并提供一个VPN子网,以便于从中为客户端分配IP地址。
# 服务器自身会使用10.66.72.1这个ip。

ifconfig-pool-persist ipp.txt 
# 指定用于记录客户端和虚拟IP地址的关联关系的文件。
# 当重启OpenVPN时,再次连接的客户端将分配到与上一次分配相同的虚拟IP地址

push “route 192.168.0.0 255.255.0.0” 
# 推送路由信息到客户端,以允许客户端能够连接到服务器背后的其他私有子网。
# (简而言之,就是允许客户端访问VPN服务器自身所在的其他局域网)
# 记住,这些私有子网也要将OpenVPN客户端的地址池(10.66.72.0/255.255.255.0)反馈回OpenVPN服务器。

push "redirect-gateway def1 bypass-dhcp" 
# 启用该指令,所有客户端的默认网关都将重定向到VPN,这将导致诸如web浏览器、DNS查询等所有客户端流量都经过VPN。
# (为确保能正常工作,OpenVPN服务器所在计算机可能需要在TUN/TAP接口与以太网之间使用NAT或桥接技术进行连接)
# 这个指令其实挺影响客户端处的网络的,比如我就在vpn上阿里云的服务器后,本地浏览网络会出没法访问外网,有必要到阿里云vpn服务器上注释掉此指令,而且这样也会导致云服务器流量激增,并不利。

push “dhcp-option DNS 119.29.29.29″ 
# 某些具体的Windows网络设置可以被推送到客户端,例如DNS或WINS服务器地址。
# 实际上可用于推送内网dns或阿里内网dns等。

keepalive 10 120 
# keepalive指令将导致类似于ping命令的消息被来回发送,以便于服务器端和客户端知道对方何时被关闭。
# 默认每10秒钟ping一次,如果120秒内都没有收到对方的回复,则表示远程连接已经关闭。比较频繁,建议改成30 240?

comp-lzo 
# 在VPN连接上启用压缩。如果你在此处启用了该指令,那么也应该在每个客户端配置文件中启用它。

max-clients 100 #默认最大客户端连接100,为安全可限到1或2。
# 持久化选项可以尽量避免访问那些在重启之后由于用户权限降低而无法访问的某些资源。

persist-key
persist-tun

status openvpn-status.log # 状态日志
# 为日志文件设置适当的冗余级别(0~9)。冗余级别越高,输出的信息越详细。
# 0 表示静默运行,只记录致命错误。
# 4 表示合理的常规用法。
# 5 和 6 可以帮助调试连接错误。
# 9 表示极度冗余,输出非常详细的日志信息。
## verb 3

还有许多详细配置,可查看官网说明。

第七步、启动openvpn服务

VMware虚拟机可能还需加载tun内核模块并启用转发。

  • 加载tun内核模块并启用转发。 加载tun内核模块以便于openvpn生成虚拟网卡。

    - [root@yunwei_OpenVPN openvpn]# modprobe tun
      检验加载成功没有
      [root@yunwei_OpenVPN openvpn]# lsmod | grep tun
      tun 31621 0
      启用转发
      [root@yunwei_OpenVPN openvpn]# echo 1 > /proc/sys/net/ipv4/ip_forward
      或直接vim /proc/sys/net/ipv4/ip_forward 修改值为1
      检验
      [root@yunwei_OpenVPN openvpn]# cat /proc/sys/net/ipv4/ip_forward
      1
      [root@yunwei_OpenVPN openvpn]# locate tun.ko
      /usr/lib/modules/3.10.0-514.el7.x86_64/kernel/drivers/net/tun.ko
      /usr/lib/modules/3.10.0-693.5.2.el7.x86_64/kernel/drivers/net/tun.ko.xz
    
    [root@yunwei_OpenVPN openvpn]# openvpn --config /etc/openvpn/server.conf
    (注:这种命令还不是在后台模式运行的)
    Thu Nov 16 17:19:39 2017 OpenVPN 2.4.4 x86_64-redhat-linux-gnu [Fedora EPEL patched][SSL (OpenSSL)] [LZO][LZ4] [EPOLL][PKCS11] [MH/PKTINFO][AEAD] built on Sep 26 2017
    Thu Nov 16 17:19:39 2017 library versions: OpenSSL 1.0.1e-fips 11 Feb 2013, LZO 2.06
    Thu Nov 16 17:19:39 2017 Diffie-Hellman initialized with 2048 bit key
    Thu Nov 16 17:19:39 2017 Failed to extract curve from certificate (UNDEF), using secp384r1 instead.
    Thu Nov 16 17:19:39 2017 ECDH curve secp384r1 added
    Thu Nov 16 17:19:39 2017 ROUTE_GATEWAY 172.16.1.2/255.255.255.0 IFACE=ens33 HWADDR=00:0c:29:96:0a:fe
    Thu Nov 16 17:19:39 2017 TUN/TAP device tun0 opened
    Thu Nov 16 17:19:39 2017 TUN/TAP TX queue length set to 100
    Thu Nov 16 17:19:39 2017 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
    Thu Nov 16 17:19:39 2017 /sbin/ip link set dev tun0 up mtu 1500
    Thu Nov 16 17:19:39 2017 /sbin/ip addr add dev tun0 local 10.66.72.1 peer 10.66.72.2
    Thu Nov 16 17:19:39 2017 /sbin/ip route add 10.66.72.0/24 via 10.66.72.2
    Thu Nov 16 17:19:39 2017 Could not determine IPv4/IPv6 protocol. Using AF_INET
    Thu Nov 16 17:19:39 2017 Socket Buffers: R=[212992->212992] S=[212992->212992]
    Thu Nov 16 17:19:39 2017 UDPv4 link local (bound): [AF_INET][undef]:1194
    Thu Nov 16 17:19:39 2017 UDPv4 link remote: [AF_UNSPEC]
    Thu Nov 16 17:19:39 2017 MULTI: multi_init called, r=256 v=256
    Thu Nov 16 17:19:39 2017 IFCONFIG POOL: base=10.66.72.4 size=62, ipv6=0
    Thu Nov 16 17:19:39 2017 IFCONFIG POOL LIST
    Thu Nov 16 17:19:39 2017 Initialization Sequence Completed
    

openvpn --daemon --config /etc/openvpn/server.conf 运行则是在后台模式。 最后我还是以 systemctl start openvpn 运行的。 因为我是yum安装的,使用systemctl来启动和停止openvpn挺方便的。

第八步、下载windows openvpn客户端,并进行配置。

  • 用sftp之类将在openvpn服务器生成的客户端证书和key下载到客户端电脑。 ca.crt client-wwz.crt client-wwz.key //这三个文件

  • 去官网下载openvpn客户端进行安装,然后安装目录找到simple-config D:\Program Files\OpenVPN\sample-config\client.ovpn

将client.ovpn 复制到D:\Program Files\OpenVPN\ToVMware(文件夹可以自己新建定义)下,根据自己实际安装情况选择. 将下载到的三个文件放入D:\Program Files\OpenVPN\ToVMware下然后编辑client.ovpn配置文件:

  • 编辑配置文件:

    client
    dev tun
    proto udp
    remote 172.16.1.128 1194 //主要这里修改成openvpn服务器的ip
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    ca ca.crt 
    // 这里需要证书,之前和配置文件放同一文件夹下了,理论上不需要敲绝对路径也能找到,
    // 然而后面发现客户端导入配置文件后目录又是在另外路径下,以致还是要敲绝对路径。
    cert client-wwz.crt
    key client-wwz.key
    comp-lzo
    verb 3
    

    简单应用的话我们只需要以上项目每行一个,复杂些应用的话可以参照官方具体配置文档。

    • 补充:

      正确的配置证书路径为:

      ca D:\\Programs\\OpenVPN\\ToVMware\\ca.crt
      cert D:\\Programs\\OpenVPN\\ToVMware\\client-wwz.crt
      key D:\\Programs\\OpenVPN\\ToVMware\\client-wwz.key
      
  • 打开openvpn客户端,右键弹出菜单,选择导入配置文件

CentOS7搭建OpenVPN

选中之前编辑好的配置文件,点击连接

CentOS7搭建OpenVPN 结果报错,查看错误日志得知

Options error: --ca fails with 'ca.crt': No such file or directory
Options error: --cert fails with 'client.crt': No such file or directory
Thu Dec 07 16:06:09 2017 WARNING: cannot stat file 'client.key': 系统找不到指定的文件。 (errno=2)
Options error: --key fails with 'client.key': No such file or directory
Options error: Please correct these errors.
Use --help for more information.

原来这些认证文件还是得指明绝对路径阿…… 修改配置文件(注意,运行时修改要直接在客户端中选择Edit Config) (因为导入之后,它实际的路径是C:\Users\Administrator\OpenVPN\confing\client\client.ovpn

ca D:\Programs\OpenVPN\ToVMware\ca.crt
cert D:\Programs\OpenVPN\ToVMware\client-wwz.crt
key D:\Programs\OpenVPN\ToVMware\client-wwz.key

继续报错,还好这次是报我路径写错了

Options warning: Bad backslash ('\') usage in client.ovpn:89: remember that backslashes are treated as shell-escapes and if you need to pass backslash characters as part of a Windows filename, you should use double backslashes such as "c:\\openvpn\\static.key"
Use --help for more information.

看来我要写成

ca D:\\Programs\\OpenVPN\\ToVMware\\ca.crt
cert D:\\Programs\\OpenVPN\\ToVMware\\client-wwz.crt
key D:\\Programs\\OpenVPN\\ToVMware\\client-wwz.key

这次总算是对了。虽然也有不指明路径而是将证书内容一并合并到配置文件上的做法,但这样一来就不算安全了。

CentOS7搭建OpenVPN

这里还好我还记得是输了啥密码的,果然这个密码是要记住的呢!! 此密码也可以点选save password,这样在常用的电脑上不用每次都输密码,不过不记住也更安全。 输完之后连接成功(好吧,其实我还多了步操作,开放openvpn服务器中的防火墙!systemctl stop firewalld, 当然生产环境不是关闭防火墙,而是设置开放对openvpn端口的规则)

CentOS7搭建OpenVPN windows版本的客户端连接Linux的openvpn服务端是搞懂了,再进行测试linux客户端。 ### 第九步 Linux openvpn客户端连接服务端测试

做为测试,这次我在centos6.9上安装openvpn客户端连接centos7.3的openvpn服务端。 同样使用yum install openvpn省事,后面主要是修改运行配置文件指定为client端。

  • 在客户端openvpn主目录/etc/openvpn下新建config目录, 同样将服务端的ca.crtclient-wwz.crtclient-wwz.key放置进去。

复制一份客户端配置范例进config目录,这里要注意的是,之前windows用的配置文件后缀名为.ovpn,到了linux用的就是.conf了!

cp /usr/share/doc/openvpn-2.4.4/sample/sample-config-files/client.conf /etc/openvpn/config/client.conf
  • 编辑配置文件:

    client # 指定当前VPN是客户端 dev tun # 必须与服务器端的保持一致 proto udp # 必须与服务器端的保持一致 remote 172.16.1.128 1194 # 指定连接的远程服务器的实际IP地址和端口号

    resolv-retry infinite

    断线自动重新连接,在网络不稳定的情况下(例如:笔记本电脑无线网络)非常有用。

    nobind # 不绑定特定的本地端口号 persist-key persist-tun

    ca /etc/openvpn/config/ca.crt # 指定CA证书的文件路径 cert /etc/openvpn/config/client-wwz.crt # 指定当前客户端的证书文件路径 key /etc/openvpn/config/client-wwz.key # 指定当前客户端的私钥文件路径

    ns-cert-type server # 指定采用服务器校验方式

    tls-auth ta.key 1

    #如果服务器设置了防御DoS等攻击的ta.key,则必须每个客户端开启;如果未设置,则注释掉这一行;

    comp-lzo #与服务器保持一致 verb 3 #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细

  • 注意:

    • 配置文件中的文件路径涉及到相对路径的,均以启动OpenVPN时的所在目录为准。 由于在配置文件中设置的文件路径都是相对config目录的路径,因此也只能在config目录下才能正常启动OpenVPN。如果想在任何地方都能使用上述命令启动OpenVPN,建议将配置文件与文件路径相关的部分全部改为绝对路径。
    • OpenVPN服务器所在计算机必须允许OpenVPN通过防火墙,你可以禁用掉防火墙,或者将OpenVPN设为可信程序,或者开放1194端口。 -A INPUT -p udp --dport 1194 -j ACCEPT
    • 启动服务器和客户端都需要一定的权限,建议测试学习时用root账户或sudo命令进行启动。
  • 运行openvpn客户端:

    openvpn --daemon --cd 配置文件路径 --config client.ovpn(配置文件名称) --log-append /var/log/openvpn/openvpn.log(日志路径)

查看日志成功连接没有: tail -f /var/log/openvpn/openvpn.log 到此已经成功了。

  • 设置开机自动连接 vim /etc/rc.local

    openvpn --daemon --cd 配置文件路径 --config client.ovpn(配置文件名称) --log-append /var/log/openvpn.log(日志路径)

  • 加入到/etc/rc.local配置文件里。

openvpn的搭建和简单使用本次就介绍到这里。

2018-9-7 重新修改成md文件

end

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解
Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这