[转]Raspberry Pi做成路由器

  http://raspjason.blog.51cto.com/8565009/1426561/

曾经看到很多文章把Raspberry Pi制作成无线AP,但是我今天要做的是把Raspberry Pi做成一个有NAT功能的路由器,我做这个的初衷是因为到荷兰出差后发现我的bambook无法接入宿舍里的WiFi,也许是因为宿舍无线路由器是WEP的认证方式,总之死活连不上。后来决定用Raspberry Pi+北极星光无线路由器来解决问题。

 

wKiom1OlsIvz4mEEAB3G8fMyw1o975.jpg

 

思路:

    【无线路由器】-----【无线网卡--Raspberry Pi--有线RJ45端口】------【有线RJ45端口--北极星光无线路由器--无线】----Bambook

 

步骤一:

    配置Raspberry Pi的无线网卡与有线网卡

 

    无线网卡通过WEP连到宿舍无线路由器,并配置一个固定IP,有线网卡也配置固定IP

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pi@raspberrypi:~$  cat  /etc/network/interfaces
auto lo
 
iface lo inet loopback
 
iface eth0 inet static 
address 172.16.1.100
netmask 255.255.255.0
gateway 172.16.1.1
 
#########################################
allow-hotplug wlan0
iface wlan0 inet static
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
   wireless-essid  ADSL-WiFi-c91f44
   wireless-key    1234567890
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.254

 

步骤二:

    在Raspberry Pi上架设DHCP服务器

1
pi@raspberrypi:~$  sudo  apt-get  install  isc-dhcp-server

    编辑dhcp.conf文件

1
pi@raspberrypi:~$  sudo  vi  /etc/dhcp/dhcpd .conf

    在dhcp.conf文件的最后加上以下几行

1
2
3
4
5
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.1 172.16.1.99;
option routers 172.16.1.100;
option domain-name-servers 8.8.8.8,8.8.4.4;
}

    在Raspberry Pi的RJ45口上连上笔记本后测试是否可以分配IP地址

1
2
3
pi@raspberrypi:~$  sudo  service isc-dhcp-server restart
Stopping ISC DHCP server: dhcpd.
Starting ISC DHCP server: dhcpd.

步骤三:

    启用Raspberry Pi的路由转发功能,并开启NAT

 

    开启路由转发功能

1
pi@raspberrypi:~$  sudo  vi  /etc/sysctl .conf

    把sysctl.conf里的 net.ipv4.ip_forward=1前的"#"号去掉后保存

 

    开启NAT功能

    制作一个开启NAT的脚本,保存为nat

1
2
3
4
#!/bin/sh
sudo  iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo  iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo  iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT

    运行此脚本

1
2
3
pi@raspberrypi:~$  ls  grep  nat
nat
pi@raspberrypi:~$ sh . /nat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
pi@raspberrypi:~$  sudo  iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt  source                destination         
 
Chain FORWARD (policy ACCEPT)
target     prot opt  source                destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere            
 
Chain OUTPUT (policy ACCEPT)
target     prot opt  source                destination         
pi@raspberrypi:~$  sudo  iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt  source                destination         
 
Chain INPUT (policy ACCEPT)
target     prot opt  source                destination         
 
Chain OUTPUT (policy ACCEPT)
target     prot opt  source                destination         
 
Chain POSTROUTING (policy ACCEPT)
target     prot opt  source                destination         
MASQUERADE  all  --  anywhere             anywhere            
pi@raspberrypi:~$

    在/etc/network/目录下创建一个iptables的文件

1
pi@raspberrypi:~$  sudo  touch  /etc/network/iptables

    把iptables内容保存到/etc/network/iptables中

1
pi@raspberrypi:~$  sudo  sh -c  "iptables-save > /etc/network/iptables"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pi@raspberrypi:~$  cat  /etc/network/iptables 
# Generated by iptables-save v1.4.14 on Sun Jun 15 05:45:28 2014
*filter
:INPUT ACCEPT [22972:1979567]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2421:275063]
-A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o wlan0 -j ACCEPT
COMMIT
# Completed on Sun Jun 15 05:45:28 2014
# Generated by iptables-save v1.4.14 on Sun Jun 15 05:45:28 2014
*nat
:PREROUTING ACCEPT [9719:1105033]
:INPUT ACCEPT [1273:238753]
:OUTPUT ACCEPT [675:88515]
:POSTROUTING ACCEPT [219:34192]
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT
# Completed on Sun Jun 15 05:45:28 2014
pi@raspberrypi:~$

    在/etc/network/interfaces上加上一句up iptables-restore < /etc/network/iptables使得每次启动的时候自动生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
pi@raspberrypi:~$  cat  /etc/network/interfaces
auto lo
 
iface lo inet loopback
 
iface eth0 inet static 
address 172.16.1.100
netmask 255.255.255.0
gateway 172.16.1.1
 
#########################################
allow-hotplug wlan0
iface wlan0 inet static
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
   wireless-essid  ADSL-WiFi-c91f44
   wireless-key    1234567890
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.254
 
up iptables-restore <  /etc/network/iptables

保存重启发现连上Raspberry Pi的RJ45口的便携机能自动获取IP地址,并且可以ping通外网了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值