Chinaunix首页 | 论坛 | 博客
  • 博客访问: 707367
  • 博文数量: 181
  • 博客积分: 2548
  • 博客等级: 少校
  • 技术积分: 1739
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-29 16:36
个人简介

爱咋咋地

文章分类

全部博文(181)

文章存档

2023年(17)

2022年(19)

2021年(3)

2020年(1)

2018年(1)

2017年(1)

2014年(1)

2013年(4)

2012年(11)

2011年(19)

2010年(22)

2009年(71)

2008年(5)

分类: 网络与安全

2021-11-30 16:16:29

首先,我对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之间,互相不会影响,既可以在两个固定空间之间建立稳定的连接,也可以在外面通过移动网络拨入。


阅读(3231) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~