For definiteness, the operating system is Calculate Linux.

It is desirable to configure the bash script, and not through a graphical interface.

Closed due to the fact that the essence of the question is not clear to the participants of PashaPash , Saidolim , ermak0ff , artoodetoo , Visman 4 Oct '15 at 12:59 .

Try to write more detailed questions. To get an answer, explain what exactly you see the problem, how to reproduce it, what you want to get as a result, etc. Give an example that clearly demonstrates the problem. If the question can be reformulated according to the rules set out in the certificate , edit it .

  • 2
    Are you sure that this is ontopic? - VladD
  • one
    If sharing - means not for personal use, but for other people - hse5yzdx
  • four
    @ hse5yzdx for some reason you think that others should guess what you need, why, in what context, what exactly you tried and what exactly you didn’t work out. I do not want to upset you, but it is not. if you need help, learn to restrain yourself, and do not get personal after the first clarifying comment. - PashaPash
  • 2
    @ hse5yzdx the problem is that the question is formulated a little more than nothing. You mentioned hostapd - searching for it gives detailed instructions. did you try to set something up? what exactly did not work out? - PashaPash
  • one
    what I mentioned hostapd is the merit of the IRC channel calculate-ru on freenode, and not of this site. At the time of asking the question, I did not know two important keywords to search in Google (the first one is hostapd, and the second is access point) - hse5yzdx

1 answer 1

If I understand the question correctly, this script can help you:

#!/bin/bash ### Setup a wifi Access Point on Ubuntu 12.04 (or its derivatives). ### make sure that this script is executed from root if [ $(whoami) != 'root' ] then echo " This script should be executed as root or with sudo: sudo $0 " exit 1 fi ############################################################## ## Check whether the wireless card supports Access Point mode ############################################################## ### make sure that iw is installed apt-get -y install iw ### check that AP is supported supports_access_point=$(iw list | sed -n -e '/* AP$/p') if [ "$supports_access_point" = '' ] then echo "AP is not supported by the driver of the wireless card." echo "This script does not work for this driver." exit 1 fi ############################################################## ## Setup and host a network ############################################################## ### install hostapd apt-get -y install hostapd ### it should not start automatically on boot update-rc.d hostapd disable ### get ssid and password ssid=$(hostname --short) read -p "The name of your hosted network (SSID) [$ssid]: " input ssid=${input:-$ssid} password='1234567890' read -p "The password of your hosted network [$password]: " input password=${input:-$password} ### get wifi interface rfkill unblock wifi # enable wifi in case it is somehow disabled (thanks to Darrin Wolf for this tip) wifi_interface=$(lshw -quiet -c network | sed -n -e '/Wireless interface/,+12 p' | sed -n -e '/logical name:/p' | cut -d: -f2 | sed -e 's/ //g') ### create /etc/hostapd/hostapd.conf cat <<EOF > /etc/hostapd/hostapd.conf interface=$wifi_interface driver=nl80211 ssid=$ssid hw_mode=g channel=1 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 EOF ### modify /etc/default/hostapd cp -n /etc/default/hostapd{,.bak} sed -i /etc/default/hostapd \ -e '/DAEMON_CONF=/c DAEMON_CONF="/etc/hostapd/hostapd.conf"' ################################################ ## Set up DHCP server for IP address management ################################################ ### make sure that the DHCP server is installed apt-get -y install isc-dhcp-server ### it should not start automatically on boot update-rc.d isc-dhcp-server disable ### set the INTERFACES on /etc/default/isc-dhcp-server cp -n /etc/default/isc-dhcp-server{,.bak} sed -i /etc/default/isc-dhcp-server \ -e "/INTERFACES=/c INTERFACES=\"$wifi_interface\"" ### modify /etc/dhcp/dhcpd.conf cp -n /etc/dhcp/dhcpd.conf{,.bak} sed -i /etc/dhcp/dhcpd.conf \ -e 's/^option domain-name/#option domain-name/' \ -e 's/^option domain-name-servers/#option domain-name-servers/' \ -e 's/^default-lease-time/#default-lease-time/' \ -e 's/^max-lease-time/#max-lease-time/' sed -i /etc/dhcp/dhcpd.conf \ -e '/subnet 10.10.0.0 netmask 255.255.255.0/,+4 d' cat <<EOF >> /etc/dhcp/dhcpd.conf subnet 10.10.0.0 netmask 255.255.255.0 { range 10.10.0.2 10.10.0.16; option domain-name-servers 8.8.4.4, 208.67.222.222; option routers 10.10.0.1; } EOF ################################################# ## Create a startup script ################################################# cat <<EOF > /etc/init.d/wifi_access_point #!/bin/bash ext_interface=\$(ip route | grep default | cut -d' ' -f5) function stop_wifi_ap { ### stop services dhcpd and hostapd service isc-dhcp-server stop service hostapd stop ### disable IP forwarding echo 0 > /proc/sys/net/ipv4/ip_forward iptables -t nat -D POSTROUTING -s 10.10.0.0/16 -o \$ext_interface -j MASQUERADE 2>/dev/null ### remove the static IP from the wifi interface if grep -q 'auto $wifi_interface' /etc/network/interfaces then sed -i /etc/network/interfaces -e '/auto $wifi_interface/,\$ d' sed -i /etc/network/interfaces -e '\$ d' fi ### restart network manager to takeover wifi management service network-manager restart } function start_wifi_ap { stop_wifi_ap sleep 3 ### see: https://bugs.launchpad.net/ubuntu/+source/wpa/+bug/1289047/comments/8 nmcli nm wifi off rfkill unblock wlan ### give a static IP to the wifi interface ip link set dev $wifi_interface up ip address add 10.10.0.1/24 dev $wifi_interface ### protect the static IP from network-manger restart echo >> /etc/network/interfaces echo 'auto $wifi_interface' >> /etc/network/interfaces echo 'iface $wifi_interface' inet static >> /etc/network/interfaces echo 'address 10.10.0.1' >> /etc/network/interfaces echo 'netmask 255.255.255.0' >> /etc/network/interfaces ### enable IP forwarding echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -s 10.10.0.0/16 -o \$ext_interface -j MASQUERADE ### start services dhcpd and hostapd service hostapd start service isc-dhcp-server start } ### start/stop wifi access point case "\$1" in start) start_wifi_ap ;; stop) stop_wifi_ap ;; esac EOF chmod +x /etc/init.d/wifi_access_point ### make sure that it is stopped on boot sed -i /etc/rc.local \ -e '/service wifi_access_point stop/ d' sed -i /etc/rc.local \ -e '/^exit/ i service wifi_access_point stop' ### display usage message echo " ====================================== Wifi Access Point installed. You can start and stop it with: service wifi_access_point start service wifi_access_point stop " 

or a set of scripts from this repository .

I personally decided for myself that for short-term use it is cheaper to set up sharing on the phone.

The experience of using hostapd, etc. is negative. I didn’t remember what the specific problems were, but to use the solution in the format: "there is one link and several people" had to be abandoned.

  • one
    Of course you understood correctly. How this question can be understood incorrectly is not yet clear to me. - hse5yzdx
  • @ hse5yzdx, then why not accept the answer? - Qwertiy
  • because the question was about Calculate, and the answer is about Ubuntu. As soon as I set up successfully, I will immediately accept it. - hse5yzdx