在Ros上实现基于OpenVPN的WolfLAN
为了方便,我用VB重写了OpenVPN客户端,实际上就是gui版的OpenVPN,加上了一些检测机制,用于我和朋友们之间联机对战和资料共享,并重新命名为WolfLAN(单击下载客户端)。
由于OpenVPN拨入服务与内网接口同在一个桥里,因此拨入后可以直接通过DHCP获得内网IP,并且与本地LAN在同一个广播域里。目前经过测试,cs,魔兽,红警(IPX),星际,三角洲,暗黑,极品飞车,实况足球都全都成功联机。
Ros脚本:
[wolf@router_ros_330_wolf] /interface ovpn-server> export
# jun/10/2010 21:27:01 by RouterOS 3.30
# software id = QXLB-EYHG
#
/interface ovpn-server server
set auth=sha1 certificate=cert_wolf cipher=aes128 default-profile=ovpn_server
enabled=yes keepalive-timeout=60 mac-address=FE:36:F9:7F:32:0A max-mtu=\
1500 mode=ethernet netmask=24 port=1194 require-client-certificate=no
[wolf@router_ros_330_wolf] /interface ovpn-server>
[wolf@router_ros_330_wolf] /ppp profile> export
/ppp profile
add bridge=LAN change-tcp-mss=no comment="" dns-server=192.168.27.254 local-address=\
pool_master name=ovpn_server only-one=no rate-limit=512k/512k remote-address=\
pool_master use-compression=yes use-encryption=required use-vj-compression=yes \
wins-server=192.168.27.250
[wolf@router_ros_330_wolf] /ppp profile>
客户端代码:
client
dev tap
proto tcp
remote wolf.awolf.net 1194
ca ca.crt
keepalive 10 120
cipher AES-256-CBC
auth SHA1
auth-user-pass
verb 5
成功应用的ros版本为3.30 L6
需要ros 3.30 L6 的请看这里 《RouterOS 3.20 算号器 新版本 10分钟内算出指定id》
WolfLAN源码:http://www.awolf.net/content/vb/wolflan-source.html
证书无法KR的看这里:《ROS CA证书》
为什么我用ROS做ovpn按照你的方法,客户机连接后连接上面始终没有网关不能上网。另外问下这句啥意思add bridge=LAN 希望给予帮助。
没有网关是正常的,ros不支持push动作,要用ros做openvpn网关的话,在你的openvpn配置文件末尾加上这句话
这样客户端就会有网关了。
至于那个bridge=LAN,是我和朋友玩联机游戏时用的,在桥内会转发游戏的广播,可以互相看到游戏组。如果在你的网络里,你要看情况使用,有个小原则:如果openvpn客户端获得的IP和ROS接内网的IP相同,那就放到桥里;如果不同,就把bridge=LAN去掉。欢迎留言继续讨论。
route 0.0.0.0 0.0.0.0 rosip
我在OpenVPN.ovpn配置文件最后一行加了这条语句,但ipconfig/all查看到的还是没有网关.
不好意思,由于上回测试openvpn版本的问题,route 0.0.0.0 0.0.0.0 rosip这样确实不能添加默认网关,给你造成误会了,但我用另外一种方法添加了网关,在配置文件末加让如下3行:
完整配置看这里:用ros做openvpn服务端win客户端无法获得网关的解决办法
哦.不好意思.迟来的回复.我一会试试.另外已经和您友情了.实在不好意思.最近几天忙.哈.
这个vb程序是用的什么皮肤,挺好看的。
呵呵,仿RealPlayer的,明天我传上来。
已经上传,看这里http://www.awolf.net/content/vb/vb-realone-skin.html
谢谢。
为什么不用ppptp呢·
pptp不能转发广播,pptp是点对点的。
用openvpn拨入之后,感觉就像直接接在内网交换机上一样。呵呵。
我用它跟朋友打联机游戏的,比如说cs和魔兽。
脚本在ros里运行无效,我是直接复制到script里运行,客户端配置文件改了ip,客户端里选择不了服务器,客户端老提示tap找不到,安装了也没用。装了openvpn最新的客户端,使用wolf的配置文件,老提示Cannot load CA certificate file ca.crt path (null) (SSL_CTX_load_verify_locations): error:02001002:system library:fopen:No su
ch file or directory: error:2006D080:BIO routines:BIO_new_file:no such file: err
or:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
联系我,我给你看看。
你好
client
dev tap
proto tcp
remote wolf.awolf.net 1194
ca ca.crt
keepalive 10 120
cipher AES-256-CBC
auth SHA1
auth-user-pass
verb 5
中能不能使用udp协议传输
用ros做服务端的话,如果client profile中指定proto为udp,会连不上ros的。
换句话说就是ros不支持udp的openvpn链接。
不知道ros 4.13版的openvpn支持不支持udp协议吗?
我买了一个rb750,是4.9的,也不支持udp,呵呵。
不知道以后会不会支持。
狼哥,你好,看了你做的VB OpenVPN GUI很好 ,想向你学学!能否指教一下?
呵呵。其实就是找了个皮肤,加上几段代码,晚上回家我把源码发给你。
狼哥,你好热心啊,你抽烟不?要不可以直接QQ联系,你QQ号?
狼哥,你QQ号是多少啊?想请你指教一下
不好意思啊。最近出差,一直很忙,我邮箱就是我qq,[email protected]。 可是我QQ上的比较少,呵呵,有问题发邮件吧,我手机能收到邮件。
狼哥,你邮箱貌似有问题,我用QQ邮箱给你发信,发了好多封都被退了,说是无法连接到你的邮箱服务器。
狼哥,方不方便留下你电话?我电话和你联系!
前两天,我把DNS转移了,可能影响到邮箱了,呵呵。
我这个使用管道实现的,具体细节你可以google搜下“控制台程序 管道 通信”
我稍后把WolfLAN源码和一份VB管道操作的源码发给你,Delphi我就无能为力了,呵呵。
谢谢狼哥的指导,使用管道这个我已经用Delphi写好了,只是没有想到怎么来检查是否安装了OpenVPN的虚拟网卡,谢谢狼哥,我也很想看看你程序的源代码。我邮箱地址:[email protected]
你可以搜一下“枚举系统网卡”,同样我也只有VB代码。
狼哥,可能的话,我还是想参考一下你的代码,谢谢狼哥。
http://www.awolf.net/content/vb/wolflan-source.html
源码在这,邮箱还是有点问题。
http://www.awolf.net/content/vb/enum-network-adapter.html
这个是枚举系统网卡。
谢谢狼哥,马上研究
小狼哥:
上次请教你关于ROS踢人的API脚本问题,用着非常爽!
我现在的软件上只有PPTP和L2TP两种模式,想弄第三种OPENVPN模式,又在网上搜到你的文章了!
下了你写的软件,安上驱动后,没法连你的服务器,没帐号密码。。。想要一份你的源码,学习参考下。行么?麻烦发一份给兄弟学习学习。谢谢!
有DELPHI源码的话就更好了! :)
我的邮箱是:[email protected]