如何通过 wifi 从 Ubuntu 15.04 PC 共享无线网络?

如何通过 wifi 从 Ubuntu 15.04 PC 共享无线网络?

我的笔记本电脑通过无线连接连接到互联网(这需要设置静态 IP)。但是我的 Windows Phone 没有此选项,因此我需要从我的 PC(Ubuntu 15.04)共享无线连接。有什么办法吗?

答案1

是的,但这需要购买第二张无线网卡(或插入以太网)。这是因为您需要一张卡作为输入连接。(大多数(如果不是全部)WiFi 卡无法同时处理输入和输出无线信号。)然后,使用 hostapd,您可以重定向无线卡以输出 WiFi 热点。

我从这个链接了解了如何做到这一点: https://nims11.wordpress.com/2012/04/27/hostapd-the-linux-way-to-create-virtual-wifi-access-point/

您可能需要稍微调整一下设置才能使它们正常工作。

这是我的设置和脚本:

hostapd.conf:

interface=wlan0
driver=nl80211
ssid=NETWORK_NAME
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=3
wpa_passphrase=PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

初始化软件应用(initSoftAp):

#!/bin/bash
#make sure these services aren't running
echo Killing hostapd
killall hostapd >/dev/null 2>&1
echo Killing DHCPD
killall dhcpd >/dev/null 2>&1
#turn off wifi stuffs
rfkill unblock wlan
nmcli nm wifi off
#Initial wifi interface configuration
ifconfig $1 up 10.0.0.1 netmask 255.255.255.0
sleep 2
###########Start DHCP, comment out / add relevant section##########
#Thanks to Panji
#Doesn't try to run dhcpd when already running
if [ "$(ps -e | grep dhcpd)" == "" ]; then
dhcpd $1 &
fi
###########
#Enable NAT
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables --table nat --append POSTROUTING --out-interface $2 -j MASQUERADE
iptables --append FORWARD --in-interface $1 -j ACCEPT

#Thanks to lorenzo
#Uncomment the line below if facing problems while sharing PPPoE, see lorenzo's comment for more details
#iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

sysctl -w net.ipv4.ip_forward=1
#start hostapd
hostapd hostapd.conf
trap ' ' INT
echo Killing DHCPD
killall dhcpd >/dev/null 2>&1
echo Killing hostapd
killall hostapd >/dev/null 2>&1
echo Exiting

相关内容