怎么样利用n2n来建立网对网间的通讯?

n2n vpn 其实与 pptp vpn 有类似的一面,都是一种点对点的局域网,所不同的是,n2n 可以建立点与点之间的直连,而 pptp 局域网内通讯的全部流量都必须走中心节点。pptp 在众多厂家的完善下,可以实现点对网、网对网的组网,实际上 n2n 也可以。但一直以来由于我的水平有限,没有成功。昨晚再次提起,并得到 n2n 交流群(256572040,镜花水月 / 风火轮)网友的大力帮助,终于成功了,现分享给大家(2019-10-29:三年后再来更正一下)。 先提供一下总的过程简介,以便你有个一目了然的大概认识。

-----------------第一步,点对网----------------- 

#远端路由器A(pandorabox_r1068) 内网:192.168.11.0/24  n2nIP:10.0.0.11

edge -d n2nv1 -a 10.0.0.11 -c test111 -k password -l 106.186.30.16:6489 -f -r &
echo "1" > /proc/sys/net/ipv4/ip_forward &
iptables -t nat -A POSTROUTING -j MASQUERADE &
#上面一句或者这样写,要求更严格一点  iptables -t nat -A POSTROUTING -s 10.0.0.12 -d 192.168.11.0/24 -j MASQUERADE &
#针对padavan,再加上这么一条可访上级网络:iptables -t nat -A POSTROUTING -o eth2.2 -j MASQUERADE (eth2.2 是 padavan 路由器的 wan 口网卡名,电脑端的静态路由要指向其上级网络)

#本地计算机 n2nIP:10.0.0.12
edge -a 10.0.0.12 -c test111 -k password -l 106.186.30.16:6489
route add 192.168.0.0 mask 255.255.0.0 10.0.0.11
#也可以这样写:route add 192.168.11.0 mask 255.255.255.0 10.0.0.11

#这样设置以后,就可以在本地计算机上,直接访问远端的 192.168.11.0/24 网络了。

-----------------第二步,网对网-----------------

#接第一步,退出计算机上运行的n2n程序,并删除计算机上添加的路由表
route delete 192.168.0.0

#本地路由器B(pandorabox_r1068) 192.168.12.0/24  n2nIP:10.0.0.12
edge -d n2nv1 -a 10.0.0.12 -c test111 -k password -l 106.186.30.16:6489 -f -r &
route add -net 192.168.11.0/24 gw 10.0.0.11 &
iptables -t nat -A POSTROUTING -j MASQUERADE &

#本地路由器注意需要打开防火墙里面/一般设置/转发
#这样设置以后,就可以在本地计算机上,直接访问远端的 192.168.11.0/24 网络了。

下面详细解释一下上面的过程。

第一步,先实现点对网的功能

1、先设置远端的路由器A,如下图所示


57.89%(11)

42.11%(8)
1 2 3下一页
发表评论?

8 条评论。

  1. 如果要通过远程机器上网,需要在远程机器上开启转发,并如下(类似)添加防火墙规则:
    iptables -I FORWARD -i n2n1 -o ppp0 -j ACCEPT

    本地机器增加一条静态路由(通过n2n网络)到远程机器即可。

  2. #针对padavan,再加上这么一条可访上级网络:iptables -t nat -A POSTROUTING -o eth2.2 -j MASQUERADE (eth2.2 是 padavan 路由器的 wan 口网卡名,电脑端的静态路由要指向其上级网络)
    这个是不是有误,这样的话远端的路由器内部的流量就被eth2.2给发出去了,而不是n2n的虚拟接口,eth2.2的ip地址可能是公网ip可能是运营商级nat ip 这样的话能组网吗,有点分不清,希望解答一下

    • 是我理解错了,博主的意思是二级路由的情况下。。。
      怎么都觉得针对padavan这一段放这里语境特别不合适..

  3. 针对 openwrt 类路由器(包括 pandorabox),上面的设置是可以的。

    针对 padavan 路由器,需要在“远端路由器A”上加上一条防火墙规则
    iptables -A FORWARD -i n2nv1 -j ACCEPT

    • 说错了,针对padavan,应该加上下面这一条,其中br0是远程路由器A的内网网卡
      iptables -A FORWARD -o br0 -j ACCEPT

  4. 我最后查出来了需要加 -r 参数才能组网

    • 我们大面积使用那个v2s,不能组网那是不可能的,这还是第一次听说。难道与你的特殊网络差异有关?

发表评论

*