|
本帖最后由 wubozh 于 2023-4-7 21:50 编辑
三、用n2n组网。
n2n我倒是用了好几年了,一直都蛮稳定。以前用n2n组网都是让它工作在点对点模式下。也就是,在手机、家里和单位的电脑、笔记本和每个路由器上都安装n2n,都给它们分配一个静态地址,这样,手机、路由器、电脑、笔记本就组成了一个虚拟局域网,无论身在哪里,都可以相互通讯,相互调用文件和远程桌面。现在安卓n2n出了新版本,支持n2n的V2和V3了,就想试下用n2n组建网对网功能。也就是,在家里和办公室的路由器上装上n2n,启用n2n的路由功能,让家里和单位没有装n2n的设备也能相互通过虚拟网通讯。没想到,这用熟了的软件,也让我踩了坑。在网上下的一个n2n3.0版,编译有问题,同一个版本,mipsel(Mr4用)和ramv7(K3用)平台下的都可以用,但openwrt-x86平台下的就是不能用-关键是它运行的时候也不报错,就是无法连网。因为不报错,所以我在vmware的openwrt-x86下连网测试不成功,在x86的小主机下也不成功。期间还因为它换过一次x86小主机的openwrt版本。后来才发现是软件包编译的问题。我的运气可真好,这种问题也能遇到。人品真的是没话说了。后来确定了是编译版本的问题,直接在openwrt的另一个软件源里,用了luci的n2n V3.06版解决的问题。虽然luci版没有直接用命令行使用来得方便,但总算能用了。
先说说我的网络环境。家里是N3160小主机做主路由(PPPOE拨号,有公网IP),K3设置成无线ap模式;单位有个统一配置的主路由,无公网IP。我的办公桌上有个同事送的wan口不太稳定的Mr4无线路由器。连着办公电脑和网络打印机等设备。现在的要求是在x86小主机和Mr4无线路由器上装上n2n后,实现家里和单位的设备网络互访。下面来说说我的安装过程。
1.小米无线路由器4刷openwrt,设置成无线ap模式。本来Mr4设不设置成ap模式都无所谓,但是这坑爹的Mr4只有三个物理口啊。一个口用来连接单位的主路由器,一个口连接我的办公电脑,还得有一个口连接我的网络打印机才行。这样就只有工作在ap模式下才行了。(也许有兄弟说,wan口接主路由不一样用吗?但这样我的办公电脑和网络打印机与单位的其他设备就不在一个局域网了)。Mr4刷好openwrt,在“接口”里删掉"wan"接口,然后在“设备”页把wan接口加入到br-lan里去,再在防火墙里删除wan防火墙区域,这样三个物理口都成了lan口了。
2.Mr4和x86小主机更改软件源,都安装luci-app-n2n。由于家里有公网IP,所以把n2n的supernode部署在家里的x86小主机上。小主机上的edge的supernode指向本身127.0.0.1,Mr4上edge的supernode参数则指向家里x86小主机的DDNS域名的n2n端口,两者均设置静态虚拟IP。然后,在Mr4上n2n的luci界面添加一条指向家里的路由,例如:192.168.10.0/24,网关则是家里x86主机的n2n静态地址。同样,x86小主机上也添加一条指向单位的静态路由,如:192.168.3.0/24,网关是Mr4的n2n静态IP。这样,两边的网对网路由就通了。需要特别注意的是,如果单位的Mr4是主路由,这样已经没问题了,但单位的Mr4是无线AP,它本身不是网关,所以单位台式机的默认路由不是指向它,因此,单位台式机上还需要添加一条指向家里网段的静态路由,网关则是Mr4的物理IP,这样,单位台式机访问家里192.168.10.0/24的数据,才不会发向单位主路由192.168.3.1,而是发到Mr4(192.168.3.2)。也就是说,在n2n的edge装在旁路由上的时候,它下面的设备要访问对端的设备,需要在设备上添加一条指向旁路由的静态路由才行。方法:在windows的管理员权限的命令提示符下执行:route add -p 192.168.10.0/24 192.168.3.2(这里不是n2n的虚拟IP)
3.路由通了,还需要防火墙放行才行。家里x86小主机上的防火墙我设置了三条规则,一条是放行supernode的对外监听端口,二是接受edge0虚拟n2n接口的输入,三是允许转发edge0虚拟接口的数据。如下(我的n2n接口命名为edge0):
iptables -I INPUT -i edge0 -j ACCEPT
iptables -A FORWARD -i edge0 -j ACCEPT
Mr4那边情况复杂点。本来,如果Mr4也是刷的openwrt21.02版,使用iptables防火墙的话,在自定义防火墙里填入这两行规则就行。但我的Mr4刷的是22.03(自己给自己找不自在!其实是因为Mr4上有个必须的软件在21.02下无法安装,才刷的22.03),iptables规则不能用。好吧,在luci界面手工设定防火墙规则吧。这里需要说明的是,我的Mr4工作在无线AP模式下,所以用论坛里有个兄弟写的教程贴“n2n组网的正确姿势”里的设置不成功。我是这样设置通过的:
防火墙-Zones-lan里的Forward原reject设为accept
防火墙-Zones-lan,编辑,“高级设置”-"Covered devices"(覆盖设备)里勾上edge0,保存并应用
防火墙,上面常规设置-Forward,选accept(接受)
防火墙,下面Zones-Lan-勾上Masquerading(伪装)
这样设置以后,家里和单位的n2n组网就成功了。电脑的网上邻居可以相互用物理ip地址访问。手机在家里和单位的wifi下也能打开对端的设置上的文件。如果手机在外面,需要访问家里和单位的设备上的文件的时候,在手机上安装安卓版n2n就行了。但目前安卓版n2n有个问题,没有填写n2n静态路由的地方,所以它只能访问安装了n2n的设备。 |
|