资源:
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 -s 192.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上所有的PC都可以获取IP了