osnosn

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

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-persistduplicate-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组成了一个小的局域网。
  • 它们之间可以没有限制的互相访问。包括访问对方的"共享文件夹"。

参考


转载注明来源: 本文链接 来自osnosn的博客.

posted on 2020-07-11 18:24  osnosn  阅读(159)  评论(0编辑  收藏  举报