当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : iwconfig设置问题,共享wifi给手机,谁帮我看一下这个问题,谢谢!
帖子发表于 : 2012-03-14 20:36 

注册: 2010-08-22 23:54
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
在网上找到一个脚本,用来建立ad-hoc来实现wifi共享,但是脚本里面有个iwconfig设置失败。谁帮我看看?在线求助!!!

iwconfig wlan0 mode ad-hoc #运行到这里就报错,错误信息是:Error for wireless request "Set Mode" (8B06) : SET failed on device wlan0 ; Operation not supported.

脚本如下:
代码:
#!/bin/bash
#####################################
ShareNet=eth0
Wmode=ad-hoc
Wchannel=auto
Wessid=Leon_in_GuangZhou
WInterface=wlan0
WPasskey=androidworkab
Wkey=restricted
Igateway=192.168.2.254
Inetmask=255.255.255.0
Inetwork=192.168.2.0
DhcpRangeMin=192.168.2.10
DhcpRangeMax=192.168.2.105
#####################################

adhocFolder=/etc/adhoc
dnsmasqFile=$adhocFolder/dnsmasq.conf
resolvFile=/etc/resolv.conf
dnsmasqPid=/var/run/dnsmasq.pid
dnsmasqLeases=/var/run/dnsmasq.leases

# start Ad-hoc
function adhoc_start
{
   echo "Starting Ad-hoc..."
   check_dnsmasq
   sleep 1
   sudo ifconfig $WInterface down
   echo -n "Setting $WInterface gateway and netmask."
   sudo ifconfig $WInterface $Igateway netmask $Inetmask
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting up $WInterface ..."
   sudo ifconfig $WInterface up
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting $WInterface mode..."
   sudo iwconfig $WInterface mode $Wmode
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting $WInterface essid..."
   sudo iwconfig $WInterface essid $Wessid
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting $WInterface cannel..."
   sudo iwconfig $WInterface channel $Wchannel
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting $WInterface password..."
   sudo iwconfig $WInterface key s:$WPasskey
   sleep 1
   echo -n "    [ good ]"
   echo
   
   echo -n "Setting $WInterface key type..."
   sudo iwconfig $WInterface key $Wkey
   sleep 1
   echo -n "    [ good ]"
   echo
   echo
   echo -n "Setting iptable..."
   sleep 1
   #remove the old rules
   sudo iptables -N wireless-adhoc
     sudo iptables -F wireless-adhoc
     sudo iptables -t nat -F PREROUTING
     sudo iptables -t nat -F POSTROUTING
     sudo iptables -t nat -F
   #bring up the NAT rules
   sudo iptables -A wireless-adhoc -m state --state ESTABLISHED,RELATED -j ACCEPT
   sudo iptables -A wireless-adhoc -s $Inetwork/24 -j ACCEPT
   sudo iptables -A wireless-adhoc -p 47 -j ACCEPT
   sudo iptables -A wireless-adhoc -j DROP
   sudo iptables -A FORWARD -m state --state INVALID -j DROP
   sudo iptables -A FORWARD -j wireless-adhoc
   sudo iptables -t nat -I POSTROUTING -s $Inetwork/24 -j MASQUERADE
   sleep 1
   sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
   echo -n "."
   sleep 1
   sudo dnsmasq -i $WInterface --resolv-file=$resolvFile --conf-file=$dnsmasqFile
   echo
   echo "Success!^^"
}

# stop Ad-hoc
function adhoc_stop
{
   echo "Stopping adhoc ..."
   sudo sh -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
   echo -n "."
   # stop adhoc mode
   sudo ifconfig $WInterface mode managed
   sleep 1
   echo -n "."
   sudo ifconfig $WInterface key off
   sleep 1
   echo -n "."
   sudo ifconfig $WInterface essid any
   sleep 1
   echo -n "."
   sudo ifconfig $WInterface down
   sleep 1
   echo -n "."
   # remove iptabled rules
   sudo iptables -D FORWARD -j wireless-adhoc
   sudo iptables -D FORWARD -m state --state INVALID -j DROP
   sudo iptables -F wireless-adhoc
   sudo iptables -X wireless-adhoc
   sudo iptables -t nat -F PREROUTING
   sudo iptables -t nat -F POSTROUTING
   sudo iptables -t nat -F
   sleep 1
   if [ -f $dnsmasqPid ]; then
      dnsmasqID=`cat $dnsmasqPid`
      kill $dnsmasqID
      sleep 1
   fi
   if [ -f $dnsmasqLeases ]; then
      rm $dnsmasqLeases
   fi
   echo
   echo "Wifi ad-hoc now stopped"
}

function adhoc_restart
{
   echo "Now, resart ad-hoc ..."
   adhoc_stop
   sleep 2
   adhoc_start
}
# check dnsmasq.conf
function check_dnsmasq
{

   if [ -f $dnsmasqPid ]; then
      echo "Dhcp is running!"
      echo "Now, restart Ad-hoc"
      adhoc_stop
      sleep 1
   fi
   if [ ! -d $adhocFolder ]; then
   mkdir $adhocFolder
   fi

   if [ ! -f $dnsmasqFile ]; then
   echo "$dnsmasqFile is not exist, now building."

   echo "dhcp-authoritative" > $dnsmasqFile
   echo "dhcp-range=$DhcpRangeMin,$DhcpRangeMax,12h" >> $dnsmasqFile
   echo "dhcp-leasefile=$dnsmasqLeases" >> $dnsmasqFile
   echo "pid-file=$dnsmasqPid" >> $dnsmasqFile
   echo "user=root" >> $dnsmasqFile
   echo "no-negcache" >> $dnsmasqFile
   fi
}

# is super user?
function super_user
{
   if [ "$UID" = "0" ]; then
   return 0
   else
   return 1
   fi
}

function usage
{
   echo "Wifi Ad-hoc control"
   echo "$1 [-h][-s]"
   echo "Default is start ad-hoc"
   echo "-h show the usage"
   echo "-s stop ad-hoc"
   echo "-r restart ad-hoc"
}

if ! super_user ; then
echo "Need super user permission!"
exit 1
fi
if [ $# -lt 1 ]; then
adhoc_start
elif [ "$1" = "-h" ]; then
usage
elif [ "$1" = "-s" ]; then
adhoc_stop
elif [ "$1" = "-r" ]; then
adhoc_restart
else
echo "Input error!"
echo "$1 -h gives usage information."
fi


页首
 用户资料  
 
2 楼 
 文章标题 : Re: iwconfig设置问题,共享wifi给手机,谁帮我看一下这个问题,谢谢!
帖子发表于 : 2012-03-14 20:48 
头像

注册: 2008-03-25 15:49
帖子: 25878
地址: 谁知道?
送出感谢: 8
接收感谢: 10
引用:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward # 或者添加net.ipv4.ip_forward = 1 到/etc/sysctl.conf 执行 sysctl -p 启用 以后开机即启用
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 启用包转发


在nm 里图形添加 ad-hoc 方式很直观。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: iwconfig设置问题,共享wifi给手机,谁帮我看一下这个问题,谢谢!
帖子发表于 : 2012-03-14 21:01 

注册: 2010-08-22 23:54
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
pocoyo 写道:
引用:
sudo echo 1 > /proc/sys/net/ipv4/ip_forward # 或者添加net.ipv4.ip_forward = 1 到/etc/sysctl.conf 执行 sysctl -p 启用 以后开机即启用
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # 启用包转发


在nm 里图形添加 ad-hoc 方式很直观。


你好,没弄懂,我只是单纯想linux下共享网络给手机。能告诉我怎么操作吗?就是执行你帖的代码吗? :em06
不好意思,求教!


页首
 用户资料  
 
4 楼 
 文章标题 : Re: iwconfig设置问题,共享wifi给手机,谁帮我看一下这个问题,谢谢!
帖子发表于 : 2012-03-14 21:09 
头像

注册: 2008-03-25 15:49
帖子: 25878
地址: 谁知道?
送出感谢: 8
接收感谢: 10
不知道你用什么发行版。
就是使用 network-manager 为这个无线网卡新建个无线连接起个ssid名称 -》 选 ad-hoc 方式 即可, 再把那两条命令执行一下。手机就能使用wifi 连接 你的无线网卡。 如果你的机器是用 其它的连接 来上网的话。 手机就可以共享宽带上网了。
我觉着电脑至少应该有双网卡才行。

搜索 linux 下 双网卡 共享上网 , 一样的原理 。 把手机当成一台电脑即可。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: iwconfig设置问题,共享wifi给手机,谁帮我看一下这个问题,谢谢!
帖子发表于 : 2012-03-14 21:51 

注册: 2010-08-22 23:54
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
pocoyo 写道:
不知道你用什么发行版。
就是使用 network-manager 为这个无线网卡新建个无线连接起个ssid名称 -》 选 ad-hoc 方式 即可, 再把那两条命令执行一下。手机就能使用wifi 连接 你的无线网卡。 如果你的机器是用 其它的连接 来上网的话。 手机就可以共享宽带上网了。
我觉着电脑至少应该有双网卡才行。

搜索 linux 下 双网卡 共享上网 , 一样的原理 。 把手机当成一台电脑即可。


我用的是ubuntu11.10+Gnome3
嗯,大致了解了些。我电脑是eth0连外网 wlan0用无线提供wifi。 建好了无线链接,
SSID:linux-wifi
模式:ad-hoc
波段:自动
设备mac:00:17:C4:42:FD:2E(wlan0)

然后sudo sysctl -p
net.ipv4.ip_forward = 1
kernel.sem = 250 32000 100 128
kernel.shmmax = 536870912

在运行sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 这个吗? 没反应,无线也没连。。。

不好意思,再次求教!!!十分感谢!!!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译