networksetup — Configure Network Settings via CLI
Practical guide to networksetup — configure network services, Wi-Fi, DNS, proxies and interfaces on macOS from the command line.
networksetup is the CLI for macOS network system settings – use it to configure network services and interfaces, Wi-Fi, DNS, proxies and VPN directly from the command line. It is effectively the counterpart to "System Settings > Network", only scriptable and without the clicking. That makes it ideal for automation, remote administration over SSH and reproducible setups. This guide walks you through the commands you reach for daily, from listing services to setting a static IP and a proxy.
List & Info
networksetup -listallnetworkservices — List all network services (interfaces).
networksetup -listallnetworkservicesnetworksetup -listallhardwareports — List hardware ports with device names and MAC addresses.
networksetup -listallhardwareportsnetworksetup -getinfo '<service>' — Show IP, subnet, router, and DNS for a service.
networksetup -getinfo 'Wi-Fi'networksetup -getmacaddress <device> — Show the MAC address of a device.
networksetup -getmacaddress en0Wi-Fi
networksetup -setairportpower en0 on — Turn Wi-Fi on.
networksetup -setairportpower en0 onnetworksetup -setairportpower en0 off — Turn Wi-Fi off.
networksetup -setairportpower en0 offnetworksetup -setairportnetwork en0 '<SSID>' '<password>' — Connect to a Wi-Fi network.
networksetup -setairportnetwork en0 'MyNetwork' 'mypassword'networksetup -getairportnetwork en0 — Show the currently connected Wi-Fi network.
networksetup -getairportnetwork en0networksetup -listpreferredwirelessnetworks en0 — List preferred (saved) Wi-Fi networks.
networksetup -listpreferredwirelessnetworks en0networksetup -removepreferredwirelessnetwork en0 '<SSID>' — Remove a saved Wi-Fi network.
networksetup -removepreferredwirelessnetwork en0 'OldNetwork'DNS
networksetup -getdnsservers '<service>' — Show DNS servers for a network service.
networksetup -getdnsservers 'Wi-Fi'networksetup -setdnsservers '<service>' <dns1> <dns2> — Set DNS servers for a network service.
networksetup -setdnsservers 'Wi-Fi' 1.1.1.1 8.8.8.8networksetup -setdnsservers '<service>' empty — Reset DNS to default (DHCP-provided).
networksetup -setdnsservers 'Wi-Fi' emptynetworksetup -getsearchdomains '<service>' — Show search domains.
networksetup -getsearchdomains 'Wi-Fi'networksetup -setsearchdomains '<service>' <domain1> <domain2> — Set search domains.
networksetup -setsearchdomains 'Wi-Fi' example.com localIP Configuration
networksetup -setdhcp '<service>' — Set a service to use DHCP.
networksetup -setdhcp 'Ethernet'networksetup -setmanual '<service>' <ip> <subnet> <router> — Set a static IP address.
networksetup -setmanual 'Ethernet' 192.168.1.100 255.255.255.0 192.168.1.1networksetup -setv6automatic '<service>' — Set IPv6 to automatic.
networksetup -setv6automatic 'Wi-Fi'networksetup -setv6off '<service>' — Disable IPv6 on a service.
networksetup -setv6off 'Wi-Fi'Proxy
networksetup -getwebproxy '<service>' — Show HTTP proxy settings.
networksetup -getwebproxy 'Wi-Fi'networksetup -setwebproxy '<service>' <host> <port> — Set HTTP proxy.
networksetup -setwebproxy 'Wi-Fi' proxy.example.com 8080networksetup -setwebproxystate '<service>' off — Disable HTTP proxy.
networksetup -setwebproxystate 'Wi-Fi' offnetworksetup -setsocksfirewallproxy '<service>' <host> <port> — Set SOCKS proxy.
networksetup -setsocksfirewallproxy 'Wi-Fi' localhost 1080networksetup -setproxybypassdomains '<service>' <domains> — Set proxy bypass domains.
networksetup -setproxybypassdomains 'Wi-Fi' localhost 127.0.0.1 *.local Conclusion
networksetup makes macOS network configuration scriptable and therefore reproducible – ideal for provisioning, remote administration and quick DNS or proxy switches without clicking through System Settings. The writing commands (-set…) change active network, DNS, and proxy settings and usually require sudo; over SSH, a wrong value can cut your own connection, so test such changes carefully. Also note that Wi-Fi passwords passed as a plaintext argument to -setairportnetwork end up in your shell history and process list.
Further Reading
- networksetup in the macOS User Guide – Apple's Terminal documentation
- man networksetup – complete man page with all options
Related Commands
- caffeinate – prevent the Mac from going to sleep
- defaults – read and write macOS preferences (plist files)
- diskutil – manage disks, volumes and partitions