Windows环境使用OpenVPN共享上网

2010年12月30日星期四
Windows环境使用OpenVPN共享上网

背景:局域网内两台计算机 A(192.168.0.1)能上网, B(192.168.0.4)不能上网。A、B能相互ping通
目标:B通过VPN连接A,达到共享上网的目的

0. VPN的用途
VPN很多时候都是用在公网环境下,公网上两台计算机通过VPN连接,从而达到互访内网的目的。
局域网共享上网的方法很多,用VPN属于相对繁琐的一种。

1. 使A、B通过VPN互通
(a)在A、B上都安装OpenVPN
(b)配置。
• 虽然网站上的文档组织得有些乱,但可以直接从安装路径下获得很多帮助信息。
• 安装成功后,OpenVPN GUI就可以运行了,但会提示config文件夹下需要config(.ovpn)文件和key/certificate(.crt&.key)文件。
• config文件可以从sample-config文件夹获得,A机使用server.ovpn,B机使用client.ovpn。
• 证书的生成可以在easy-rsa获得帮助。server和client都需要相应的证书,而所有证书都需要在server机上生成。
注意:生成证书时需要输入一些信息,其中,Common Name不能有重复。
• 生成完后在easy-rsa/keys文件夹里会有一堆文件。在server上把ca.*, server.*, dh1024.pem拷贝至config文件夹。ca.*, client.*拷贝至client计算机OpenVPN安装路径下的config文件夹。
• client.ovpn中设定
    remote server-ip server-port
做完以上步骤,A、B即可通过VPN互通。此部分配置还可参考:
https://community.openvpn.net/openvpn/wiki/Easy_Windows_Guide
http://blog.chinaunix.net/u/2389/showart_73461.html

2. 修改A的路由配置,使Internet请求都转向从VPN通过
这一步的实现方法有很多种,我采用的是在server机的server.ovpn中,取消注释:
    push "redirect-gateway def1 bypass-dhcp bypass-dns"
这句话的意思是所有客户机的默认网关都将被设为VPN,即所有网络流量都会从VPN通过,bypass-dhcp并且bypass-dns。这条设置是推送到client上的,它会覆盖(Override)client的网络配置,但并不会修改原来的网络配置。

p.s. 本例只是考虑最简单的使用VPN实现共享上网的情况,没有讨论安全性,服务器负荷等功能。OpenVPN功能强大,继续学习

0 评论:

发表评论