資源:
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了