买了个树莓派3,由于哥不是一个肤浅的人,所以没有买屏幕,几经周折终于成功地用起来了!
我的需求是用树莓派连WIFI,然后在后面用有线连接其他设备:
内网设备 -> 树莓派 -> WIFI -> Awesome world
安装系统
下载并烧制Raspbian系统。
注意:只有Raspbian可以不通过显示器进行安装(NOOBS是不行的)。
连接SSH
- 将电脑连上WIFI,并设置网络共享,将WIFI共享到有线网络。
- 打开树莓派,并用网线连接电脑和树莓派,然后通过
arp -a
命令找到树莓派IP,通常是192.168.137.x
。 - 用Putty连接树莓派的IP。
默认用户名是pi
,密码是raspberry
。
更新源
修改sources.list
,毕竟连国外网速度太慢:
$ sudo vi /etc/apt/sources.list
改成阿里云的镜像:
# 注释掉原来的list,添加如下内容
deb http://mirrors.aliyun.com/raspbian/raspbian/ jessy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ jessy main non-free contrib
还有/etc/apt/sources.list.d/
里面的源也要改,似乎是UI相关的,而我没有显示器,所以直接注释掉了。
然后更新:
$ sudo apt-get update
$ sudo apt-get upgrade
连接WIFI
- 修改
/etc/network/interfaces
,将原来的wlan
配置注释掉,改成:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- 修改
/etc/wpa_supplicant/wpa_supplicant.conf
,添加WIFI配置:
network={
ssid="SSID1"
psk="PWD1"
priority=5
}
network={
ssid="SSID2"
psk="PWD2"
priority=4
}
- 然后通过相应的命令改变网络状态:
# 启动WIFI
$ sudo ifup wlan0
# 关闭WIFI
$ sudo ifdown wlan0
配置DHCP服务器
- 修改
/etc/network/interfaces
,给eth0
设置静态IP:
auto eth0
iface eth0 inet static
address 192.168.22.1
netmask 255.255.255.0
# 不要设置gateway,这样才能默认使用外网的gateway
- 安装
udhcpd
:
$ sudo apt-get install udhcpd
- 修改
/etc/udhcpd.conf
,这里我们要用eth0
当网关:
interface eth0
# 还要把下面的一堆opt修改一下
- 修改
/etc/default/udhcpd
,将禁用服务的配置注释掉:
# DHCPD_ENABLED="no"
- 启动服务:
$ sudo service udhcpd start
$ sudo update-rc.d udhcpd enable
配置路由转发
-
使用
iptables
配置转发,为了方便写到文件中:#!/bin/sh iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -F INPUT iptables -F OUTPUT iptables -F FORWARD iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT iptables -A FORWARD -p ALL -i eth0 -o wlan0 -j ACCEPT iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # iptables -t nat -A POSTROUTING -o wlan0 -j SNAT --to-source 192.168.1.37 iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
-
sudo
执行上面的脚本,然后把iptables配置保存到文件,方便以后自动加载:
$ sudo iptables-save > /etc/network/iptables
- 开机自动加载iptables配置:
$ sudo crontab -e
加入
@reboot /sbin/iptables-restore < /etc/network/iptables
- 开启内核转发配置,修改
/etc/sysctl.conf
:
# 去掉ip_forward的注释
net.ipv4.ip_forward=1
然后应用配置:
$ sudo sysctl -p
不出意外的话,网就通了~
网友评论