【转】windows 下 openvpn 使用小结

由于03自带的vpn服务器改端口麻烦(不知道能不能改...),而且它只支持tcp连接,所以如果碰到VPN要用指定端口连接,或者想 用win做linux的vpn服务器的话,openvpn是个不错的选择。用了也有一段时间了,除了IPV6问题没解 决外,感觉一切还在掌握之中。简单小结下过程。可能somebody会需要...

1. 服务端
环境:win2003+openvpn2.1.1
(1)安装openvpn,最好默认安装,否则后面配置时注意路径。
(2)到安装目录下的easy-rsa文件夹下,用文本编辑器打开vars.bat.sample文件,根据需要修改最后几行(其实也可以不改,就是为了 配置过程中输入的东西少点):

  1. set KEY_COUNTRY=CN
  2. set KEY_PROVINCE=GD
  3. set KEY_CITY=FS
  4. set KEY_ORG=NCIST
  5. set KEY_EMAIL=a@b.com


(3)打开cmd命令行窗口同样进入到安装目录下的easy-rsa文件夹,分别执行下面三个命令:

  1. init-config
  2. vars
  3. clean-all


上面是初始化工作,以后,在进行证书制作工作时,仍旧需要进行初始化,但只需要进入openvpneasy-rsa目录,运行vars就 可以了,不需要上面那些步骤了。
(4)生成根证书,分别执行命令:

  1. build-ca
  2. build-dh


(5)生成服务端密钥:

  1. build-key-server server


(6)生成客户端密钥

  1. build-key client1


build-key client2 可以继续配置第二个VPN客户端密钥
以上三步执行过程中需要输入一些参数,大部分只需按要求输入即可。其中一些是需要注意的:

  • common name,出现三次,据说要求每次输入的都不一样,至于都一样行不行我没试,那就随便输入三个不一样的参数。
  • A challenge password []:  An optional company name []: 这两个都可以留空

将生成的keys文件夹内的ca.crt,dh1024.pem,server.crt,server.key,ta.key复制到 OpenVPNconfig目录下

(7)配置文件

  1. port 60000
  2. proto udp //如果不能连接换成tcp
  3. dev tap
  4. //下面四项注意路径,如果不是放在config目录下请用绝对路径
  5. ca ca.crt
  6. cert server.crt
  7. key server.key
  8. dh dh1024.pem
  9. server 192.168.10.0 255.255.255.0
  10. ifconfig-pool-persist ipp.txt
  11. push "route 0.0.0.0 0.0.0.0"
  12. push "redirect-gateway def1 bypass-dhcp"
  13. push "dhcp-option DNS 192.168.175.5" //这个根据实际自行修改
  14. keepalive 20 120
  15. comp-lzo
  16. persist-key
  17. persist-tun
  18. status openvpn-status.log
  19. verb 3


要配置的大概就是这些,将配置文件另存为.ovpn文件,并保存到openvpnconfig目录下即可。如果需要通过服务器端连接外网,还需配置 win2003自带的vpn服务器,在nat/防火墙那里把本地连接接口添加进去。

2.客户端
客户端安装openvpn后,只需把服务端生成的ca.crt client.crt client.key三个文件拷到openvpnconfig目录下,再建一个配置文件即可。
配置文件:

  1. client
  2. dev tap
  3. proto udp
  4. remote 10.1.x.x 60000 //服务器ip 端口
  5. resolv-retry infinite
  6. nobind
  7. persist-key
  8. persist-tun
  9. ca ca.crt
  10. cert client.crt
  11. key client.key
  12. ns-cert-type server
  13. comp-lzo
  14. verb 3


大概就是这个样吧...
然后还有些小技巧:
(1)让openvpn随系统自启:编个批处理,写入以下代码:

  1. net start openvpnservice
  2. openvpn-gui-1.0.3 --connect client1.ovpn
  3. pause


其中:
net start openvpnservice 是启动openvpn的系统服务。
openvpn-gui-1.0.3  --connect client.ovpn是用命令行方式连接openvpn,这里要注意路径问题:一是openvpn-gui-1.0.3,这个文件在 OpenVPNbin目录下,如果出现不是有效命令,请在系统环境变量里把“C:Program FilesOpenVPNbin”添加进去;二是client.ovpn配置文件的路径,如果配置文件不是在config根目录,请用绝对路径。

另:转份配置文件的解析,可以琢磨下:

openvpn配置文件详解

转自星期三~