-1

我正在尝试在 eth0(Usb 调制解调器)和 wlan0(Wifi 热点)之间架起一座桥梁,或者将所有流量从 wlan0 路由到 eth0。

程序:

如果接口已经有 ip,则桥接将不会成功。

ip addr flush dev eth0
ip addr flush dev wlan0

创建网桥并添加网络。

brctl addbr br0
brctl addif br0 eth0

启动wifi热点。此时我可以用手机看到网络。

hostapd /etc/hostapd.conf -B &

给网桥分配一个ip。

ifconfig br0 192.168.0.1

启动 dhcp-server,这样我的热点就可以自动为连接的设备分配一个 IP 地址。

/etc/init.d/S80dhcp-server start

重置我的网桥。

ifdown br0
ifup br0

配置文件

hostapd.conf:

interface=wlan0 
bridge=br0 
driver=nl80211 
ctrl_interface=/var/run/hostapd 
ssid=My_Network 
dtim_period=2 
beacon_int=100 
channel=7 
hw_mode=g 
max_num_sta=8 
ap_max_inactivity=300

/etc/网络/接口:

auto br0
iface br0 inet manual
bridge_ports eth0 wlan0

/etc/dhcp/dhcp.conf

ddns-update-style none;
option domain-name "google.com";
option domain-name-servers 8.8.8.8, 8.8.4.4;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.110;
  option broadcast-address 192.168.0.255;
  option routers 192.168.0.1;
}

dhcp 服务器返回正常,但是当我尝试连接到 wifi 热点时,我无法获取 IP。关于如何进行的任何想法?

4

1 回答 1

0

我终于设法完成了。我没有使用桥接器,而是使用 iptables。

只需这两个命令就足够了:

回声 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.1/24 -j MASQUERADE

是带有解释的答案的来源

于 2018-09-13T22:28:05.947 回答