curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/envcd /Users/vicnunes/dev/tui/netutil
cargo build --releaseThis will download all dependencies and compile the application. The first build may take a few minutes.
For viewing only (no sudo required):
cargo run --releaseFor making configuration changes (sudo required):
sudo cargo run --release
# or
sudo ./target/release/netutil-tui- When you launch the app, you'll see a table of all network interfaces with their types
- Use
↑and↓arrow keys (orkandj) to navigate - Press
?to see the help menu with all keyboard shortcuts - Press
ito see detailed information about the selected interface
Interface Types The app now shows the type of each interface:
- Ethernet - Wired network connections
- WiFi - Wireless network connections
- Loopback - Local loopback interface (lo)
- Bridge - Network bridges
- Virtual - Docker, veth, virtual interfaces
- Tunnel/VPN - VPN and tunnel interfaces
Detailed View (Press i)
- Shows all IP addresses (IPv4 and IPv6)
- Displays netmasks and broadcast addresses
- Shows DNS servers and search domains
- Displays MTU and other interface details
IP Configuration (Press e)
- Toggle between DHCP and Static IP
- Set IP address, netmask, and gateway
- Changes require sudo and confirmation
DNS Configuration (Press d)
- Add multiple DNS servers
- Configure search domains
- Navigate with arrow keys
- Press
ato add,xto delete - Press
Ctrl+sto save
IPv6 Configuration (Press 6)
- Enable or disable IPv6
- Set static IPv6 addresses
- Configure prefix length
- Quick toggle with Space key
- Navigate to an interface with arrow keys
- Press
ito open detailed view - See all IP addresses, DNS servers, and configuration
- Press
Escto return to main view
- Navigate to your interface
- Press
eto edit IP configuration - Press
Spaceto switch from DHCP to Static - Press
Tabto move to the IP field - Type your IP address (e.g., 192.168.1.100)
- Press
Taband enter netmask (e.g., 255.255.255.0) - Press
Taband optionally enter gateway - Press
Enterto proceed - Confirm when prompted
- Enter your sudo password
- Navigate to your interface
- Press
eto edit IP configuration - Ensure DHCP is selected (press
Spaceto toggle) - Press
Enterto apply - Confirm when prompted
- Enter your sudo password
- Press
dto edit DNS configuration - Use
↑/↓to navigate existing servers - Press
ato add a new server - Type the DNS IP (e.g., 8.8.8.8 for Google DNS)
- Repeat to add more servers (e.g., 8.8.4.4)
- Press
Tabto switch to search domains - Press
ato add a domain,xto delete - Press
Ctrl+sto save - Confirm when prompted
- Enter your sudo password
- Navigate to your interface
- Press
6to edit IPv6 configuration - Press
Spaceto toggle IPv6 off - Press
Enterto apply - Confirm when prompted
- Enter your sudo password
- Navigate to the interface
- Press
tto toggle - Confirm the action
- Enter your sudo password
↑/↓orj/k- Move up/downPgUp/PgDn- Page up/downHome/Endorg/G- First/last item
i- Detailed interface viewr- Refresh datas/S- Sort forward/backward/- Search?- Help
e- Edit IP (DHCP/Static)d- Edit DNS6- Edit IPv6t- Toggle interface
Tab- Next fieldSpace- Toggle optionEnter- Apply/ConfirmEsc- Cancela- Add (in DNS mode)x- Delete (in DNS mode)Ctrl+s- Save (in DNS mode)
c- Copy interface nameCtrl+i- Copy IPCtrl+m- Copy MAC
-
Always run with sudo for configuration changes - The app will show what would happen but can't apply changes without sudo
-
Use the detailed view - Press
ito see all information about an interface before making changes -
Test with non-critical interfaces first - Try configuration changes on a secondary interface before modifying your primary connection
-
Confirmation dialogs - Every configuration change shows a confirmation dialog - review it carefully before pressing Enter
-
Refresh after changes - Press
rto reload interface data after making changes
You need to run with sudo:
sudo ./target/release/netutil-tuiThis is normal for unusual interface types. The app can still manage them.
On some systems, you need to configure DNS persistence in your network manager settings.
Ensure either dhclient or dhcpcd is installed:
# Debian/Ubuntu
sudo apt-get install isc-dhcp-client
# Arch Linux
sudo pacman -S dhcpcdEnsure sysctl is available and you have appropriate permissions.
- Explore the detailed view (
i) for each interface - Try sorting by different columns
- Practice with search/filter (
/) - Configure DNS servers on a test setup
- Experiment with DHCP/Static switching on a non-critical interface
- Read the full README.md for advanced features
- Don't modify your primary network connection without having physical access to the machine
- Test on secondary interfaces first before modifying production network settings
- Note your current configuration before making changes
- Have a backup connection available in case of misconfiguration
- Use confirmation dialogs - they're there to prevent accidents
- Press
?in the app for keyboard shortcuts - Read README.md for comprehensive documentation
- Check EXAMPLES.md for common usage scenarios
- Review the code in src/ for technical details