OpenWRT下使用N2N组建虚拟局域网(点对网)
之前写了一篇 OpenWRT下使用N2N组建虚拟局域网,今天记录一下高级一点的玩法
一、能实现啥
比如前文所说,我在家里的路由器上、公司的台式机上分别跑的N2N,并且已成功组建虚拟局域网
也就是说,目前我已经可以在公司成功访问到家里的路由器
现在我想通过公司的台式机,不光能访问到路由器,还想访问到挂在路由器下的NAS,该怎么办?
方案1:NAS上也启动N2N,并指定一个IP
方案2:往下看
二、开始折腾
台式机
在EasyN2N的附加参数中,直接添加 -r
参数,保存重启N2N
路由器
edge的启动命令中加入 -r 参数
#参数 -a 为指定一个虚拟局域网IP
#参数 -c 为指定一个组名称
#参数 -l 为服务端IP:端口
#参数 -f 表示前台运行(方便调试,待一切正常后,可以去掉-f参数,使其后台运行)
#参数 -r 表示允许数据包在同虚拟小组间转发
edge -a 192.168.123.1 -c bugxia -l 77.77.77.77:9527 -f -r
此时,还不能正常访问到对方物理局域网下的设备,需要添加路由表
三、路由表
Windows
管理员权限执行CMD
先捋一下,我的物理局域网下设备(NAS等)分配的是 192.168.3.x
的IP,比如NAS 真实局域网IP为 192.168.3.202
现在,我想在公司的台式机上,通过N2N,访问到NAS,那么添加路由表的命令就可以这样写
route add 192.168.3.0 mask 255.255.255.0 192.168.123.3
中文意思:任何目的地为 192.168.3.x(我家里的真实局域网设备) 的数据包,都会经过 192.168.123.3(我路由器的虚拟局域网IP) 网关来转发
OpenWRT
回到家里的路由器这边,因为OpenWRT涉及一些防火墙的规则,会导致单边不通,所以需要在路由器这边的防火墙中添加放行规则
不啰嗦,直接上命令
#修改为自己的虚拟局域网IP段
iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -j MASQUERADE
iptables -A forwarding_rule -s 192.168.123.0/24 -j ACCEPT
四、测试
在公司台式机上直接访问家里的NAS http://192.168.3.202:5000/
27 条评论
n2n 3.1.1 版本 支持 -n 在客户端 上 直接添加路由表
比如 -n 192.168.3.0/24:10.10.0.10
咨询下 点对点的网络添加路由表后是可以实现 ,但 点到网的转发还是失败了协助下
网络a 192.168.1.1/24 10.0.0.1
网络b 192.168.2.1/24 10.0.0.2
n2n 网络 10.0.0.0/24
添加 路由表后 网络a 可以ping 通 192.168.2.1 但是 ping不同 其他192.168.2.0/24
@hello
根据你的举例,10.10.0.10 是作为虚拟网和物理网的网关,需要在这个客户端(电脑、路由器等)【开启路由转发】才能到达该网关下的其他客户端,否则只能ping到该网关