首先,我对openvpn不了解,所以走了不少弯路。等到做完以后,发现很多次在正确和错误之间仅仅只差一步。
设置非常非常简单,经过多次试验,只需要作对关键的一步,真的,只需要关键的一步。在技术层面能够实现从openvpn server侧的子网能够访问openvpn client侧的子网的技术关键是openvpn的一个参数,叫“iroute”。
先看网络拓扑图
再看OpenVPN Server侧:
从头开始,先在页面上恢复默认值
这里要强调一下:恢复默认值时会删除/jffs/scripts/里面与openvpn相关的各个脚本文件,如果你在里面做过一些有用的修改,请先保存再来恢复默认值
接下来做三项设置:
把默认UDP改成TCP,这个视自己的网络环境和规划来定,非必须。其他全部都是默认值。
把Manage Client-Specific Options(中文界面显示:
管理客户端专项)修改到Yes,改到yes后才会出现Allowed Clients这个表格。
把Allow only Specified clients(中文界面显示:
仅允许特定客户端) 也设置为Yes
注意:这里有个大BUG
(我的梅林版本是:380.70,不知道后面的版本有没有修复,大家测试后如果修复了可以在后面留言)
在第一次配置时把“client 192.168.50.0 255.255.255.0 yes” 填好,并且按了“+”添加进去,然后点击apply(中文界面显示:应用本页面设置)按钮以后,服务正常启动,但这些配置会莫名其妙消失。如果不注意的话,直接配置客户端并连接的话,会提示“authentication failed”验证失败。如果遇到这种情况,记得回服务端设置页面看看这些配置信息是不是还在(
信息还在的话,您自己debug吧:)我没有遇到过,抱歉),如果丢了就补上,点击apply生效后,再去进行客户端连接就正常了。
至此,服务端所有的设置工作都做完了,点击“导出”按钮,导出配置文件,一般叫做client1.ovpn
最后看openvpn Client侧:
把从服务端导出的配置文件client1.ovpn进行修改
怎样在花生壳上面生成端口映射,请参考其他资料。
把修改后的client1.ovpn上传到作为openvpn client的路由器上,进行连接。
(注意:有些文档建议将Create NAT on tunnel,(Router must be configured manually)关闭,我在测试过程中发现:可以关也可以不关,关掉后应该是直接进行路由不进行NAT,这样可能性能会好些,但需要多做一些路由设置)
连接成功后就可以进行网络连通性测试了。
从192.168.1.x ping 192.168.50.244(请忽略那如此丑陋的网络延时吧)
折腾了10几个小时,看了网上各类文档不少于20篇,最后居然就这么简单,希望大家少走弯路。
_________________________________________________________________________________
继续进化,上面的方法在只有两台设备的情况下,是完全可以使用的,但如果你要是想在外面也能拨入这个虚拟网络,就会出现问题,因为COMMON NAME(简称CN)都是client,这样会引起网络不正常,解决方法是一个叫“username-as-common-name”的参数
首先,在general(中文显示:一般设置)页面添加用户
然后,在高级设置页面将“用户名/密码认证”功能打开
(username/password auth. only 建议关闭,这样生成的ovpn文件中含有证书,理论上更安全)
同时还需要在allowed clients里添加用户名对应的网络信息,否则依然会显示认证失败。
最后将username-as-common-name添加在openvpn服务端的高级设置页面的自定义区域内,搞定!!
如果希望在多个client之间也能互相访问,需要记得把All Client <_> Client 也设置为Yes
接着来设置openvpn client:
1. 将用户名密码验证功能打开
2.填入用户名密码
至此,修改完成,在连接成功后,就可以做互通测试了。
经过这样的修改,多个openvpn client之间,互相不会影响,既可以在两个固定空间之间建立稳定的连接,也可以在外面通过移动网络拨入。
阅读(3423) | 评论(0) | 转发(0) |