其他分类 · 13 4 月, 2025 0

搭建私人远程局域网:N2N(v3)快速配置参考例

需求

使用N2N V3创建局域网192.168.1.0/24
* 以公网服务器A(a.com)作为中心节点,局域网IP地址为192.168.1.1
* 以内网服务器B作为边缘节点,局域网IP地址为192.168.1.2,同时具有IP地址为192.168.2.1
* 终端设备C(IP地址192.168.2.2)与B在同一网络,可以通过B访问局域网192.168.1.0/24

以上所有服务器、终端均为Linux设备。Windows设备可按需参考。


N2N配置

1. 服务器A:中心节点(supernode)

在服务器A上安装n2n-supernoden2n-edge,进行以下配置。

  • 创建community列表

一个supernode可以作为多个网络的中心节点,community用于标识不同网络。如果supernode在公网中使用则务必设置,否则你的节点可能会变成公交车。

vi community.list创建列表文件,写入网络标识字符串。以下仅为示例,建议设置得复杂些。

my_com
# 可以指定多个
  • 命令行启动supernode

用以下命令启动supernode:

n2n-supernode -M -p 5000 -f -c ./community.list
# -M:关闭MAC、IP地址保护。自用的话关闭问题不大
# -p:监听端口5000,按需修改
# -c:指定community列表文件
  • 命令行启动edgenode

为了让中心节点拥有IP地址,中心节点也需要启动edgenode。

n2n-edge -z1 -c my_com -k password -a 192.168.1.1 -f -l 127.0.0.1:5000 -A4 -d n2nif
# -z1:使用lzo1x压缩
# -c:网络community
# -k:连接密钥。别真设置成password啊
# -a:本机地址
# -f:前台运行
# -l:Supernode的地址
# -A4:使用Chacha20加密算法
# -d:创建网卡的名称。在配置防火墙时会有用

2. 服务器B:边缘节点(edgenode)

在服务器B上安装n2n-edge,用以下命令启动。

n2n-edge -z1 -c my_com -k password -a 192.168.1.2 -f -l a.com:5000 -A4 -d n2nif -r -R 192.168.1.0/24,192.168.2.0/24,TCP-,UDP-,ICMP-
# 中心节点中使用的参数说明,这里不再赘述
# 注意community、密钥、加密算法需要与其他节点一致
# -r:允许路由
# -R:配置访问限制。C可以通过B访问A,但A不应具有C的访问权限

路由设置

1. 服务器B设置

执行以下命令:

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -d 192.168.1.0/24 -j MASQUERADE

2. 终端C设置

执行以下命令:

ip route add 192.168.1.0/24 via 192.168.2.1
# 即通过B访问192.168.1.0/24网络

配置后效果

  • 在终端C上执行ping 192.168.1.1,成功。
  • 在服务器A上添加路由ip route add 192.168.2.0/24 via 192.168.1.2,并ping 192.168.2.2,失败。