看了知乎上的一个「树莓派」是什么以及普通人怎么玩? 的高票回答,双十一时间,果断买了一个树莓派 3.
周一(11.13) 到的货.我目前只想实现一个简单的功能 -- 想从任意位置访问个人树莓派. 就像一个潘多拉魔盒,第一步确定是拿到钥匙!linux
组装,其实指的是把树莓派放进红白外壳里.基本思路就是,去卖家店铺里看组装说明.其中,小风扇的安装有点特殊,须要接4/6脚.就是最外层的右起第2和第3个.接不对,小风扇,就不会转.我专门截了个图,以备忘:git
我前面说过了,我买的是套装,自带一个小显示器的那种.主要是内网ip常常变,我不是很容易肯定树莓派的ip.还有就是第一次启动时,我须要手动输入下密码.github
虽然听了不少,可是真的看到那个小盒子,加上那么低价的显示器,居然真的一块儿合做,把系统桌面给显示出来了,仍是有一点点触动的. NB 啊~shell
PS: 这个小显示器,也能够当作 mac 的外接显示器.第一使用 mac 显示器,记住操做技巧是: 用力的把鼠标移到屏幕外,而后光标就会自动出如今另外一块屏幕上.vim
树莓派的 ssh 登陆密码, 默认用户名是: pi , 默认密码是: raspberry 要第一时间修改下.centos
passwd
树莓派默认没有目录 .ssh ,须要先建立下.须要ssh登陆到树莓派以后,在派中执行:服务器
mkdir ~/.ssh/
在任意一台想要访问树莓派的电脑中,直接执行(而不是登陆到树莓派后执行):app
# 设置自动登陆. cat ~/.ssh/id_rsa.pub | ssh pi@树莓派内网ip "cat >> ~/.ssh/authorized_keys"
树莓派内网ip 要换为树莓派的内网ip.固然,也须要你用来访问树莓派的电脑和树莓派处于同一局域网.ssh
树莓派默认没有 root 密码,直接设置便可.tcp
# 设置 root 密码 sudo passwd root # 解锁 root 帐户 sudo passwd --unlock root # 切换到 root 帐户 su root
我是 64G 的内存卡,可是看容器总共只有 7.2G.第一反应是遇到了黑心商家,可是网上搜了下,简单设置重启便可.详见: http://cedar-renjun.github.io/2015/10/11/resize-raspberry-sd-volume/
此处引用记录下关键步骤,以供查阅:
操做步骤
1.从新树莓派,进入命令行页面
2.登录树莓派,用户名 pi,密码 raspberry
sudo su
切换至超级用户
df -h
显示出当前分区的状态和使用率
输入 fdisk /dev/mmcblk0 加载SD卡
p 打印当前分区
你应该会看到三个分区(mmcblk0, mmcblk0p1, mmcblk0p2),如今把分区2的信息写下来(/dev/mmcblk0p2)
我主要记录了开始扇区(122880)和结束扇区(8447999)的数值
7.按 d 开始删除分区
系统提示输入删除分区号,输入 2
按 n 新建分区,而后依次输入 p, 2
接下来输入原来记录的2扇区开始号(122880),记得替换成你本身的数字
按 w 保持配置
输入 reboot 重启树莓派
输入 sudo resize2fs /dev/mmcblk0p2 更新系统
输入 df -h 看看,是否是已经彻底使用了剩余空间
注意:在第 10 步以后,系统提示让输入结束扇区时,直接保持默认回车便可.
公网ip和公网服务器,相似于一个桥梁.咱们经过它将能够访问咱们放置在内网的树莓派.服务器,我是买的最低配置的云服务器.固然,用本身已有的ip和服务器也能够.
顶级域名或二级域名,只要能作 ip 类型的 DNS 解析均可以.这一步,就是简单的把域名解析到前一步的公网 ip 上.这样之后访问会省事些,不用记ip了. 固然,直接用 ip 访问也是能够的.
frp 的服务器端,通常名字是 frps,配置文件是 frps.ini. 这两个文件要放到你的公网服务器上.通常,你都应去发布页,去寻找 frp 的对应的操做系统的最新下载版本.此处以 frp_0.13.0_linux_amd64.tar.gz 为例.
# 下载.下载地址能够在github发布页右键点击某个下载项 --> 复制连接地址. wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz # 解压. tar -zxvf frp_0.13.0_linux_amd64.tar.gz # cd 到 frp 目录. cd frp_0.13.0_linux_amd64 # 编辑.debian上,打开vim的命令是 vi,不是 vim. vi frps.ini
在 frps.ini 中输入:
[common] bind_port = 7000 vhost_http_port =80 dashboard_port = dashboard_port_number dashboard_user = dashboard_user_name dashboard_pwd = dashboard_pwd_value privilege_token = privilege_token_value
而后,开启 frps 便可:
./frps -c ./frps.ini
配置好服务器端后,你应该就能够在浏览中打开 frp 的控制台页面了:
注意:
dashboard_port_number 改成一个特定的端口号,如8000,如此即可以经过 http://yourip:8000 来访问 frps 的网页控制台页面.
dashboard_user_name 和 dashboard_pwd_value,要改成一个自定义的用户名和密码,用于在访问 frps 控制台页面时输入.
privilege_token_value 改成一个自定义的值.只要客户端与服务端 privilege_token 匹配时,客户端才能链接到 frp 服务端.
frp 的客户端,通常名字是 frpc,配置文件是 frpc.ini. 这两个文件要放到你的内网服务器--树莓派上.通常,你都应去发布页,去寻找 frp 的对应的操做系统的最新下载版本.此处以 frp_0.13.0_linux_arm.tar.gz 为例.
# 下载.下载地址能够在github发布页右键点击某个下载项 --> 复制连接地址. wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_arm.tar.gz # 解压. tar -zxvf frp_0.13.0_linux_arm.tar.gz # cd 到 frp 目录. cd frp_0.13.0_linux_arm.tar.gz # 编辑. debian上,打开vim的命令是 vi,不是 vim. vi frpc.ini
在 frpc.ini 中输入:
[common] server_addr = your_server_ip server_port = 7000 privilege_token = privilege_token_value login_fail_exit = false [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = remote_port_number
而后,开启 frpc 便可:
./frpc -c ./frpc.ini
配置好服务器端后,你应该在任意能够链接到互联网的电脑上,使用 ssh 访问本身的树莓派了:
# 端口和ip要记得替换为本身的. ssh -oPort=remote_port_number pi@your_server_ip
注意:
your_server_ip 要替换为公网服务器上绑定的公网 ip.
frps 服务器端与客户端没必要是同一操做系统, 但frp 版本最好对应
树莓派3 debian 系统,须要的是 arm 版本的程序安装包.
privilege_token 要和服务器端的 frps.ini 中对应
login_fail_exit 很重要,不然后面没法实现系统重启时自动启动 frpc 功能.
remote_port_number,用来指定经过远程服务器的哪一个端口来 ssh 访问树莓派.
Systemd,能够保证在树莓派意外重启时,能自动启动 frp 相关服务.这样,咱们就不用成天提心吊胆,担忧各类意外了.
大部分 Linux 系统中,都内置了 Systemd.若是没有,能够手动安装.
安装systemd请运行:
apt-get update apt-get install systemd apt-get install systemd-sysv
在安装完 systemd 以后,为了使系统以 systemd 的方式使用,最好在 grub 配置文件中的 kernel 命令行指定下面的参数:
vi /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT="quiet splash init=/lib/systemd/systemd"
为了使用新安装的systemd来引导系统,请从新启动系统:
# reboot
# 须要先 cd 到 frp 解压目录. # 复制文件 cp frps /usr/local/bin/frps mkdir /etc/frp cp frps.ini /etc/frp/frps.ini # 编写 frp service 文件,以 centos7 为例,适用于 debian vim /usr/lib/systemd/system/frps.service # 内容以下 [Unit] Description=frps After=network.target [Service] TimeoutStartSec=30 ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini ExecStop=/bin/kill $MAINPID [Install] WantedBy=multi-user.target # 启动 frp 并设置开机启动 systemctl enable frps systemctl start frps systemctl status frps # 部分服务器上,可能须要加 .service 后缀来操做,即: systemctl enable frps.service systemctl start frps.service systemctl status frps.service
# 须要先 cd frp 解压目录. # 复制文件 cp frpc /usr/local/bin/frpc mkdir /etc/frp cp frpc.ini /etc/frp/frpc.ini # 编写 frp service 文件,以 centos7 为例,适用于 debian vim /usr/lib/systemd/system/frpc.service # 内容以下 [Unit] Description=frpc After=network.target [Service] TimeoutStartSec=30 ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini ExecStop=/bin/kill $MAINPID [Install] WantedBy=multi-user.target # 启动 frp 并设置开机启动 systemctl enable frpc systemctl start frpc systemctl status frpc # 部分服务器上,能够须要加 .service 后缀来操做,即: systemctl enable frpc.service systemctl start frpc.service systemctl status frpc.service
注意:
frps 或 frpc 启动无效时,能够尝试先中止服务,如:
systemctl stop frpc