0%

Scratch

scratch是一个空镜像,只能用于构建其他镜像,比如你要运行一个包含所有依赖的二进制文件,如Golang程序,可以直接使用scratch作为基础镜像

Busybox

scratch是个空镜像,如果希望镜像里可以包含一些常用的Linux工具,busybox镜像是个不错选择,镜像本身只有763KB,非常便于构建小镜像

BusyBox是一个集成了一百多个最常用Linux命令和工具(如catechogrepmounttelnet等)的精简工具箱,它只需要几百KB的大小,很方便进行各种快速验证,被誉为Linux 系统的瑞士军刀

BusyBox可运行于多款POSIX环境的操作系统中,如Linux(包括Android)、HurdFreeBSD

Alpine

Alpine采用了 musl libcbusybox以减小系统的体积和运行时资源消耗,但功能上比busybox又完善的多,Alpine还提供了自己的包管理工具apk,可以通过packages网站上查询包信息,也可以直接通过 apk 命令直接查询和安装各种软件

Alpine Docker镜像也继承了Alpine Linux发行版的这些优势。相比于其他Docker镜像,它的容量非常小,仅仅只有5 MB左右(对比Ubuntu系列镜像接近200MB),且拥有非常友好的包管理机制

前记

为什么要软路由?目前家里的拓扑是

1
公网 -> 路由器 -> NAS/BOOK/PHONE

路由器负责了拨号科学上网广告过滤

之前已经将Frp移到了NASDocker里面

FRP资源

FRP教程

至于为什么要软路由原因:

  1. AC66U_B1时常不够稳定,将frp迁移至nas后深有感受
  2. AC66U_B1固件中插件有限而且越来越不好用,所以更多的是想将路由上的功能转一部分到软路由上

改造后拓扑为:

1
公网 -> NAS软路由 -> NAS/硬路由->BOOK/PHONE

硬件改造

改造前现有的硬件设备:

机箱:乔思伯V2
主板:华擎N3150TM-ITX主板
电源:绿巨能笔记本DC电源
硬盘:西部数据(WD)红盘 4TB * 2
内存:金士顿DDR3L 4G

改造前如图:

改造部分为更换机箱以及增加网卡

机箱:金河田(Golden field)预见N-1
网卡:EDUP EP-9602 PCI-E千兆网卡

改造后如图:

LEDE安装

上传镜像

https://firmware.koolshare.cn/LEDE_X64_fw867/虚拟机转盘或PE下写盘专用/ 下载combined-squashfs.img.gz固件,解压后上传至群晖,如图:

网络设置

好吧,被坑了,还一直没找到问题所在。

最开始上了EDUP EP-9602 PCI-E千兆网卡(RTL8111芯片),在群晖的网络界面能识别,在VMM网络界面添加虚拟交换机时无法识别;后面又换了LR-LINK 联瑞pciex1台式机千兆有线网卡intelI211芯片支持linux LREC9202CT还是无法识别;后来又换了胜为(shengwei)PCI-E千兆网卡 以太网rj45台式机电脑10/100/1000自适应网卡 单口 带唤醒 PEC-2051还是无法识别

算了,不玩儿了

终结

网卡无法识别原因寻找中

未完待续…


关于群晖部分问题可以看各位网友的总结:

黑群晖常见问题

离线安装

SSH到路由器上
下载KoolProxy离线包

1
2
cd /tmp
weget http://cdn.jakehu.me/koolproxy.tar.gz

解压并安装

1
2
tar koolproxy.tar.gz
sh koolproxy/install.sh

规则转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
安装WebShell
复制下面的内容发送命令。

cd /jffs/.koolshare/koolproxy/data/rules
# 删除旧版本规则文件
rm -rf koolproxy.txt
rm -rf daily.txt
rm -rf kp.dat
# 下载新版本规则文件

wget -O daily.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/easylistchina.txt
wget -O koolproxy.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt
# wget -O kp.dat https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/kp.dat
wget -O kp.dat https://raw.githubusercontent.com/user1121114685/koolproxyR_rule_list/master/kp.dat
# wget -O user.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/user.txt
wget -O user.txt https://raw.githubusercontent.com/user1121114685/koolproxyR_rule_list/master/kpr_our_rule.txt
# 下载扩展规则合并
wget -O koolproxy_tmp.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/191c06c8d1f769f1b81c1437ad3b1271e0e58d7b/koolproxyR/koolproxyR/data/rules/kpr_video_list.txt
wget -O daily_tmp.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/yhosts.txt

cat koolproxy_tmp.txt >>koolproxy.txt
cat daily_tmp.txt >>daily.txt

echo 一点点清洁工作...
rm -rf koolproxy_tmp.txt
rm -rf daily_tmp.txt
echo koolproxy规则已替换完成,请重新启用koolproxy!

自动更新

脚本

自动更新脚本如下:
/jffs/scripts/koolproxy.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/sh

echo "开始转换koolproxyR规则"
cd /jffs/.koolshare/koolproxy/data/rules

# 删除旧版本规则文件
echo "第一步"
echo
echo -e "删除旧版本规则文件"
rm -rf koolproxy.txt
rm -rf daily.txt
rm -rf kp.dat

# 下载新版本规则文件
echo "第二步"
echo
echo -e "下载新版本规则文件"
wget -O daily.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/easylistchina.txt
wget -O koolproxy.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt
# wget -O kp.dat https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/kp.dat
wget -O kp.dat https://raw.githubusercontent.com/user1121114685/koolproxyR_rule_list/master/kp.dat
# wget -O user.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/user.txt
wget -O user.txt https://raw.githubusercontent.com/user1121114685/koolproxyR_rule_list/master/kpr_our_rule.txt
# 下载扩展规则合并
wget -O koolproxy_tmp.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/191c06c8d1f769f1b81c1437ad3b1271e0e58d7b/koolproxyR/koolproxyR/data/rules/kpr_video_list.txt
wget -O daily_tmp.txt https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/yhosts.txt

echo "第三步"
echo
echo -e "合并规则"
cat koolproxy_tmp.txt >>koolproxy.txt
cat daily_tmp.txt >>daily.txt

echo "第四步"
echo
echo -e "一点点清洁工作..."
rm -rf koolproxy_tmp.txt
rm -rf daily_tmp.txt
echo -e "koolproxyR规则转换成功"

exit 0

设置

1
Tools->Scripts->定时任务

前记

鉴于电信运营商对公网IP吝啬之前一直使用frp对家里的Nas进行公网暴露,不过之前frpc一直是放在路由器梅林上的,这次将frpc移到了群晖Docker里面,所以制作了下面一键安装脚本以及Docker镜像以供使用

frps-onekey

此脚本根据clangcn/onekey-install-shell脚本制作,感谢Clang大大

操作

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装
wget --no-check-certificate https://raw.githubusercontent.com/jakehu/frp/master/frps-onekey/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

# 卸载
./install-frps.sh uninstall

# 更新
./install-frps.sh update

# 管理
frps {start|stop|restart|status|config|version}

frpc-docker

操作

1
2
# 使用
docker run -d --restart always -v /data/frpc.ini:/frp/frpc.ini jakehu/frpc-docker

frps-docker

操作

1
2
# 使用
docker run -d --restart always -v /data/frps.ini:/frp/frps.ini jakehu/frps-docker

晓看天色暮看云,行也思君,坐也思君。

前记

说说我目前的整个服务器的配置以及链路

1
Chrome -> Frp服务器 -> Frp客户端(内网ASUS路由器) -> NAS(群晖)

由于上https我想对整个frp放在群晖中去做一个映射,而不是放在路由器上

改造过后的链路为

1
Chrome -> Frp服务器 -> Frp客户端(群晖) -> NAS(群晖) || 路由器

Frp服务器

Frp服务器的安装这里可以看我做的一键安装脚本

Frps一件脚本

Https证书申请

可以是选择阿里云Symantec 免费版 SSL,可以自行前往阿里云控制台申请

我这里是用的sslforfree在线申请的

当然也还可以通过其他的方式比如:acme.sh

Frp客户端

在群晖上Frp客户端可以用docker镜像,这里同样可以看我制作的镜像

Frpc Docker镜像

在安装好服务端和客户端后,我们下载证书上传到群晖服务器上,同时我们像下图一样挂载配置文件证书目录

最后我们需要对https进行配置

1
2
3
4
5
6
7
8
9
10
11
12
13
[common]
server_addr = 127.0.0.1
server_port = 5443

[test]
type = https
custom_domains = test.jakehu.me
plugin = https2http
plugin_local_addr = 192.168.1.1:80
# HTTPS 证书相关的配置
plugin_crt_path = /frp/certificate/certificate.crt
plugin_key_path = /frp/certificate/private.key
plugin_host_header_rewrite = 192.168.1.1


到此告一段落,完美适应!