树莓派第一弹:初体验

买了个树莓派3,由于哥不是一个肤浅的人,所以没有买屏幕,几经周折终于成功地用起来了!
我的需求是用树莓派连WIFI,然后在后面用有线连接其他设备:

内网设备 -> 树莓派 -> WIFI -> Awesome world

安装系统

下载并烧制Raspbian系统。
注意:只有Raspbian可以不通过显示器进行安装(NOOBS是不行的)。

连接SSH

  1. 将电脑连上WIFI,并设置网络共享,将WIFI共享到有线网络。
  2. 打开树莓派,并用网线连接电脑和树莓派,然后通过arp -a命令找到树莓派IP,通常是192.168.137.x
  3. 用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

  1. 修改/etc/network/interfaces,将原来的wlan配置注释掉,改成:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
  1. 修改/etc/wpa_supplicant/wpa_supplicant.conf,添加WIFI配置:
network={
ssid="SSID1"
psk="PWD1"
priority=5
}
network={
ssid="SSID2"
psk="PWD2"
priority=4
}
  1. 然后通过相应的命令改变网络状态:
# 启动WIFI
$ sudo ifup wlan0
# 关闭WIFI
$ sudo ifdown wlan0

配置DHCP服务器

  1. 修改/etc/network/interfaces,给eth0设置静态IP:
auto eth0
iface eth0 inet static
address 192.168.22.1
netmask 255.255.255.0
# 不要设置gateway,这样才能默认使用外网的gateway
  1. 安装udhcpd
$ sudo apt-get install udhcpd
  1. 修改/etc/udhcpd.conf,这里我们要用eth0当网关:
interface eth0
# 还要把下面的一堆opt修改一下
  1. 修改/etc/default/udhcpd,将禁用服务的配置注释掉:
# DHCPD_ENABLED="no"
  1. 启动服务:
$ sudo service udhcpd start
$ sudo update-rc.d udhcpd enable

配置路由转发

  1. 使用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
    
  2. sudo执行上面的脚本,然后把iptables配置保存到文件,方便以后自动加载:

$ sudo iptables-save > /etc/network/iptables
  1. 开机自动加载iptables配置:
$ sudo crontab -e

加入

@reboot /sbin/iptables-restore < /etc/network/iptables
  1. 开启内核转发配置,修改/etc/sysctl.conf
# 去掉ip_forward的注释
net.ipv4.ip_forward=1

然后应用配置:

$ sudo sysctl -p

不出意外的话,网就通了~

参考资料

  • 树莓派的首次使用
  • WiFi to ethernet adapter for an ethernet-ready TV

你可能感兴趣的:(树莓派第一弹:初体验)