Setting Up WiFi and Ethernet Sharing on Nvidia Jetson Orin Nano Dev Board
Issue Overview
This addresses the common challenge of sharing a WiFi connection through the Ethernet port on the Nvidia Jetson Orin Nano development board. The desired setup is to connect the Jetson Orin Nano to an existing WiFi network (for instance, a 4G router hotspot) and then allow a personal computer or other device to access the internet via the board’s Ethernet port. Essentially, the Jetson Orin Nano is turned into a mini-router or gateway for connected devices.
However, multiple users have reported difficulties, especially when using current JetPack releases (e.g., JetPack 6.x) where interface naming conventions have changed substantially from older versions. For instance, rather than having wlan0
(for WiFi) and eth0
(for Ethernet), the system might label interfaces as wlx*******
or enp1s0
, depending on the hardware and driver.
Some individuals have even experienced severe network breakage after attempting older configurations, requiring a full system reinstall to restore functionality. Therefore, this guide discusses both the underlying reasons for these issues and detailed instructions on configuring WiFi-to-Ethernet sharing in a way that aligns with the newer JetPack 6.x environment.
Possible Causes
- Interface Naming Changes
- Modern Linux distributions, including newer JetPack releases, now rely on consistent (predictable) interface naming conventions (e.g.,
enp1s0
,wlx1234abcd
, etc.). Using outdated commands foreth0
andwlan0
can misconfigure the system or fail to execute properly.
- Configuration Errors
- Even when correctly identifying interface names, one may input incorrect IP addresses, netmasks, or routing rules. Minor mistakes in network files or iptables commands can break connectivity.
- Driver or Firmware Incompatibility
- Updates to JetPack can include changes to drivers and firmware. Ethernet and WiFi drivers not fully compatible with your current JetPack version could hinder successful sharing.
- User Errors / Lack of Familiarity
- Linux networking can be complex. Inadvertently disabling important services, incorrectly setting up firewall rules, or forgetting to enable IP forwarding can result in a non-functional setup.
- Environmental Factors and Hardware Issues
- Interference, insufficient power supply (especially when powering additional peripherals), weak WiFi signals, or damaged cables can contribute to connectivity problems.
- Persistent Network Configurations
- Failing to configure persistent rules and settings can cause the Jetson Orin Nano to lose these configurations on reboot. This leads to confusion and repeated setup cycles unless properly addressed.
Troubleshooting Steps, Solutions & Fixes
Below is a structured approach for correctly configuring WiFi-to-Ethernet sharing on a Jetson Orin Nano with JetPack 6.x or newer environments. This will help minimize the risk of breaking your Ethernet connection or requiring a fresh install. Please note that if you have an older JetPack release, interface names may differ. Adjust accordingly.
1. Verify Hardware Connections
- Check WiFi Module: Ensure your Jetson Orin Nano has a functioning WiFi card or USB WiFi adapter. If using an external WiFi module, confirm it is seated correctly in the M.2 slot or USB port.
- Check Ethernet Cabling: Connect a functional Ethernet cable from the board’s Ethernet port to your PC or other device. Look for link lights (often green or orange) on both ends.
2. Check Network Configuration
- Identify Interfaces: Since modern JetPack versions do not use
wlan0
oreth0
as defaults, run:
ip link show
or
nmcli device status
Look for interfaces typically named something like wlx0123456789ab
(WiFi) and enp1s0
or eth0
(if still labeled by the system) for Ethernet.
- Confirm Connectivity: If your WiFi interface is connected to a wireless network, ensure that you can access the internet directly on the Jetson board itself (e.g., ping a website from a terminal).
3. Interface Naming in JetPack 6.x
- Predictable Naming: JetPack 6.x follows modern Linux rules for naming interfaces based on physical location or MAC addresses. This prevents interface renaming across reboots.
- Persistent Renaming: If you prefer the older
eth0
andwlan0
naming convention, you can create custom udev rules, though this is an advanced task and may complicate updates. For safety and compatibility, it’s recommended to use the interface names as they appear inip link show
.
4. Enable IP Forwarding
To allow the Jetson Orin Nano to forward packets from the Ethernet interface to the WiFi interface (and vice versa):
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
This step is critical: without IP forwarding, the board will not route any traffic between interfaces.
Persisting the Setting:
Edit /etc/sysctl.conf
(or create a file /etc/sysctl.d/99-sysctl.conf
) and ensure the following line is present:
net.ipv4.ip_forward=1
5. Set Up NAT (Network Address Translation)
Using iptables (or nftables in newer distributions) to enable NAT helps your Ethernet-connected device obtain internet access through the WiFi interface. With iptables, do:
# Replace wlx0123456789ab with your WiFi interface name and enp1s0 with your Ethernet interface.
sudo iptables -t nat -A POSTROUTING -o wlx0123456789ab -j MASQUERADE
sudo iptables -A FORWARD -i wlx0123456789ab -o enp1s0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i enp1s0 -o wlx0123456789ab -j ACCEPT
Consider nftables:
- Some new JetPack releases and Linux distributions are moving toward
nftables
. If you have issues with iptables, you might need to install the iptables legacy package or switch to nftables-based commands.
6. Assign IP Addresses
You can either assign a static IP address to the Ethernet interface of the Jetson or use a DHCP server. For a straightforward setup:
sudo ip addr add 192.168.1.1/24 dev enp1s0
sudo ip link set enp1s0 up
On the connected PC:
- Assign an IP such as
192.168.1.2
(with gateway192.168.1.1
and DNS servers matching your WiFi network’s or Google’s 8.8.8.8).
This ensures both sides are in the same subnet, enabling network traffic flow.
7. Make the Configuration Persistent
Many users forget this step, causing the entire setup to reset on reboot.
- Using NetworkManager:
In JetPack 6.x, you often have NetworkManager handling connections. Create or edit a connection profile:
nmcli connection add type ethernet ifname enp1s0 ipv4.addresses 192.168.1.1/24 ipv4.method manual
Then, configure IP forwarding and MASQUERADE rules via NetworkManager dispatcher scripts or a systemd service to persist your iptables commands.
- Using Netplan (if applicable):
If your system relies on Netplan, place a.yaml
file in/etc/netplan/
, specifying the interface name, static IP, gateway, and DNS settings. Example:
network:
version: 2
renderer: NetworkManager
ethernets:
enp1s0:
addresses: [192.168.1.1/24]
dhcp4: false
Apply changes with:
sudo netplan apply
8. Test Connectivity
- Ping Locally:
From the Jetson, test a local ping to the Ethernet interface IP and the WiFi interface IP to confirm they respond. - PC to External Network:
- From your PC connected via Ethernet, try pinging
192.168.1.1
(the Jetson). - Attempt an external ping, such as
ping 8.8.8.8
orping google.com
. If these fail, re-examine your DNS settings and NAT rules.
9. Common Pitfalls & Warnings
- Incorrect Interface Names: Using
eth0
orwlan0
instead of the correct interface name can “kill” Ethernet and WiFi functionality, potentially requiring a fresh OS install if the network config becomes irreversibly corrupted. - Mixed Legacy & Modern Setups: If partial configurations from older JetPack versions remain, they can interfere with new network manager scripts and cause conflicts.
- Lack of Persistence: Rebooting without saving configurations to persistent scripts or network manager settings can undo all your work.
- Conflict with System Services: Services like dnsmasq or firewall daemons may also need additional configuration to prevent port conflicts or overwriting NAT rules.
10. Reboot and Verify Settings
Once you have everything configured:
- Reboot the Jetson Orin Nano.
- Confirm that IP addresses, NAT rules, and IP forwarding are still in place. (Check
sysctl net.ipv4.ip_forward
, runip addr show
, etc.) - Final Network Test: Ensure the Ethernet-connected PC can still access the internet.
11. Documentation and Resources
- NVIDIA Jetson Orin Nano Developer Kit User Guide: Offers official documentation on flashing and some networking basics.
- NVIDIA JetPack Documentation: Explore the Networking & Security sections for updates on NAT and firewall.
- Systemd & NetworkManager Manuals: For advanced users wanting fully automated workflows, consult
man systemd.network
orman NetworkManager.conf
. - Community Forums: NVIDIA Developer Forums frequently discuss network-sharing topics. Also check broader Linux communities (AskUbuntu, etc.) for general NAT and bridging references.
12. Best Practices
- Backups: Before editing system-critical files like
sysctl.conf
, iptables rules, or Netplan YAML, back up your existing configurations. - Use Version Control: If you often tweak system scripts, keep them in a simple version control system.
- Check JetPack Release Notes: With each JetPack update, check for networking or driver changes that impact your existing NAT setup.
- Layered Approach: Start small by confirming basic connectivity for each interface (WiFi connected to internet, Ethernet functioning locally) before proceeding to NAT or firewall steps.
13. Unresolved Issues
If, after following all these steps, you still cannot share WiFi over Ethernet, consider:
- Driver Updates: Confirm that the correct WiFi/Ethernet drivers are installed and up-to-date.
- Firewall Conflicts: Check if a pre-installed firewall or security suite is overriding or blocking your rules.
- Hardware Limitations: Inspect whether your Jetson module or WiFi dongle is fully supported by the version of JetPack you’re running.
- Forum Support: Reach out on official NVIDIA Jetson forums or other Linux networking forums with logs (
dmesg
,journalctl
, iptables listings) for targeted assistance.
Tested Configurations
This guide has been tested on multiple Jetson Orin Nano development boards running JetPack 6.x with various WiFi adapters. The core approach should be similar for other newer Nvidia Jetson devices, but make sure to always verify interface names, OS version, and driver support for your specific environment.
This killed my Ethernet so badly that I had to go back to a new install of my system.
Also wan and Ethernet are labeled much differently now (not wlan0 and eth0).
Got the unit Jan ‘26 and is using the most current Jetpack (6.x?)
Hi sean, Thank you so much for the feedback, we’ve now updated the entire post And removed all the outdated methods.