Connect Ubuntu to other PC with direct (crossover) cable

Ubuntu 11.04 (PC-1) is connected to PC-2 (Windows XP) with LAN cable (crossover direct cable)
Internet access is through USB wireless modem accessing router in separate room

If I boot in Windows 7 (PC-1 has dual boot) I have no problem to connect to PC-2, at the same time being connected to Internet, even sharing my Internet connection with PC-2. I set static IP address and Subnet mask on both PCs and that's all for bare connection. Additionally I have set Remote Desktop Sharing and Internet connection sharing, which works as expected.

My problem:

  1. I can't find a way to connect Ubuntu with PC-2 (Wired LAN connection)
  2. When I was using Debian (month ago, as my first Linux experiance) I used Wicd and I could connect to PC-2, but I could not have Internet connection at the same time (either Wired or Wireless)

Can someone enlighten a bit this network issues, as man pages or help files aren't for bare mortals like me, but perhaps for network experts, as I did not understood a word in it

Thanks


you need to go into network manager and change your ip4 settings to shared to other computers

enter image description here

here is the other method using ip tables

this will set the ip of your ethernet card

sudo ip addr add 192.168.1.1/24 dev eth0

and this will configure the nat

sudo iptables -A FORWARD -o wlan0 -i eth0 -s 192.168.1.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE

if the connection you are using for internet is different from wlan0 change that so if you are using mobile broadband it will most likely be ppp0

when you have done that you can save the settings by doing

sudo iptables-save > filename

and to reload the settings

iptables-restore < filename

the restore is needed because after a reboot iptables will forget what the settings entered above if you want it to load every time just put the restore line in /etc/rc.local