NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

P2P VPN 之 N2N Tomato固件安装使用教程

[复制链接]
1744 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
N2N 是点对点类型的VPN, 轻量级,容易安装与配置.

N2N官网地址

在安装使用中,还是碰到几个小坑,记录下来. 另外其版本有 v1,v2二个,这里都使用 v2版本. 其用法二个版本都一样,但不同版本通信协议不兼容, 所以所有节点都要使用相同的版本.

使用场景

边缘节点有三个

ZTE H610b 路由器,安装 Tomato, 无公网 IP

RMBP 工作用电脑,安装 MAC OS, 内部 IP

HK VPS 一台,安装 ubuntu,有 固定公网 ip,地址为 a.b.c.d

超级节点一个,也就是上面有 IP 的 VPS.

安装记录

HK VPS

ubuntu 上安装最简单. 但 apt-get install n2n 是 v1的版本.我这里要用 v2,自己编译下.
  1. <p>sudo apt-get install subversion build-essential libssl-dev</p><p>svn co https://svn.ntop.org/svn/ntop/trunk/n2n</p><p>cd n2n/n2n_v2</p><p>make</p>
复制代码

然后就能生成需要的二个文件,超级节点守护程序supernode及边缘节点通信程序edge. 安装libssl-dev 有时候会进坑,报错说已经安装的 ssl 版本太新. 修复方式是在/etc/apt 源里,添加对应的 updates 源,更新后再安装. 如:
  1. <p>deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted</p><p>deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted</p>
复制代码


首先启动超级节点,监听端口999
  1. sudo ./supernode -l 999
复制代码

然后本机也做为边缘节点启动
  1. sudo ./edge -d n2n0 -a 10.1.1.10 -c ahuin2nvpn -u nobody -g nobody -k ahuin2nvpn -l a.b.c.d:999 -m ae:e0:4f:e7:47:1a
复制代码

其中一个小坑就是 -m 参数. 如果不指定,会产生一个随机 mac 地址,这样至少调试的时候多次运行,会出现 mac 混乱. 但指定的 mac 地址,有些不会识别,比如随便写个 ab:ab:ab:ab:ab:ab, 程序不会识别并自动产生一个新的随机 mac. 跳坑方法是找个真实的 mac 地址,然后改动最后二位.

ZTE H610b 路由器

这个真的没有真 IP,用的移动光纤,给了个看上去象真的,其实是假的 IP.

Tomato 有人做好了现成的版本, 打开 jffs 并挂载,然后把编译好的 n2n 放在/jffs/n2n 中. 备注:我用的地址1上的版本.

请在本文最下方的附件中下载ipk文件

加载一下 tun 设备
  1. modprobe tun
复制代码

运行很简单
  1. ./edge -d n2n0 -a 10.1.1.20 -c ahuin2nvpn -u nobody -g nobody -k ahuin2nvpn -l a.b.c.d:999 -m ae:e0:4f:e7:47:2a
复制代码

运行后,ping 10.1.1.10能通,反之不行.

设置
  1. <p>iptables -I OUTPUT -o n2n0 -j ACCEPT</p><p>iptables -I INPUT -i n2n0 -j ACCEPT</p><p>iptables -I FORWARD -o n2n0 -j ACCEPT</p><p>iptables -I FORWARD -i n2n0 -j ACCEPT</p>
复制代码

ok,现在能与10.1.1.10互相 ping 通. 此时二台机器可以认为在同一个局域网.

RMBP 工作用电脑

mac 上坑最多. 前提之一开发环境已经就绪,git svn 都 ok. 我这里用 git

首先安装 tuntap, 点击下载安装

下载源代码并编译:
  1. <p>git clone git://github.com/certik/n2n.git</p><p>cd n2n/n2n_v1</p><p>make</p>
复制代码

出错啦,编译失败. 有好人做了补丁, 打完后再 make, 通过.

或者手动修改, 删除void tunclose(tuntapdev *device); 这行,并将tunclose(device);替换为tuntapclose(device);,改动这二处就 ok.

mac 下会自动生成 tun 设备 tap0, 所以运行时不用指定-d 参数:
  1. ./edge -a 10.1.1.30 -c ahuin2nvpn -u nobody -g nobody -k ahuin2nvpn -l a.b.c.d:999 -m ae:e0:4f:e7:47:3a
复制代码

大功告成,现在10.1.1.10, 10.1.1.20, 10.1.1.30三个节点都能互相 ping 通, 并互相访问所有端口,就象在同一个局域网里面.

问题

理论上超级节点并不参与数据转发, 不过我测试的时候,ping 包至少是转发了的, 估计是与边缘结点没有公共 ip 有关. 其他流量没测试.

n2n 是点对点的, 如果想要把边缘结点后面的局域网也连起来, 应该能 通过在节点上通过手动指定路由并做 nat来实现, 当然这样配置起来就麻烦多了.

n2n 的最佳应用,应该是通过外网访问内网,特别是内网没有公共 ip 的时候,比如移动光纤...

要通过 n2n 访问一些不存在的网站,要做额外工作,可能 openvpn 更适合.

n2n_r5895-1_mipsel.zip

421.4 KB, 下载次数: 6

P2P VPN 之 N2N 安装使用(Tomato固件)

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩推荐

热点动态

精彩图文

快速回复 返回顶部 返回列表