一、概要描述
网上有很多create_ap之类的切换方法,但,我就想试试自己搞搞。
参考了很多,就不一一列举各位前辈的传送门了,太多了。
二、主要动作
1. 安装主要包
sudo apt-get install dnsmasq hostapd
2. 切换到Master(ap)
#!bin/bash
sudo cp /etc/dhcpcd.conf-ap /etc/dhcpcd.conf
sudo cp /etc/dnsmasq.conf-ap /etc/dnsmasq.conf
sudo cp /etc/wpa_supplicant/wpa_supplicant.conf-ap /etc/wpa_supplicant/wpa_supplicant.conf
sudo systemctl daemon-ruload
sudo ifconfig wlan0 down
#sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf &
sudo service dhcpcd restart
sudo service hostapd restart
sleep 10
sudo service hostapd resuart
#sudo service dnsmasq restart
3. 切换到Managed(normal)
#!bin/bash
sudo cp /etc/dhcpcd.conf-nor /etc/dhcpcd.conf
sudo cp /etc/dnsmasq.conf-nor /etc/dnsmasq.conf
sudo cp /etc/wpa_supplicant/wpa_supplicant.conf-nor /etc/wpa_supplicant/wpa_supplicant.conf
sudo systemctl daemon-reload
sudo ifconfig wlan0 down
sudo service dhcpcd restart
sudo service dnsmasq restart
三、提到的文件
/etc/dhcpcd.conf-nor
# A sample configuration for dhcpcd.
# See dhcpcd.conf(5) for details.
# Allow users of this group to interact with dhcpcd via the control socket.
#controlgroup wheel
# Inform the DHCP server of our hostname for DDNS.
hostname
# Use the hardware address of the interface for the Client ID.
clientid
# or
# Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
# Some non-RFC compliant DHCP servers do not reply with this set.
# In this case, comment out duid and enable clientid above.
#duid
# Persist interface configuration when dhcpcd exits.
persistent
# Rapid commit support.
# Safe to enable by default because it requires the equivalent option set
# on the server to actually work.
option rapid_commit
# A list of options to request from the DHCP server.
option domain_name_servers, domain_name, domain_search, host_name
option classless_static_routes
# Most distributions have NTP support.
option ntp_servers
# Respect the network MTU. This is applied to DHCP routes.
option interface_mtu
# A ServerID is required by RFC2131.
require dhcp_server_identifier
# Generate Stable Private IPv6 Addresses instead of hardware based ones
slaac private
# Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
# It is possible to fall back to a static IP if DHCP fails:
# define static profile
#profile static_eth0
#static ip_address=192.168.1.23/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1
# fallback to static profile on eth0
#interface eth0
#fallback static_eth0
#
#interface wlan0
#static ip_address=192.168.0.1/24
/etc/dhcpcd.conf-ap
# 同dhcpcd.conf-nor
# 但最后两行取消注释
interface wlan0
static ip_address=192.168.199.1/24
/etc/dnsmasq.conf-ap
interface=wlan0
listen-address=192.168.199.1
#bind-interfaces
server=8.8.8.8
server=114.114.114.114
#bogus-priv
dhcp-range=192.168.199.100,192.168.199.200,12h
/etc/dnsmasq.conf-nor
文件为空
/etc/wpa_supplicant/wpa_supplicant.conf-ap
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
/etc/wpa_supplicant/wpa_supplicant.conf-nor
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="test"
psk="11111111"
}