为了使无线网卡 uap0 可以访问互联网,需要进行以下配置:
1.配置无线网卡 uap0 的 IP 地址和掩码。
sudo ip addr add 192.168.0.1/24 dev uap0
2.开启 IP 转发功能。
sudo sysctl net.ipv4.ip_forward=1
3.配置 NAT 规则,将无线网卡的数据包转发到公网网卡 sipa_eth0 上。
sudo iptables -t nat -A POSTROUTING -o sipa_eth0 -j MASQUERADE
其中,sipa_eth0 是公网网卡的名字。
配置完成后,将 uap0 无线网卡连接到路由器或者其他设备,并分配 IP 地址。这些设备现在应该可以通过 uap0 访问互联网。
MASQUERADE 是一个 iptables 的 NAT 目标,用于将局域网内的 IP 数据包转换成公网 IP 数据包,从而实现网络地址转换(Network Address Translation,NAT)。
当一个主机上有多个网络接口(如本地有一台路由器),并且其中一个接口(比如公网接口)的 IP 是固定的、已知的,而另一个接口(比如内部网络接口)的 IP 是动态的或未知的,此时就可以使用 MASQUERADE 来实现 NAT。
当使用 MASQUERADE 目标时,iptables 会在数据包经过 NAT 表时动态地改变源地址和源端口,并将其保存到 NAT 表的连接追踪表中。这样一来,局域网内部的主机就可以通过 NAT 网关(如路由器)的公网接口访问互联网。
iptables -t nat -A POSTROUTING -o sipa_eth0 -j MASQUERADE
这条命令是在 iptables 的 NAT 表中添加一个规则,用于对从 sipa_eth0 接口发出的数据包进行地址转换(NAT),从而实现局域网内部的主机访问互联网的功能。
具体而言,-t nat 参数表示指定操作 NAT 表,-A POSTROUTING 参数表示在 POSTROUTING 链中添加一条规则,-o sipa_eth0 参数表示限制规则只作用于从 sipa_eth0 接口发出的数据包,-j MASQUERADE 参数表示将这些数据包进行 NAT 处理(即源地址和源端口转换),以便能够穿过 NAT 网关访问互联网。
这条命令的作用是将从 sipa_eth0 发出的数据包源地址改为 NAT 网关的公网 IP,使这些数据包在互联网中能够被正确路由。注意,该命令需要在 NAT 网关上运行。