System A has Wi-Fi Internet access and an Ethernet port, while System B has just an Ethernet port. I connected the ports directly to each other. Both are fairly modern desktop PCs running Ubuntu 10.04.
On A I ran:
$ sudo ip addr add 192.168.0.1/24 dev eth0
$ ip route
10.66.225.0/24 dev ra0 proto kernel scope link src 10.66.225.153 metric 2
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.1
169.254.0.0/16 dev ra0 scope link metric 1000
default via 10.66.225.1 dev ra0 proto static
On B I ran:
$ sudo ip addr add 192.168.0.2/24 dev eth0
However, when I now try to ping 192.168.0.2 from .1, I get:
$ ping 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
From 192.168.0.1 icmp_seq=1 Destination Port Unreachable
From 192.168.0.1 icmp_seq=2 Destination Port Unreachable
Any hints? TIA.
Try using an Ethernet hub or switch to connect the two machines. If the machines are old then you can't use a conventional UTP cable to connect them. (You can use a crossover cable.) Even if the machines are new and are equipped with Auto-MDIX, what can happen is that both machines have their Ethernet ports switched off and niether one will switch its port on until connected to a peer with an enabled port.
And like magic, I just pressed up enter to retry the same command again some 10m later, and it works. I'll still mark another answer as accepted if someone can explain why this happened.
Update: Just tried doing the same thing again, and once more I'm getting Destination Host Unreachable errors, except this time it's been hours and the problem hasn't gone away.