Raspberry Pi

以下部分是以CentOs为例,但发现使用不方便,故丢在引用里,以Raspbain为例重写。


##### 系统烧录
适用于树莓派的系统列表
这次用CentOs做例子讲解
CentOs系统镜像列表
下载下来的后缀为.raw.xz的文件要解压成.raw
然后用Win32DiskImager工具烧录到闪存卡
将闪存卡插入树莓派,通电,连接网线。
##### 局域网连接
树莓派算是做好了,如何食用呢?
###### 有路由器
将电脑和树莓派用网线连接到同一路由器
1. 如果有路由器访问权限,直接查看树莓派的IP地址
2. 用ipscaner工具可以查看同意局域网内的设备IP地址

###### 无路由器
电脑联网并将网络设置为共享模式
树莓派用网线连接电脑(可用网线转接器)
cmd输入命令arp -a
在接口197.168.137.1下面的第一个IP地址即为电脑共享给树莓派的IP

获得了IP就好说话了,用putty也好cmder也好,只要支持ssh访问的都行
命令ssh username@ip即可连接

##### 初始化配置
###### SD卡扩展到实际容量
在终端中输入fdisk /dev/mmcblk0进入硬盘分区软件
在软件中输入:
p——查看旧分区情况
d——删除分区,并按照提示删除第三个分区
n——添加一个分区,空间起始位置按照系统默认(默认是最大空间)
p——查看新分区情况
w——写入分区信息并退出软件
在终端中输入:sudo reboot重启树莓派
在树莓派开机后在终端输入: resize2fs /dev/mmcblk0p3重新加载分区信息
使用:df -h查看新的分区信息表
###### 设置网络配置信息
1
2
3
nmcli  d  wifi  #查看周围的wifi
nmcli d wifi connect yourSSID password 'yourpassword' #连接wifi
nmcli d show wlan0 #查看wlan0的状态


接下来设置网络配置信息
1
2
3
4
5
6
vi etc/sysconfig/network-scripts/ifcfg-0000   #0000是wifi的名字

BOOTPROTO=static #静态IP
IPADDR=192.168.0.160 #IP地址
GATEWAY=192.168.1.1 #默认网关
NETMASK=255.255.255.0 #子网掩码


###### 创建新用户
新建用户并初始化密码:
1
2
adduser yourusername
passwd yourusername


linux会判断密码复杂度,不过可以强行忽略
给新建用户授权:
新创建的用户并不能使用sudo命令,需要给他添加授权。
sudo命令的授权管理是在sudoers文件里的
1
2
[root@localhost /]# ls -l /etc/sudoers
-r--r-----. 1 root root 3938 Apr 10 20:27 /etc/sudoers


只有只读的权限,如果想要修改的话,需要先添加w权限
1
2
[root@localhost /]# chmod -v u+w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0440 (r--r-----) to 0640 (rw-r-----)


然后就可以添加内容了
1
[root@localhost /]# vi /etc/sudoers


在下面的一行下追加新增的用户:
1
2
3
## Allow root to run any commands anywher  
root ALL=(ALL) ALL
Hodge ALL=(ALL) ALL #这个是新增的用户


记得将写权限收回:
1
2
[root@localhost /]# chmod -v u-w /etc/sudoers
mode of ‘/etc/sudoers’ changed from 0640 (rw-r-----) to 0440 (r--r-----)


###### 更换阿里源
1. 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2. 下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget http://mirrors.aliyun.com/repo/Centos-altarch-7.repo -O /etc/yum.repos.d/CentOS-Base.repo
3. 初始化
1
2
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache


系统烧录

适用于树莓派的系统列表
这次用Raspbain做例子讲解
Raspbain系统下载
下载下来的后缀为.zip的文件要解压成.img
然后用Win32DiskImager工具烧录到闪存卡
将闪存卡插入树莓派,通电,连接网线。

局域网连接

树莓派算是做好了,如何食用呢?

有路由器

将电脑和树莓派用网线连接到同一路由器

  1. 如果有路由器访问权限,直接查看树莓派的IP地址
  2. 用ipscaner工具可以查看同意局域网内的设备IP地址
无路由器

电脑联网并将网络设置为共享模式
树莓派用网线连接电脑(可用网线转接器)
cmd输入命令arp -a
在接口197.168.137.1下面的第一个IP地址即为电脑共享给树莓派的IP
可用ping命令测试

获得了IP就好说话了,用putty也好cmder也好,只要支持ssh访问的都行
命令ssh username@ip即可连接

关于ssh

获取树莓派IP后用ssh工具连接时可能出现连接被拒绝等报错
可参考:树莓派新系统SSH连接被拒绝的解决方法

初始化配置
修改密码

sudo passwd pi

开启root用户

由于root用户默认密码为空,因此无法登陆。登陆默认用户pi给root设置密码后即可开启root用户
可使用su - root切换用户

SD卡扩展到实际容量

使用:df -h查看新的分区信息表
最新的Raspbain系统已自动充分利用闪存卡空间了,无需额外设置。

设置网络配置信息

连接无线网:

  1. 用户可以在未启动树莓派的状态下单独修改 /boot/wpa_supplicant.conf 文件(内存卡插电脑)配置 WiFi 的 SSID 和密码,这样树莓派启动后会自行读取 wpa_supplicant.conf 配置文件连接 WiFi 设备。
  2. 树莓派启动状态下使用sudo nano /etc/wpa_supplicant/wpa_supplicant.conf打开该文件

编辑内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="WiFi-A"
psk="12345678"
key_mgmt=WPA-PSK
priority=1
}

network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1
}

ssid:网络的ssid
psk:密码
priority:连接优先级,数字越大优先级越高(不可以是负数)
scan_ssid:连接隐藏WiFi时需要指定该值为1
如果你的 WiFi 没有密码或使用WEP加密key_mgmt=NONE
如果你的 WiFi 使用WPA/WPA2加密key_mgmt=WPA-PSK

配置静态IP:
修改/etc/dhcpcd.conf 文件

1
2
3
4
5
6
7
8
9
10
11
interface eth0

static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

interface wlan0

static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

上面的配置文件中 , eth0是有线的配置 , wlan0是无线配置
ip_address就是静态IP , 后面要接/24
routers是网关
static domain_name_servers是DNS

更换软件源

选取中科大的软件源

  1. 备份
    mv /etc/apt/sources.list /etc/apt/sources.list.backup
  2. 新建sources.list并写入如下内容

    1
    2
    deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
  3. 更新软件列表

    1
    sudo apt-get update
架设服务器
  1. 安装Apache2

    1
    sudo apt-get install apache2
  2. 安装sqlite

    1
    sudo apt-get install sqlite
远程访问
远程桌面

局域网内windows远程桌面连接树莓派

  1. 必须先安装tightvncserver!!!

    1
    sudo apt-get install tightvncserver
  2. 再安装xrdp服务。

    1
    sudo apt-get install xrdp

打开Windows的远程桌面功能再输入目标局域网IP即可连接。

nat123

环境安装:

1
2
3
4
5
6
#apt-get  update  //更新,新系统推荐运行
#apt-get install mono-complete //安装运行环境,一路YES下去
#cd /mnt // mnt为你想要安装nat123的目录
#wget http://www.nat123.com/down/nat123linux.tar.gz //下载软件
# tar -zxvf nat123linux.tar.gz //解压
#mono nat123linux.sh //运行

运行并按提示依次输入自己的帐号和密码、运行成功
当然你不想这个程序一直占用你的屏幕,接下来输入x 回车退出软件
我们要客户端后台服务启动,这样才清爽:

1
2
#cd  /mnt                   //将mnt换成是自己本地实际安装目录
#mono nat123linux.sh service &

运行显示 nat123 service is running…. 就ok啦 按下回车键 就可以将其后台运行了
如果你还是不放心,可查看其运行情况:ps -ef|grep nat123

1
2
pi       23599 23577  5 02:45 pts/0    00:00:02 mono nat123linux.sh service
pi 23688 23577 0 02:46 pts/0 00:00:00 grep --color=auto nat123

至此树莓派raspbian/Linux上软件的配置与运行登录完成~~~~

终于到了重头戏了
端口映射配置
登录到 http://www.nat123.com/UsersNatItem.jsp
在映射编辑页面:
应用类型:因为全端口映射需要安装nat123的软件才可以访问内网,故不再折腾
重点讲80网站类型和其他(非网站类型)

  1. 80网站类型、映射线路默认、应用名称(随你咯)、内网端口为80、内网地址为树莓派静态IP地址、外网域名
    确认保存后在自己的域名解析管理网站将DNS服务器或NS设置为dns1.dns123.net/dns3.dns123.net;或者将cname设置为指定值
  2. 其他(非网站类型)一般用来做ssh连接或远程桌面连接
    映射线路默认、应用名称(随你咯)、内网端口ssh为22,xrdp为3350、内网地址为树莓派静态IP地址、外网端口按要求设置、外网域名
    确认保存后在自己的域名解析管理网站将DNS服务器或NS设置为dns1.dns123.net/dns3.dns123.net;或者将cname设置为指定值

nat123自启动
要保证在断网、断电、重启后nat123服务自动启动:

  1. 编写autonat123.sh脚本放在/mnt目录下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd /home/pi/Public/nat123
    #echo "1" > times.log
    ps -fe|grep nat123linux.sh |grep -v grep
    if [ $? -ne 0 ];then
    var=`date +%Y/%m/%d-%H:%M:%S`
    echo $var >> runtimes.log
    mono nat123linux.sh autologin username passwd
    #else
    #echo ".....nat123linux.....is.........runing......................."
    fi
  2. 通过crontab -e设置自动任务,每10小时运行autonat123.sh
    将以下指令加入文件最后0 */10 * * * cd /mnt && sh autonat123.sh

  3. 将autonat123.sh脚本加入开机自启动:
    1
    sudo vi /etc/rc.local

加入启动指令sh /mnt/autonat123.sh