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 -o n2nv1 -j MASQUERADE & #本地路由器注意需要打开防火墙里面/一般设置/转发 #这样设置以后,就可以在本地计算机上,直接访问远端的 192.168.11.0/24 网络了。
下面详细解释一下上面的过程。
第一步,先实现点对网的功能
1、先设置远端的路由器A,如下图所示
60%(15)
40%(10)
你好,请问远端的edge如果不是路由器,怎么配置路由才能访问到远程设备的内网IP
如果要通过远程机器上网,需要在远程机器上开启转发,并如下(类似)添加防火墙规则:
iptables -I FORWARD -i n2n1 -o ppp0 -j ACCEPT
本地机器增加一条静态路由(通过n2n网络)到远程机器即可。
#针对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这一段放这里语境特别不合适..
针对 openwrt 类路由器(包括 pandorabox),上面的设置是可以的。
针对 padavan,应该加上下面这一条,其中br0是远程路由器A的内网网卡
iptables -A FORWARD -o br0 -j ACCEPT
我最后查出来了需要加 -r 参数才能组网
https://github.com/meyerd/n2n(V2S版本)不通组不了网,浪费我几天时间。ntop GitHub 仓库版本可以组网。
我们大面积使用那个v2s,不能组网那是不可能的,这还是第一次听说。难道与你的特殊网络差异有关?