你可能要问 manjaro 有什么好的? 看图,不多说。
介绍
64位系统
排名第一的,最易用的KDE桌面
迅雷,QQ ,微信,和最新软件,一个不少
manjaro 有最为丰富的软件仓库
最新的软件,优先享用
manjaro 的用户仓库就是AUR,遥遥领先
树梅派4B Manjaro-ARM 系统镜像下载地址:
https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro-arm/rpi4/
用树梅派自带工具烧录即可,不多说。
源
- 让终端彩色输出显示
sudo sed -i 's@#Color@Color@g' /etc/pacman.conf
- 选择阿里镜像,稳定
if [ ! -z "$(grep "mirrorlist" /etc/pacman.d/mirrorlist)" ];then
sudo systemctl disable pamac-mirrorlist.timer
echo 'Server = https://mirrors.aliyun.com/manjaro/arm-stable/$repo/$arch' | sudo tee /etc/pacman.d/mirrorlist
fi
关闭了 pamac-mirrorlist.timer 服务,否则它可能自己改你的源
- 接下来更新系统到最新:
sudo pacman -Syyu
安装软件
- 编译工具
这个很有用,因为仓库里的软件,安装时可能会编译安装。没有它,可能安装不了某些软件。
sudo pacman -S base-devel bc linux-rpi4-headers
- 用户软件仓库
这个重要,pacman是官方仓库,yay是用户仓库。
sudo pacman -S yay
用户仓库就是AUR, 超大量的软件都在这里。比如安装迅雷,QQ , 网易音乐等等
yay -S xunlei-bin
- 输入法
sudo pacman -S kcm-fcitx fcitx-qt5
配置启用输入法
echo 'GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx' | sudo tee ~/.pam_environment
- 网络工具
如果想把树梅派当路由器用,这些都是必须的。没这需求不必安装。
sudo pacman -S usb_modeswitch dhclient bridge-utils net-tools dnsmasq hostapd
局域网共享
sudo pacman -S samba manjaro-settings-samba
配置samba
首先创建samba密码
sudo smbpasswd -a $USER
接着,配置 smb.conf 把下面用户改成你自己的
sudo mkdir /mnt/本地磁盘
sudo sed -i '/homes/,$d' /etc/samba/smb.conf
sudo sed -i '/Share Definitions/,$d' /etc/samba/smb.conf
echo \
"#====== Share Definitions ===========
[树梅派]
comment = /home/lwl/
create mask = 0664
directory mask = 0775
path = /home/lwl/
read only = No
[共享磁盘]
comment = 1TB
create mask = 0664
directory mask = 0775
path = /mnt/本地磁盘/
read only = No
" | sudo tee -a /etc/samba/smb.conf
最后,启动samba服务
sudo systemctl enable smb nmb
sudo systemctl restart smb nmb
远程桌面 tigervnc
首先假设, 树莓派为 A主机, 你的电脑为 B主机
首先,A安装tigervnc
sudo pacman -S tigervnc
第一步, A配置密码,这个是其他电脑访问vnc时,要输入的密码
vncpasswd
第二步,A配置 tigervnc 用户
把里面用户名 lwl 改成你自己的
if [ -z "$(grep lwl /etc/tigervnc/vncserver.users)" ];then
#sudo sed -i '/lwl/d' /etc/tigervnc/vncserver.users
echo " :1=lwl" | sudo tee -a /etc/tigervnc/vncserver.users
fi
第三步,A配置confg文件
我的桌面是 plasma 改成你自己的
如果不清楚,可以直接查看
ls /usr/share/xsessions/
下面代码不能开启 localhost 选项,否则无法连接
cat > ~/.vnc/config << 'END'
#这是你的桌面, 查看桌面指令 ls /usr/share/xsessions/
session=plasma
#这里是分辨率,使用realvnc连接时,所显示的桌面分辨率
geometry=1200x980
alwaysshared
#这个选项是指定VNC只能本机连接使用,可以配合SSH加密传输
# localhost
END
第四步,A启动服务 tigervnc
其中 :1 表示的是 5901 端口
sudo systemctl enable vncserver@:1
sudo systemctl start vncserver@:1
第五步, B访问A的的桌面
B主机,也安装tigervnc,或者用RealVNCviewer,如下图, 用来访问A主机桌面, 也就是树莓派的桌面。
其中192.168.9.1是我的树莓派的IP, 修改为你的树莓派IP
即, 访问192.168.9.1的 5901端口
192.168.9.1:1
最后, 可选步骤, 如果VNC只在局域网内部使用, 不需要此步骤
局域网内不需要加密传输, 如果是外网就要了, 可以使用SSH隧道加密.
1, 上面第三步里, A主机开启 localhost 选项, 且A主机开启 SSH服务
sudo systemctl enable sshd
sudo systemctl start sshd
2, B主机执行下面指令, 开启SSH端口映射
即, 将 192.168.9.1 ,也就是A主机的 5901端口,映射到本地B主机的的9000端口
ssh 192.168.9.1 -L 9000:localhost:5901
然后, B主机用第五步来访问A主机树莓派桌面. VNC服务器填写如下
localhost:9000
此时,就成功了,所有数据都是通过ssh加密传输过来的.
防火墙
水平有限,仅供参考
我的树梅派当路由用,网口为我的电脑提供网络。
下面代码里的 192.168.9.0/24 是我的局域网,可以删掉,或者改成你自己的。
echo \
"
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#这样,就表示只有回应我们的报文能够通过防火墙,如果是别人主动发送过来的新的报文,则无法通过防火墙
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许主机被 ping
-A INPUT -p icmp -j ACCEPT
-A OUTPUT -p icmp -j ACCEPT
#先把“回环”打开,以免有不必要的麻烦
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
#允许DNS访问 从53端口进入
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -p udp --dport 53 -j ACCEPT
#允许DHCP访问 ,二级主机获取IP用
-A INPUT -p udp --dport 67:68 -j ACCEPT
#SSH服务 允许被访问
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
#samba 被访问
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -p tcp -m multiport --dports 139,445 -j ACCEPT
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -p udp -m multiport --dports 137,138 -j ACCEPT
-A OUTPUT -s 192.168.9.0/24,192.168.7.0/24 -p tcp -m multiport --dports 139,445 -j ACCEPT
-A OUTPUT -s 192.168.9.0/24,192.168.7.0/24 -p udp -m multiport --dports 137,138 -j ACCEPT
#vncserver 发去请求启动
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT
-A INPUT -s 192.168.9.0/24,192.168.7.0/24 -m state --state NEW -m tcp -p tcp --dport 5903 -j ACCEPT
#========= 开放的端口 必须要在这两条命令之前:
# 拒绝所有外部输入请求
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
" | sudo tee /etc/iptables/iptables.rules >/dev/null
启动
如果没报错,就真的可以了
sudo systemctl enable iptables
sudo systemctl restart iptables
结束语
查看上面你开启,和关闭的服务
#查看服务状态 ,是否被开启
systemctl list-unit-files | grep iptables
systemctl list-unit-files | grep smb
systemctl list-unit-files | grep vncserver
systemctl list-unit-files | grep pamac-mirrorlist.timer
如果树梅派做成路由使用,可以关闭其网络管理。否则,不用。
sudo systemctl disable NetworkManager
主要是 KDE 太好用了,个人觉得体验极好。 开机占内存400M左右。
享用愉快。