背景
Armbian 是一款基于 Debian 或 Ubuntu 的开源操作系统,专门针对嵌入式 ARM 平台进行优化和定制。它可以运行在多种不同的嵌入式设备上,例如树莓派、R2S,R4S,玩客云等等。Armbian 针对不同的嵌入式平台,提供了相应的硬件支持,可以让用户轻松地在这些平台上搭建自己的嵌入式系统。
刚好有一块闲置了几年的R2S卡片机和树莓派2时代的无线网卡。
[Read More]Armbian 是一款基于 Debian 或 Ubuntu 的开源操作系统,专门针对嵌入式 ARM 平台进行优化和定制。它可以运行在多种不同的嵌入式设备上,例如树莓派、R2S,R4S,玩客云等等。Armbian 针对不同的嵌入式平台,提供了相应的硬件支持,可以让用户轻松地在这些平台上搭建自己的嵌入式系统。
刚好有一块闲置了几年的R2S卡片机和树莓派2时代的无线网卡。
[Read More]如果想事实看到拷贝的速度可以用rsync -aP
除了SD卡上的存储,树莓派还可以使用U盘来做存储,有时候我们可能需要替换已有的U盘为更大容量的。在Mac上可以采用下面的方法:
备份已有的U盘,把U盘从树莓派上拔下来插在Mac上,找出U盘对应的盘符(下例为/dev/disk2
)
20:51:19 hugozhu-mac-mini ~ $ diskutil list
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.1 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_HFS Macintosh HD 499.2 GB disk0s2
3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *2.1 GB disk2
使用 dd 命令把U盘拷贝到raspberrypi.img
sudo dd if=/dev/disk2 of=raspberrypi.img conv=notrunc
从Mac上取下旧U盘,把新的U盘插入同一个USB口,注意新U盘容量要大于旧的
sudo dd of=/dev/disk2 if=raspberrypi.img conv=notrunc
把新U盘插入树莓派,并mount上,用以下命令把U盘的多余空间用起来
[Read More]Raspberry Pi整天开着,如果用缺省SSH端口对外开放,就会经常遇到扫描SSH密码的肉鸡。虽然密码不是很简单,但还是感觉很不安全的。
系统的ssh登录日志文件在:/var/log/auth.log,登录失败时会记录以下格式的日志:
Mar 7 10:31:51 raspberrypi sshd[24510]: Failed password for root from 221.8.19.129 port 4066 ssh2
Mar 7 10:31:55 raspberrypi sshd[24514]: Failed password for root from 221.8.19.129 port 4079 ssh2
Mar 7 10:31:56 raspberrypi sshd[24518]: Failed password for sshd from 221.8.19.129 port 4080 ssh2
Mar 7 10:32:26 raspberrypi sshd[24522]: Failed password for sshd from 221.8.19.129 port 4149 ssh2
用最简单的Shell脚本来解决这个问题:
#!/bin/bash
last_ip=""
tail -f /var/log/auth | while read LINE; do
{
if [[ "${LINE}" =~ "Failed" ]]; then
ip="$(echo ${LINE} | awk '{print $(NF-3)}')"
if [[ "$last_ip" == "$ip" ]]; then
echo "block $ip"
#curl -s --data-ascii "uuid=<my iphone's uuid>" --data "body=${LINE}" http://raspberrypi/pushme
iptables -A INPUT -s "$ip" -j DROP
fi
last_ip=$ip
echo $LINE
fi
}
done
用root用户执行以下命令,也可以放到启动脚本里:/etc/rc.local
[Read More]Openvpn本身不能设置多个端口,使用iptables可以解决这个问题 (假设openvpn本来56788端口):
for port in {56780..56787}
do
iptables -t nat -A PREROUTING -p tcp -d <your_external_ip> --dport $port -j REDIRECT --to-port 56788
done
按照 https://gist.github.com/833369 逻辑重新用Go实现了,用更少的内存开销在Raspberry Pi上跑。
替换上你的Email,密码,域名ID,记录ID等参数,就可以运行了。 会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。
获得domain_id可以用:
curl curl -k https://dnsapi.cn/Domain.List -d "login_email=xxx&login_password=xxx"
获得record_id:
curl -k https://dnsapi.cn/Record.List -d "login_email=xxx&login_password=xxx&domain_id=xxx"
Linux下的调试和分析工具集