opv2.4_win2016_win10_centos8_简单设置
转载注明来源: 本文链接 来自osnosn的博客,写于 2020-07-10.
关于 tun/tap
- tun 是在三层, tap 是在二层。
- win和linux都可以用
dev tun
也可以用dev tap
。server端和client端要一致,
否则会出错write to TUN/TAP : Invalid argument (code=22)
- 我选用了
tap
win2016, server:
-
安装openvpn 2.4.x (勾选EasyRSA ... Scripts)
-
创建证书
- 打开cmd.exe 进入"c:\programe files\openvpn\easy-rsa"
init-config.bat
初始化环境copy vars.bat.sample vars.bat
修改 vats.bat 中最后几行缺省信息(COUNTRY,PROVINCE,CITY,ORG,EMAIL,CN,OU..)
如果要修改证书有效时间,修改build-xx.bat中 "-days 3650" (10年)vars.bat
读取环境变量clean-all.bat
#如果需要重来,就删除以前的所有证书(包括ca证书)build-ca.bat
创建CA证书build-dh.bat
创建Diffie Hellman密钥build-key-server.bat <server-name>
创建服务器证书. 例如build-key-server.bat myhh01
build-key.bat <client-name>
创建客户端证书,可多次执行,创建多个客户端. 例如build-key.bat mycli02
创建客户端证书时,CN每个都要不一样,最好不要含有空格,可以用下划线。..\bin\openvpn --genkey --secret ta.key
创建tls-auth密钥 udp用的。move ..\ta.key .
-
在windows网络设备中找到 "TAP-Windows Provider V9" 网络适配器, 从"本地连接"改名为"tap01"
-
在"c:\programe files\openvpn"目录中,
copy sample-config\server.ovpn config\
按说明修改server.ovpn ,在win中,选择用"dev tap"设备,tap设备名用之前改的"dev-node tap01"
修改使用的网段"server 192.168.11.0 255.255.255.0"
-
使用openvpn-gui中的"连接",然后查看"连接状态", 看记录中有有无红色的警告.
-
如果使用TCP端口,会有警告,说需要设置"explicit-exit-notify 0"
-
然后openvpn-gui中"断开连接",然后在"设置"中,去掉开机启动,勾上静默连接,不提示... ,最后"退出"
-
去系统服务中,找到"OpenVPNService",设置为自动启动。
(windows系统重启之后,openvpn-gui会自动启动,设置中的"开机启动"会自动勾上,再次去掉这个勾即可,并退出gui) -
重启windows系统,或者手工启动openVPNService服务。
-
现在openvpn已经自动启动了。
其他,
ifconfig-pool-persist
和duplicate-cn
配置不能共存。
explicit-exit-notify 1
仅用于UDP连接。
win10, client:
- 安装openvpn 2.4.x
- 在windows网络设备中找到 "TAP-Windows Provider V9" 网络适配器, 从"本地连接"改名为"tap01"
- 在"c:\programe files\openvpn"目录中,
copy sample-config\client.ovpn config\
按说明修改client.ovpn ,在win中,选择用"dev tap"设备,tap设备名用之前改的"dev-node tap01"
从服务器中,把相应的证书copy过来(ca证书和客户端证书)
- 使用openvpn-gui中的"连接",然后查看"连接状态", 看记录中有有无红色的警告.
- 如果有信息:
"WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this"
则在client.ovpn最后加上一行 "auth-nocache" - 然后openvpn-gui中"断开连接",然后在"设置"中,去掉开机启动,勾上静默连接,不提示... ,最后"退出"
- 去系统服务中,找到"OpenVPNService",设置为自动启动。
(windows系统重启之后,openvpn-gui会自动启动,设置中的"开机启动"会自动勾上,再次去掉这个勾即可,并退出gui) - 重启windows系统,或者手工启动openVPNService服务。
- 现在openvpn已经自动启动了,并连接上了。
win10 中同时跑多个 openvpn
- 在 "c:\programe files\openvpn\config" 目录中, 有几个 xxx.ovpn 配置文件,就会跑几个进程。
- server 和 client 的配置文件可以共存。tap 和 tun 也能共存。因为每个进程都是独立的,配置文件也是独立的。
ios 上的 openvpn 只能用 tun ,不支持 tap 设备
- 所以 win 的 openvpn server, 要用
dev tun
再用dev-node tap22
指定虚拟网卡。- 最终用 tun 和 ios 连接成功。
centos8, client:
dnf install openvpn
- 去目录
/etc/openvpn/client/
, 建立客户端的配置文件,必须以.conf
结尾。- 比如
mytest.conf
。(看man systemd.unit
文档)
- 比如
service openvpn-client@mytest start
, 看看/var/log/message
有没有错误。systemctl enable openvpn-client@mytest
激活开机启动。- 可选操作
dnf install easy-rsa
,制作证书的脚本在/usr/share/easy-rsa/3.0.7/
中。命令为easyrsa
。
最终结果
- 多个client和server组成了一个小的局域网。
- 它们之间可以没有限制的互相访问。包括访问对方的"共享文件夹"。
参考
- 为OpenVPN生成证书
- OpenVPN连接两个局域网(使用Windows主机)
- openvpn 2.4 设置用户密码认证,实现一账号多用户登陆
- OpenVPN2.4.3 基于用户名密码验证方式(实战)
- openvpn证书吊销和指定静态IP
- 解决openvpn客户端没有固定ip的问题
- OpenVPN设置客户端固定IP
- OpenVPN相同证书不同客户端设置不同静态IP的问题
- OpenVPN 2.4.8 for Windows – TLS v1.2
- OpenVPN 合并证书到配置文件中(.ovpn), 链接2, 链接3
- Windows 10 平台搭建 OpenVPN, OpenVPN server端 配置文件的详细说明
- 让openvpn在windows启动时自动加载
- Windows平台使用OpenVPN相关问题汇总
- windows 同时启动多个openvpn客户端连接, 2, 3
- OpenVPN 配置文件说明
- OpenVPN HOWTO 文档翻译
- Centos8安装shadow-socks-libev 可以用snapd镜像安装,文章自行搜索
- centos8搭建Shadow-socks服务端/客户端配置