资源: __ __

PC A: Ubuntu 12.04 LTS,两块网卡,分别为eth0和eth1,使用eth0连接 互联网 __ __

PC B: Windows 7, 一块网卡,为eth0 __ __


目标: __ __

使得B通过A连接互联网(IPv4),即实现A为路由器的功能 __ __


步骤: __ __


PC A: __ __

(0)假设eth0已经配置好,PC可以通过eth0连接互联网 ,配置eth1为,如/etc/network/interface所示 __ __


auto lo __ __

iface lo inet loopback __ __


auto eth0 __ __

iface eth0 inet static __ __

address 172.16.10.65 __ __

gateway 172.16.10.254 __ __

netmask 255.255.0.0 __ __


auto eth1 __ __

iface eth1 inet static __ __

address 192.168.6.1 __ __

netmask 255.255.255.0 __ __

network 192.168.6.0 __ __

broadcast 192.168.6.255 __ __


当然,我是删除了network-manager, network-manager-gnome的才可以通过配置interface这个文件来设置网络的 __ __

你也可以通过network-manager来配置。DNS服务 器可以通过/etc/resolv.conf来配置: __ __


nameserver 168.95.1.1 #这是我的DNS服务器,你可以配置成你可以访问的,如8.8. 8.8 __ __


重启你的网络服务或者重启PC A,以上设置就可以生效。 __ __


(1)Linux系统自身就有IPv4包转发的功能,在/ etc/sysctl.conf进行配置, __ __

打开IPv4转发功能: __ __

net.ipv4.ip_forward=1 __ __


输入以下命令使得上面的设置生效(或者重启电脑): __ __


sudo sysctl -p __ __


(2)通过iptable实现IPv4包转发 __ __


sudo iptables -t nat -A POSTROUTING -s192.168.6.0/24 -o eth0 -j MASQUERADE __ __


可以通过iptables-save将iptables rule都保存到文件中,在通过iptables- restore读取rule到iptables中,


可以自己写一个脚本来实现iptables自动的载入rule, 或者找到iptables的配置文件来修改 __ __


PC B __ __

(0)将PC B的eth0与PC A的eth1用网线直接连接,配置PC B的eth0为: __ __


IP ADDRESS : 192.168.6.101 __ __

SUBNET MASK: 255.255.255.0 __ __

GATE WAY : 192.168.1.1i __ __

DNS Server : 168.95.1.1 __ __


这样PC B就可以通过PC A连接互联网了 __ __



增强配置: __ __

路由器都可以自动给PC分配IP,而不需要手动配置IP, 这是通过DHCP来实现的。如果也要实现相同的功能,那 __ __

就需要在PC A上搭建一个DHCP服务器。 __ __


(0)安装DHCP服务器 __ __

sudo apt-get install isc-dhcp-common isc-dhcp-server __ __

(1)配置DHCP __ __

(i)修改/etc/default/isc-dhcp- server __ __


INTERFACES=“eth1” __ __


(ii)修改/etc/dhcp/dhcpd.conf __ __


subnet 192.168.6.0 netmask 255.255.255.0 { __ __

range 192.168.6.100 192.168.6.200; __ __

option routers 192.168.6.1; __ __

option broadcast-address 192.168.6.255; __ __

option domain-name-servers 168.95.1.1; __ __

default-lease-time 600; __ __

max-lease-time 7200; __ __

} __ __


(2)PC B可以自动获取IP了,如果在PC A的eth1上接一个switch,接在switch上所有的P C都可以获取IP了