ainray / natap Goto Github PK
View Code? Open in Web Editor NEWCreate a Wi-Fi hotspot on Linux by using NAT
Home Page: https://github.com/Ainray
Create a Wi-Fi hotspot on Linux by using NAT
Home Page: https://github.com/Ainray
SYNOPSIS: sudo natap nat start|restart|masq sudo natap nat start|restart|masq enp59s0 enx000ec6fb151b sudo natap nat start|restart|masq enp59s0 sudo natap nat start|restart|masq enp59s0 enx000ec6fb151b sudo natap nat start|restart|masq enp59s0 enx000ec6fb151b sudo natap nat start|restart|masq wlp60s0_sta sudo natap nat start|restart|masq wlp60s0_sta enx000ec6fb151b sudo natap nat start|restart|masq wlp60s0_sta wlp60s0_ap enx000ec6fb151b sudo natap nat stop sudo natap nat status sudo natap nat flush sudo natap ap start wlp60s0 sudo natap ap stop wlp60s0 sudo natap ap create wlp60s0 sudo natap ap delete wlp60s0 sudo natap reset This command must be run with root privilege. It can: + Create a wireless access point(AP) + Share Internet with local LAN by using MASQUERADE, i.e., Linux is a gateway Dependencies: + hostapd, create access point + isc-dhcp-server, assign ip for associcated clients + network tools, e.g. ifup/ifdown/ip/iw/ifconfig/iwconfig Important configuration files: + /etc/hostapd.conf + /etc/dhcp/dhcpd.conf + /etc/default/isc-dhcp-server + /etc/network/interfaces + /usr/share/bash-completion/completions/natap*** You should modify configuration files to get it worked for you. This is just a guide. My setting on Debian gateway have three sets of rules: * Disallow incoming connections to eth1 (the external network interface) * Allow outgoing packets from the LAN (via eth0 and wlan0) * Allow established connections to return. Example configuration: /etc/network/interfaces files # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto enp59s0 allow-hotplug enp59s0 iface enp59s0 inet static address 172.20.16.39 netmask 255.255.255.0 gateway 172.20.16.1 dns-nameservers 211.167.230.100 dns-nameservers 211.167.230.200 dns-nameservers 8.8.8.8 dns-nameservers 8.8.4.4 # usb-lan auto enx000ec6fb151b allow-hotplug enx000ec6fb151b iface enx000ec6fb151b inet static address 192.20.16.1 # wlan # client allow_hotplug wlp60s0_sta iface wlp60s0_sta inet dhcp # manual not static iface wlp60s0_ap inet manual #hostapd must be started after the interface is brought-up post-up /usr/sbin/hostapd -B /etc/ up ip addr add broadcast 192.20.39.1 dev wlp60s0_ap up service isc-dhcp-server restart pre-down killall hostapd down ip addr flush dev wlp60s0_ap /etc/hostapd.conf # natap_1-0 # Debug # Minimal configuration for test interface=wlp60s0_ap driver=nl80211 ssid=ainray #check by sudo iwlist wlp60s0 channel, more refer to iwlist channel=1 # add more #simply means 2.4GHz band, a means 5G hw_mode=g wme_enabled=1 # 802.11n support ieee80211n=1 # check it by iw list ht_capab=[HT40+][SHORT-GI-40][DSSS_CKK-40] # authentication and Encryption # 1 for wpa, 2 for wep, 3 both auth_algs=1 ignore_broadcast_ssid=0 # WPA 2 wpa=2 wpa_passphrase=235111235 wpa_key_mgmt=WPA-PSK # wpa_pairwise for WPA, rsn_pairwise for WPA2 wpa_pairwise=TKIP rsn_pairwise=CCMP # more # limit frequencies used to those allowed in the country ieee80211d=1 # china, check by isoqurey country_code=CN # QoS support wmm_enabled=1 /etc/dhcp/dhcpd.conf # dhcpd.conf # # Sample configuration file for ISC dhcpd # # option definitions common to all supported networks... option domain-name-servers 211.167.230.100,211.167.230.200,8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; # The ddns-updates-style parameter controls whether or not the server will # attempt to do a DNS update when a lease is confirmed. We default to the # behavior of the version 2 packages ('none', since DHCP v2 didn't # have support for DDNS.) ddns-update-style none; # If this DHCP server is the official DHCP server for the local # network, the authoritative directive should be uncommented. authoritative; subnet 192.20.39.0 netmask 255.255.255.0 { range 192.20.39.101 192.20.39.254; option subnet-mask 255.255.255.0; option broadcast-address 192.20.39.255; option routers 192.20.39.1; } /etc/default/isc-dhcp-server # Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server) # Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf). #DHCPDv4_CONF=/etc/dhcp/dhcpd.conf #DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf # Path to dhcpd's PID file (default: /var/run/dhcpd.pid). #DHCPDv4_PID=/var/run/dhcpd.pid #DHCPDv6_PID=/var/run/dhcpd6.pid # Additional options to start dhcpd with. # Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead #OPTIONS="" # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? # Separate multiple interfaces with spaces, e.g. "eth0 eth1". #INTERFACESv4="" #interfaces="wlp60s0" INTERFACESv4="wlp60s0_ap" #INTERFACESv6= /usr/share/bash-completion/completions/natap #!/bin/bash _natap(){ local cur prev opts local interfaces=$(ls /sys/class/net) COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[$((COMP_CWORD-1))]} case "$prev" in "natap") opts="ap inet nat reset status" ;; "nat") opts="restart start stop flush masq" ;; "restart"|"start"|"masq"|"stop") opts=${interfaces} ;; ap) opts="create delete start stop" ;; inet) opts="start stop" ;; create|delete) opts="wlp60s0" ;; ${interfaces}) opts=${interfaces} ;; esac COMPREPLY=( $(compgen -W "${opts}" -- $cur) ) } complete -F _natap natap
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.