N2N使用DHCP方式获取IP地址
介绍一下使用N2N组建虚拟局域网时,采用DHCP方式获取IP地址的方法。
2021-02-27 更新:
最新的n2n已经支持supernode(服务端)自动分配IP地址(Auto IP),也就是supernode自带dhcp的功能
服务端搭建:https://bugxia.com/336.html
Windows下的客户端:https://bugxia.com/357.html
更推荐使用supernode自带的自动分配IP地址功能,以下方法目前也同样可以使用,但仅供折腾学习
之前写的关于N2N的文章,都是基于指定静态IP地址的方法来组网,略微麻烦,并且有可能会出现多个客户端指定同样的IP地址,导致IP冲突。
所以今天尝试了一下使用n2n客户端(edge)的 -a dhcp 参数来使用DHCP方式获取IP地址,省去了手动指定的麻烦。
以下方法均基于CentOS 7.4 64Bits
总结了三个关键点
1.edge(客户端)的dhcp参数的含义
2.dhcp服务器必须为一个edge节点 p.s 可以在中心节点(supernode)上同时跑edge节点
3.做DHCP服务器的edge节点要先启动edge,然后再启动dhcp服务
一、安装DHCP服务并简单配置
yum install dhcp -y
编辑/etc/dhcp/dhcpd.conf文件,更改为:
ddns-update-style interim;
ignore client-updates;
default-lease-time 604800;
max-lease-time 1209600;
subnet 192.168.233.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.233.1 192.168.233.255;
}
编辑/etc/sysconfig/dhcpd,添加一行:
DHCPDARGS="edge0"
保存。
二、启动supernode(略)
三、在supernode所在的服务器上启动edge
#参数 -d 为指定的网卡名称,和上面的/etc/sysconfig/dhcpd中保持一致。
#参数 -a 指定一个DHCP服务器地址,和/etc/dhcp/dhcpd.conf中保持一致。
#参数 -v -f 可省略,省略则为后端启动,无法看到调试信息
#其他参数释义见 https://bugxia.com/336.html
edge -d edge0 -r -a 192.168.233.0 -c bugxia -k 123456 -l 0.0.0.0:12345 -v -f
四、启动DHCP服务
systemctl start dhcpd.service
如果报错,使用 journalctl -xe 命令查看错误信息
五、启动其他edge节点
#Linux
edge -d edge0 -r -a dhcp:88.88.88.88 -c bugxia -k 123456 -l 88.88.88.88:12345 -v -f
#Windows
edge.exe -d "本地连接" -r -a dhcp:88.88.88.88 -c bugxia -k 123456 -l 88.88.88.88:12345 -v
注:
命令中的88.88.88.88为supernode节点地址,如果dhcp和supernode不在同一服务器上,则需分别更改为对于地址
-d “本地链接” 为Windows下的Tap网卡的名称,如果只有一个Tap虚拟网卡,则该参数可以省略
27 条评论
linux下自动分配没有问题能够ping通,但是windows下好像分配的不是我设置的IP段无法ping通?请问怎么解决呢
大佬 这是啥一死
WARNING: Supernode not responding, now trying 0.0.0.0:12345
28/Aug/2021 23:53:14 [edge_utils.c:938] Registering with supernode [id: 1/1][0.0.0.0:12345][attempts left 3]
28/Aug/2021 23:53:14 [edge_utils.c:848] Send REGISTER to 224.0.0.68:1968
能不能搞个windows的教程,或者搞个视频教程看看,试了一晚上硬是不成功