Ubuntu DHCP服务以及NET网桥的配置

项目成功实现了允许多密钥同时接入AP,由于需要配置一下DHCP服务和网桥保证STA连接后可以正常使用,以便于后面进行权限的控制。

准备工作

  • Ubuntu 14.04
  • hostapd
  • isc-dhcp-server

安装isc-dhcp-server:
sudo apt-get install isc-dhcp-server

开始配置

创建软AP

进入hostapd目录,执行以下命令运行hostapd:
sudo ./hostapd hostapd.conf

如果开启的时候,提示interface wlan0 wasn’t start,是因为你的wlan设备没有打开的原因。无线设备一般有三种状态,使用中,软锁定和硬锁定。其中软锁定就是关闭但可被软件激活,硬锁定则不可以。 输入下面两句命令,先关闭wifi,再软锁定wlan,最后重新打开hostapd即可。

sudo nmcli nm wifi off(ubuntu14里面使用)
sudo nmcli radio wifi off(ubuntu18里面使用)

sudo rfkill unblock wlan

开启DHCP服务

我们需要配置/etc/dhcp/dhcpd.conf文件,添加要分配的网段,指明分配的地址范围,默认网关和DNS服务器地址。在文件最后我们添加以下内容。注意要分配的网段不能和主机eth0所处的网段相同。(我的主机处在192.168.52.140,所以我下面挑的是192.168.0.2/24这段地址。)

1
2
3
4
5
6
7
subnet 192.168.0.0 netmask 255.255.255.0
{
range 192.168.0.2 192.168.0.250;

option domain-name-servers 8.8.8.8;
option routers 192.168.0.1;
}

然后我们配置无线接口wlan2所处的网段,注意要跟上面的配置一致:
sudo ifconfig wlan2 192.168.0.1 netmask 255.255.255.0

最后开启dhcp服务器即可:
sudo service isc-dhcp-server start

开启NET

SNAT,Source Network Address Translation
源地址转换,能够为内部客户端代理访问外部网络。目标地址和端口不变,源地址修改成对外可见的公网地址,端口随机生成,并将映射记录在NAT表中。当数据返回时,根据端口将目的地址修改成对应表项的IP地址和端口,这样可以解决多个设备共享一个公有IP上网的问题。

在这里,我们要用到的是SNAT,这可以借助iptables工具来实现。iptables能够帮助我们配置管理linux内部防火墙。我们首先打开转发功能,然后将192.168.52.140的地址修改为eth0的出口地址。然后还要改/etc/sysctl.conf
net.ipv4.ip_forward=1这行的注释去掉

1
2
sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -s 192.168.0.2/24 -o eth0 -j MASQUERADE

到此就完成了DHCP与NET的配置。


Ubuntu DHCP服务以及NET网桥的配置
https://chujian521.github.io/blog/2019/03/30/Ubuntu-DHCP服务以及NET网桥的配置/
作者
Encounter
发布于
2019年3月30日
许可协议