这让我一整天都疯了。我在 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 问题以获取建议的解决方案(但尚未尝试):
答案3
我发现在这种情况下,wlan0 接口只有在 eth0 达到 /etc/dhcp/dhclient.conf 中设置的超时值后才可用。因此,将超时设置为例如 10,将使 wlan0 在尝试获取 eth0 的 IP 10 秒后可用。