树莓派3到手折腾笔记,完全新手指导。

买树莓派本打算全年无休跑python爬虫来着,不过既然到手了,就顺便折腾一下。

本文比较简单,完全适合新手入门。用于将树莓派3配置为下载机并实现翻墙内网穿透。

安装系统

下载系统

官网下载: https://www.raspberrypi.org/downloads/raspbian/

  • Raspbian Jessie with PIXEL

    RASPBIAN JESSIE WITH PIXEL

    Image with PIXEL desktop based on Debian Jessie
    Version: September 2016
    Release date: 2016-09-23
    Kernel version: 4.4
  • Raspbian Jessie Lite

    RASPBIAN JESSIE LITE

    Minimal image based on Debian Jessie
    Version: September 2016
    Release date: 2016-09-23
    Kernel version: 4.4

个人建议新手下载PIXEL的带桌面的版本,爱折腾的也可以下载LITE然后装个i3桌面之类的。

下载zip文件,然后解压出里面的img镜像

安装系统

把解压出来的系统镜像img文件,写入到tf卡里,手头有一张16G的tf卡直接拿来用了。写卡用官方说的Win32diskimager工具或是其他都行,我这里写卡用的USB Duplicator Image Writer,绿色版省事。

tf放读卡器上插到电脑,然后打开工具勾选对应想镜像文件和tf卡,点击写卡,等写完就OK,也就5分钟左右。

将tf卡插回树莓派,然后插上电源,就用一般手机的2A充电器电源就行,用不着特意去找2.5A的。


连接树莓派

最开始的时候要么把树莓派用网线连笔记本上,要么把树莓派用网线连到家里路由器上。当然不论怎么连,总之你还是需要一根网线的。

建议是后一种,因为树莓派当下载器跑的话是要常年开着的。电脑连树莓派只是个临时方案。电脑连还有可用之处在于,如果你要折腾的软件包需要翻墙下载,那么你可以直接把笔记本翻墙,然后开启全局模式,比如用SS,然后用树莓派网线插到笔记上,这时候的树莓派就相当于翻墙联网了。这个方法很适合更新软件包却要翻墙时应急用。

查看ip

网线接电脑的话,电脑打开cmd命令行,输入arp -a。找一个b8-27-开头的mac物理地址,如果分不清哪个是的话,网线插拔前后分别执行一下arp -a。多出来那个ip就是。

网线接路由器话一样,打开路由器界面看一下客户端列表,同上找到ip即可。有的列表显示客户端名,名称叫raspberrypi的那个就是。(建议路由器绑定一个固定ip给树莓派,因为ip是动态的,如果不绑定下次就可能是另一个ip了。绑了的话ip固定,就不用每次都看了)

连树莓派

这里我们用的的工具是putty,没有的话下载一个,如果你想折腾树莓派,这个你会常用的。

打开putty。ip填进去,port端口 22,选SSH,点OPEN链接。第一次连会弹安全提示,直接点Y确认即可。

login as输入用户名pi

password输入密码raspberry

密码是不显示文字的,输完回车即可。

这时会提示你:

Last login: Fri Sep 23 04:02:56 2016
pi@raspberrypi:~ $

这就算链接成功了

后面就不说这面多废话了

开启root账号

为了方便折腾,第一时间启用 ROOT 账号
# 设置 root 账号的密码,会让你输入两次新密码 
sudo passwd root
# 启用 root 账号登录 
sudo passwd --unlock root
# 进入root账户
su root
# 修改ssh配置
nano /etc/ssh/sshd_config
修改 PermitRootLogin without-password 为 PermitRootLogin yes,crtl+o保存,ctrl+x关闭。
# 保存后重启
reboot
# 重新打开putty,输入用户名root和密码
root
登陆完毕

扩展可用空间

镜像只占了一部分,还有tf卡还有很多剩余空间没有利用。

# 进入配置面板
sudo raspi-config
选第1项 Expand Filesystem
# 扩展后重启 reboot ,扩展后可以通过命令查看SD卡的可用空间
df -h

更改时区

# 进入配置面板
sudo raspi-config
选第5项 Internationalisation Options 
选第2项 Change Timezone
选择 Asia
选择 Shanghai


连接桌面

自带桌面

因为之前下载的是自带桌面的系统,所以没什么可说的,很简单。安装下面两个软件就行。

sudo apt-get install tightvncserver
sudo apt-get install xrdp

如果提示Unable……apt-get update……之类的,就更新一下。

apt-get update

然后再执行之前的那两条指令

安装完成后,就可以用windows自带的远程桌面工具,连接进入树莓派桌面

i3桌面(用不到)

官方系统是有自带桌面的,不用装这个,这个是是我自己折腾玩的,只做记录用。

# 如果下载的是精简版系统,是没有桌面的,最好装个i3之类的桌面
#(安装之后Alt+1等数字切换界面,Alt+Enter新建界面,Alt+Shift+Q关闭界面)
apt-get install x-window-system-core 
apt-get install i3
mkdir ~/.i3
nano ~/.i3/config
# 粘贴内容如下(等号线以内的部分)这个是配置文件是网上找来的备份记录一下:

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout somewhen, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

set $mod Mod1

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below. ISO 10646 = Unicode
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
#font -wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-p-119-iso10646-1
font xft:monaco 10
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, if you need a lot of unicode glyphs or
# right-to-left text rendering, you should instead use pango for rendering and
# chose a FreeType font, such as:
# font pango:DejaVu Sans Mono 10

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# 自定义
bindsym $mode+m exec emacs
# 无边框:$mod+u
# 普通模式:$mod+t
bindsym $mod+t border normal
bindsym $mod+u border none
# 自动把打开的程序放到指定工作区
assign [class="(?i)firefox"] → 1
assign [class="(?i)emacs"] → 2
assign [class="(?i)amule"] → 3

# 暂存器使用
# mod shift -  隐藏当前窗口
# mod -	       现实第一个暂存的窗口	
bindsym $mod+Shift+minus move scratchpad
bindsym $mod+minus scratchpad show

# start a terminal
bindsym $mod+Return exec i3-sensible-terminal

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+h split h

# split in vertical orientation
bindsym $mod+v split v

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"

# resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym semicolon resize grow width 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

# Startups #
exec --no-startup-id fcitx
exec --no-startup-id volumeicon

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
	position top
        status_command conky -c ~/.conkyrc
    colors {
        background #555555
        statusline #ffffff
        focused_workspace  #4c7899 #285577 #ffffff
        active_workspace   #333333 #5f676a #ffffff
        inactive_workspace #333333 #222222 #888888
        urgent_workspace   #2f343a #900000 #ffffff
    }

}

装i3还可以装系统运行监视工具conky,很不错

apt-get install conky
要折腾一个适合树莓派下载机用的conky配置还是要花点时间的,先不弄了。


Aria2下载工具&webUI

Aria2安装

# 安装Aria2
sudo apt-get install aria2
# 新建文件夹 #新建session文件 #新建配置文件
mkdir ~/.aria2 
touch ~/.aria2/aria2.session 
nano ~/.aria2/aria2.conf
# 粘贴内容如下:

#文件保存目录自行修改 
dir=/root/Download
disable-ipv6=true
#打开rpc的目的是为了给web管理端用 
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
continue=true
# 路径要绝对路径
input-file=/root/.aria2/aria2.session
# 保存你的下载列表
save-session=/root/.aria2/aria2.session
max-concurrent-downloads=3
# 保存并执行以下命令:
sudo aria2c --conf-path=/root/.aria2/aria2.conf
# 运行下面指令,如果没有错误,Ctrl+C终止并继续下一步,把aria2做成系统服务:
sudo nano /etc/init.d/aria2c
# 粘贴内容如下(从网上找来的,稍微改了点):

#!/bin/sh
### BEGIN INIT INFO
# Provides:          aria2
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Aria2 Downloader
### END INIT INFO
case "$1" in
start)
    echo -n "Starting aria2c"
    sudo -u root aria2c --conf-path=/home/root/.aria2/aria2.conf -D
    #sudo -u后面的是你正在使用的用户名,因为我用的root,别忘记改成自己的
;;
stop)
    echo -n "Shutting down aria2c "
    killall aria2c
;;
esac
exit

# 保存后退出,然后设置这个文件的权限为755:
sudo chmod 755 /etc/init.d/aria2c
# 测试Aria2服务是否可以启动:
sudo service aria2c start
# 如果没有其他错误提示的话就说明成功了;如果提示错误reboot一下。最后添加aria2c服务到开机启动:
sudo update-rc.d aria2c defaults

小常识

chmod 755的意思 
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。 一般是三个数字: 
第一个数字表示文件所有者的权限 。
第二个数字表示与文件所有者同属一个用户组的其他用户的权限 。
第三个数字表示其它用户组的权限。 
权限分为三种:读(r=4),写(w=2),执行(x=1) 。 综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。 
所以,chmod 755 设置用户的权限为: 
7 -- 文件所有者可读可写可执行
5 -- 与文件所有者同属一个用户组的其他用户可读可执行
5 -- 其它用户组可读可执行
ls -la 查看文件权限root@raspberrypi:~# sudo ls -la /etc/init.d/aria2c
-rwxr-xr-x 1 root root 475 Nov 9 17:05 /etc/init.d/aria2c
权限列表 
-rw------- (600) 只有所有者才有读和写的权限 
-rw-r--r-- (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限 
-rwx------ (700) 只有所有者才有读,写,执行的权限 
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限 
-rwx--x--x (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限 
-rw-rw-rw- (666) 每个人都有读写的权限 
-rwxrwxrwx (777) 每个人都有读写和执行的权限 
# 查看进程,包含aria字符串
ps -ef|grep aria
# 如果提示端口被占用
killall aria2c

安装nginx

# 安装nginx,一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器
sudo apt-get install nginx
# 家用网络通常都是封80端口,所以得修改默认端口 
nano /etc/nginx/sites-available/default
# 改 listen 80; 为 listen 8080; # 8080便是新的监听端口
#listen 80 default_server;
#listen [::]:80 default_server;
listen 8080 default_server;
listen [::]:8080 default_server;
# root /var/www/html; #网页文件存放位置(默认就是,不用改)
# 修改完配置后需要重新nginx服务
sudo service nginx start

安装webui-aria2

# https://github.com/ziahamza/webui-aria2下载压缩包
wget https://github.com/ziahamza/webui-aria2/archive/master.zip
# 解压,删除压缩包
unzip master.zip 
rm master.zip
# 改文件夹名为webui
mv webui-aria2-master webui
# 创建本机的HTML网页根目录,移动文件夹到该目录下
mkdir -p /var/www/html/ 
mv webui /var/www/html/
# 设置权限目录权限,让其有权限下载文件到本地
chmod 755 /var/www/html/webui
# 设置完成后重启
reboot
# 浏览器访问即可(建议使用chrome浏览器或360极速模式,ie可能加载异常)
http:// IP :8080/webui/

内网穿透

家庭网络一般是内网,也就是没有外网IP。

要想在外面也能连上家里的下载器,方法不一。免费的比如:ssh反向代理,Ngrok;收费的就不说了,为了一个树莓派不值得。

感兴趣的可以自己研究,之前树莓派放家里玩的时候通过下面方法实现的,现在用不到了,只是记录一下。

frp

实现的工具是frp和一台VPS云主机,因为vps是有外网ip的。

另外还在noip上申请了个免费域名,并将域名解析到vps的ip。

frp工具的源码和介绍 https://github.com/fatedier/frp/blob/master/README_zh.md ,感谢开源工具的奉献者们做出的贡献。


VPS端:
# cpu是intel的,下载386版
wget https://github.com/fatedier/frp/releases/download/v0.8.1/frp_0.8.1_linux_386.tar.gz
tar -zxf frp_0.8.1_linux_386.tar.gz
rm frp_0.8.1_linux_386.tar.gz
cd frp_0.8.1_linux_386

# 更改客户端配置文件

nano frps.ini

# 原有的删掉,粘贴,保存

[common]
bind_port = 7000
vhost_http_port = 6800
dashboard_port = 7500
[ssh]
listen_port = 6000
auth_token = 123
[web]
type = http
custom_domains = xxx.xxx.xxx # 之前申请的域名。
auth_token = 123

# 执行

./frps -c ./frps.ini &



树莓派端:
# cpu是arm的,下载arm版
wget https://github.com/fatedier/frp/releases/download/v0.8.1/frp_0.8.1_linux_arm.tar.gz
tar -zxf frp_0.8.1_linux_arm.tar.gz 
rm frp_0.8.1_linux_arm.tar.gz
cd frp_0.8.1_linux_arm

# 更改客户端配置文件

nano frpc.ini

# 原有的删掉,粘贴,保存

[common]
server_addr = x.x.x.x  # vps主机ip
server_port = 7000
auth_token = 123
[ssh]
local_port = 22
[web]
type = http
local_port = 6800 #本地Aria2接口

# 执行

./frpc -c ./frpc.ini &


然后就OK了


SSH的话,可以通过 putty ip:6000链接。

下载的话,可以通过 http://ziahamza.github.io/webui-aria2/ 连接设置,主机直接填写域名,然后就能连上,远程建立下载了。也可以直接再vps上也部署一个webui,直接访问域名打开weiui页面,实现远程下载。


小常识

通过端口查占用了端口的程序

# 下面以7500端口来看怎么查找到该程序,我们使用下面的命令

netstat -lnp|awk 'BEGIN{prt=":7500$"}{if ($4 ~ prt) print $0}'



其他

python相关

# 安装python3(精简版镜像是没有python3的所以安装)
apt-get install python3
# 安装pip、pip3(对应python2、python3)
apt-get install python-pip
apt-get install python3-pip
# python3安装模块举例
pip3 install requests

# 树莓派默认python是python2.x。如果是用python3写的脚本在执行的时候,用python3 a.py这种方式就行了。


局域网共享文件

比较实用的比如 samba,具体内容网上有很多,不做记录了。困了,如果后续有空再补。




猜你喜欢

转载自blog.csdn.net/watfe/article/details/53139179