在Ros上实现基于OpenVPN的WolfLAN

这篇文章由 在 星期五, 11 6月, 2010 发表。

  为了方便,我用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

33 Responses to “在Ros上实现基于OpenVPN的WolfLAN”

  1. 证书无法KR的看这里:《ROS CA证书》

  2. 为什么我用ROS做ovpn按照你的方法,客户机连接后连接上面始终没有网关不能上网。另外问下这句啥意思add bridge=LAN 希望给予帮助。

    • 没有网关是正常的,ros不支持push动作,要用ros做openvpn网关的话,在你的openvpn配置文件末尾加上这句话

      route 0.0.0.0 0.0.0.0 rosip

      这样客户端就会有网关了。
      至于那个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行:

          route-method exe #这句话告诉openvpn用win自带的route.exe来添加路由
          route-delay 2 #等待dhcp获得IP后延迟2秒添加路由
          route add 0.0.0.0 mask 0.0.0.0 192.168.27.254 metric 1 #用win下route add的方式添加一条默认路由,后面的metric 1是跳计数,可以根据需要更改或删掉。

          完整配置看这里:用ros做openvpn服务端win客户端无法获得网关的解决办法

          • 哦.不好意思.迟来的回复.我一会试试.另外已经和您友情了.实在不好意思.最近几天忙.哈.

  3. sinhoi

    这个vb程序是用的什么皮肤,挺好看的。

  4. sinhoi

    谢谢。

  5. 为什么不用ppptp呢·

    • pptp不能转发广播,pptp是点对点的。
      用openvpn拨入之后,感觉就像直接接在内网交换机上一样。呵呵。
      我用它跟朋友打联机游戏的,比如说cs和魔兽。

  6. bisao

    脚本在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

    • 联系我,我给你看看。

  7. 学狼

    你好
    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链接。

  8. 学狼

    不知道ros 4.13版的openvpn支持不支持udp协议吗?

    • 我买了一个rb750,是4.9的,也不支持udp,呵呵。
      不知道以后会不会支持。

  9. 风筝

    狼哥,你好,看了你做的VB OpenVPN GUI很好 ,想向你学学!能否指教一下?

    • 呵呵。其实就是找了个皮肤,加上几段代码,晚上回家我把源码发给你。

      • 风筝

        狼哥,你好热心啊,你抽烟不?要不可以直接QQ联系,你QQ号?

  10. 风筝

    狼哥,你QQ号是多少啊?想请你指教一下

    • 不好意思啊。最近出差,一直很忙,我邮箱就是我qq,[email protected]。 可是我QQ上的比较少,呵呵,有问题发邮件吧,我手机能收到邮件。

  11. 风筝

    狼哥,你邮箱貌似有问题,我用QQ邮箱给你发信,发了好多封都被退了,说是无法连接到你的邮箱服务器。

  12. 风筝

    狼哥,方不方便留下你电话?我电话和你联系!

    • 前两天,我把DNS转移了,可能影响到邮箱了,呵呵。
      我这个使用管道实现的,具体细节你可以google搜下“控制台程序 管道 通信”
      我稍后把WolfLAN源码和一份VB管道操作的源码发给你,Delphi我就无能为力了,呵呵。

  13. 小狼哥:
    上次请教你关于ROS踢人的API脚本问题,用着非常爽!
    我现在的软件上只有PPTP和L2TP两种模式,想弄第三种OPENVPN模式,又在网上搜到你的文章了!
    下了你写的软件,安上驱动后,没法连你的服务器,没帐号密码。。。想要一份你的源码,学习参考下。行么?麻烦发一份给兄弟学习学习。谢谢!
    有DELPHI源码的话就更好了! :)


Leave a Reply