仅当以太网插入时才会出现 hostapd 热点

仅当以太网插入时才会出现 hostapd 热点

这让我一整天都疯了。我在 odroid UX4 上使用全新的 Ubuntu 15.10 &无线网络模块4(RT5572N 芯片组)

我想要的是:在启动时自动启动热点 + 每当我需要临时互联网访问时能够热插拔以太网电缆,而不会中断热点。

严格遵循此处的指南:

http://odroid.com/dokuwiki/doku.php?id=en:xu4_wlan_ap#configure_access_point http://odroid.com/dokuwiki/doku.php?id=en:xu4_wlan_ap#configuration_for_wifi_module_4

一切似乎都很好,直到我注意到 ap/network 被创建仅有的如果我插入以太网电缆。因此:

因此冷启动且无以太网 -> 无热点。只要我插入以太网电缆,热点就会出现,一切似乎都运行正常。我可以从另一台机器连接到热点,访问外部互联网等。我也可以拔掉以太网,一切继续正常工作。但是,只要我重新启动,它就不再工作了。因此,出于某种奇怪的原因,插入以太网是触发因素。

我怀疑网络管理员就是罪魁祸首。

我尝试添加allow-hotplug eth0到接口文件(正如一个论坛帖子所建议的那样)但没有什么区别。

编辑:只是为了澄清一下。主机是一台 odroid ux4,将在 la 内部现场使用。它运行一个网络服务器(以及其他东西),并且需要能够完全独立运行(没有互联网)。但是,在某些方面(例如,对于更新等),我只想能够插入以太网电缆(或 USB 调制解调器),然后能够通过 wifi 连接透明地访问更广泛的互联网。因此,在这种情况下,系统应该只是通过 wifi 将对互联网的请求透明地转发到其中一个有线连接。

我的网络管理器配置:

[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq

[ifupdown]
managed=true

[keyfile]
unmanaged-devices=mac:7c:dd:90:86:96:8e  -> usb dongle

在 /etc/网络/接口:

source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
  address 192.168.1.1
  netmask 255.255.255.0

auto eth0
iface eth0 inet dhcp

hostapd.conf(版本 2.5)

# Interface
interface=wlan0

# driver
driver=nl80211

# Logging
logger_syslog=-1
logger_syslog_level=3
logger_stdout=-1
logger_stdout_level=2

# CTRL-Interface
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

# WLAN
country_code=KR
ssid=orangspy
hw_mode=a
channel=40
beacon_int=100
dtim_period=2
max_num_sta=255
rts_threshold=2347
fragm_threshold=2346
preamble=1

# WPA2
wpa=2                            # WPA2 only
wpa_passphrase=xxxx
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=3                      # 1=wpa, 2=wep, 3=both
macaddr_acl=0
wmm_enabled=1
eap_reauth_period=360000
fragm_threshold=2346
rsn_preauth=1
rsn_preauth_interfaces=wlan0
wpa_group_rekey=600
wpa_ptk_rekey=600
wpa_gmk_rekey=86400

# N-WLAN
ieee80211n=1
ht_capab=[HT20+][SHORT-GI-20][DSSS_CCK-20][TX-STBC]
require_ht=0
obss_interval=0

/etc/rc.local

注意:我在网上找到的大多数信息都使用 bridge-utils 而不是 iptables 命令来实现流量转发。但不知道最好的解决方案是什么。

if [ -f /aafirstboot ]; then
    /aafirstboot start
fi

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

exit 0

是否配置

eth0      Link encap:Ethernet  HWaddr 00:1e:06:31:13:a0  
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:6ff:fe31:13a0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1216 errors:0 dropped:0 overruns:0 frame:0
          TX packets:714 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:265823 (265.8 KB)  TX bytes:606661 (606.6 KB)

ip6tnl0   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          UP RUNNING NOARP  MTU:1452  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:870 errors:0 dropped:0 overruns:0 frame:0
          TX packets:870 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:71560 (71.5 KB)  TX bytes:71560 (71.5 KB)

sit0      Link encap:IPv6-in-IPv4  
          UP RUNNING NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 7c:dd:90:86:96:8e  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::7edd:90ff:fe86:968e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:9734 (9.7 KB)

答案1

您究竟想用这个热点实现什么目的?您是否在创建接入点的机器上运行某种 Web 服务器?

您提供的第一个链接解释了如何转发收到的流量wlan0通过互联网eth0。当 Ubuntu 无法访问最后一个接口上的任何东西时,如果您的接入点无法正常工作,我不会感到太惊讶。我会尝试跳过

设置从 eth0 转发 WIFI 上网

作为教程的一部分。

答案2

在谷歌搜索和摆弄配置文件之后,我偶然发现了 oblique 编写的出色的 create_ap 脚本:

https://github.com/oblique/create_ap

这避免了配置文件的混乱并且开箱即用。

至于这个关于将 eth0 透明地共享到 wifi 的具体问题。请参阅此 github 问题以获取建议的解决方案(但尚未尝试):

https://github.com/oblique/create_ap/issues/149

答案3

我发现在这种情况下,wlan0 接口只有在 eth0 达到 /etc/dhcp/dhclient.conf 中设置的超时值后才可用。因此,将超时设置为例如 10,将使 wlan0 在尝试获取 eth0 的 IP 10 秒后可用。

相关内容