Accessing Jetson TX2 remotly to compile and test code

Hello,

we got two Jetson TX2 for educational purposes (Devices are flashed with Linux/Ubuntu).
We would like to access those devices remotly(simultaneously) to test our CUDA codes since not everyone has access to Nvidia graphics by themselves.

Is there any guide out there to set up this kind of environment?

We really appreciate your help.

With kind regards

R

Hello. I have a single TX2 host connected to a TP_LINK_POCKET_MR_3020 router operating in 3G/ 4G mode. I need to access my host remotely via ssh (or an alternative) when I am not on the same network. I tried enabling port forwarding on 22 (port for ssh)on my router, but I still wasn’t able to ping the host’s public IP. Could someone help me configure the router or my TX2 so I am able to accomplish remote access, please? Thank you.

What do you see for the following commands when run from both host and from Jetson?

route
ifconfig

Are the two systems on the same router? Or do they go through the internet? What is the topology of how they connect?

The Jetson and external computer are connected to two different routers. Both the routers allow the respective systems to connect to the internet.

Topology:
Tx2 -> Router_1 -> Internet
Remote PC -> Router_2 -> Internet

I have enabled Port forwarding (port 22 and 21 for ssh) on Router_1 with the Jetson’s local IP. Despite that, I am unable to ping the Jetson’s public IP address.

Outputs:

Jetson TX2

nvidia@tegra-ubuntu:~$ <b>route</b>
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.0.254   0.0.0.0         UG    100    0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 l4tbr0
172.17.0.0      *               255.255.0.0     U     0      0        0 docker0
192.168.0.0     *               255.255.255.0   U     100    0        0 eth0
192.168.55.0    *               255.255.255.0   U     0      0        0 l4tbr0
nvidia@tegra-ubuntu:~$ <b>ifconfig</b>
docker0   Link encap:Ethernet  HWaddr 00:XX:XX:XX:XX:XX  
          inet addr:172.17.0.1  Bcast:0.0.0.0  Mask:255.255.0.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
 
eth0      Link encap:Ethernet  HWaddr 00:XX:XX:XX:XX:XX  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::3128:199a:215:52e6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:165320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:115211 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:95614609 (95.6 MB)  TX bytes:200425962 (200.4 MB)
          Interrupt:42
nvidia@tegra-ubuntu:~$ <b>systemctl status ssh</b>
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
   Active: active (running) since Tue 2018-12-18 17:22:01 UTC; 4h 49min ago
  Process: 10777 ExecReload=/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCE
  Process: 10769 ExecReload=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
  Process: 853 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
 Main PID: 875 (sshd)
    Tasks: 1
   Memory: 1.6M
      CPU: 959ms
   CGroup: /system.slice/ssh.service
           └─875 /usr/sbin/sshd -D
 
Dec 18 21:55:57 tegra-ubuntu systemd[1]: Reloading OpenBSD Secure Shell server.
Dec 18 21:55:57 tegra-ubuntu sshd[875]: Received SIGHUP; restarting.
Dec 18 21:55:57 tegra-ubuntu systemd[1]: Reloaded OpenBSD Secure Shell server.
Dec 18 21:55:57 tegra-ubuntu sshd[875]: Server listening on 0.0.0.0 port 22.
Dec 18 21:55:57 tegra-ubuntu sshd[875]: Server listening on :: port 22.
Dec 18 21:55:57 tegra-ubuntu systemd[1]: Reloading OpenBSD Secure Shell server.
Dec 18 21:55:58 tegra-ubuntu sshd[875]: Received SIGHUP; restarting.
Dec 18 21:55:58 tegra-ubuntu systemd[1]: Reloaded OpenBSD Secure Shell server.
Dec 18 21:55:58 tegra-ubuntu sshd[875]: Server listening on 0.0.0.0 port 22.
Dec 18 21:55:58 tegra-ubuntu sshd[875]: Server listening on :: port 22.


Remote PC:

desktop@remote-ubuntu:~$ <b>route</b>
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         _gateway        0.0.0.0         UG    600    0        0 wlp2s0
10.50.10.0      0.0.0.0         255.255.255.0   U     600    0        0 wlp2s0
link-local      0.0.0.0         255.255.0.0     U     1000   0        0 wlp2s0
desktop@remote-ubuntu:~/Downloads$ <b>ifconfig</b>
enx00e04c100737: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.50.10.197  netmask 255.255.255.0  broadcast 10.50.10.255
        inet6 fe80::5cae:d09b:73d3:1774  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:10:07:37  txqueuelen 1000  (Ethernet)
        RX packets 170  bytes 58268 (58.2 KB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 162  bytes 51904 (51.9 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 8068  bytes 712552 (712.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8068  bytes 712552 (712.5 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

The first thing to note is that ICMP (ping and traceroute) is a different protocol than the TCP used in ssh. So port forwarding would have to include ICMP forwarding before ping or traceroute would work. Probably not the best thing to do since you may want to ping the router first.

However, there is a more significant problem…you need the address of each router. The 192.x addresses and 10.x addresses you see are non-routeable and the internet will never pass those…these are “private” subnets. Do you know the IP address of each router? On each system you might use a web browser and go to one of the IP address sites, e.g.:
https://whatsmyip.com/

Then, if Jetson can ping the PC router, and if the PC can ping the Jetson router, you should be able to succeed once ssh is forwarded (and forwarding might already be working, but until you reach the router you won’t know it is possible to work).