有段时间没碰linux了,关键是这个工作完全和unix-like完全不沾边,我向着偏离我梦想的道路快速奔跑...

 
现在的实际情况是:
  • 1台win7系统
  • 1台ubuntu 11.04系统,装了2块网卡,分别称之为eth0(连接外网),eth1(连接内网)
 
面前的问题是让ubuntu系统系统连接外网,然后用它做代理,让win7和ubuntu连接,使win7也能上网。
 
具体实现的步骤非常少,就是逻辑有点绕。
1,在ubuntu上配置/etc/network/interface文件
   
   
   
   
  1. sudo vi /etc/network/interface 
  2. # The loopback network interface 
  3. auto lo 
  4. iface lo inet loopback 
  5.  
  6. #连接外网网线的网卡 
  7. auto eth0 
  8. iface eth0 inet static 
  9. address 192.168.1.102 
  10. netmask 255.255.255.0 
  11. network 192.168.1.0 
  12. broadcast 192.168.1.255 
  13. gateway 192.168.1.253 
  14. dns-nameserver 219.150.32.15 
  15.  
  16. #连接win7内网的网卡 
  17. auto eth1 
  18. iface eth1 inet static 
  19. address 192.168.2.102 
  20. netmask 255.255.255.0 
2、现在要配置win7的那个网卡
网络连接,本地连接属性,
ip地址是192.168.2.103,掩码255.255.255.0,网关192.168.2.102
 
3、接下来是打开ubuntu系统的ip转发功能:
sudo vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
然后使用sudo sysctl -p命令使修改生效
 
4、最一步设置NAT转发规则:
 
   
   
   
   
  1. sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE 
  2. #这里一定注意,192.168.2.0是连接win7的那个内网的段,而其后接的eth0是连外网的网卡 
重新启动网络连接一次,应该win7和ubuntu都能同时上网了!
 
如果要开机自动转发,在/etc/rc.local文件中的exit 0之前加上
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE