- Published on
软路由、nas配置折腾小记
- Authors

- Name
- Lin Zaizai
当前的管理页ip
- 192.168.1.1(光猫天翼网关管理页 密码si8da)
- 192.168.2.1(主路由管理页)
- 192.168.2.125:80(旁路由管理页)
- 192.168.2.125:3030(adguardhome管理页)
- 192.168.2.125:8088(文件浏览器filebrowser管理页)
- 192.168.2.125:5678(小雅影音库)
- 192.168.2.125:11434(ollama本地模型监听端口)
- 192.168.2.125:7788(待定,docker微信机器人宿主机监听端口)
给服务器装ubuntu(失败,可能为硬件兼容性问题)
买了一个8G的U盘作为启动盘,在官网下载镜像后刻录进U盘里,server版的ubuntu怎么装都装不上,一直会报Error1906找不到操作系统,因此决定安装桌面版的ubuntu然后关掉GUI
因为没有买显示器,所以用vga转hdmi线 + 采集卡 + potPlayer用笔记本做主机显示器,因为没有无线网卡,所以只能用网线连接路由器和主机
插入U盘后开机等开机Logo出现后按F12进入启动介质选择(主机是联想主板),选择USB ueif启动,进入ubuntu安装界面(可能还要F1进bios更改启动顺序)
接下来就是键盘布局,网络设定,用户名等设置,选了最小化安装,节省资源

OpenWRT配置与安装/软路由的配置
配置网络[后面因软件更新更改了路由网段,导致路由ip更改为了192.168.2.125]
今天在研究为什么zerotier不能添加服务器节点时发现服务器ping不通百度,能ping通网关,用以下命令查看DNS解析是否正确时出现了报错,发现是DNS配置出现了问题
[root@OpenWrt ~]# nslookup baidu.com Server: 127.0.0.1 Address: 127.0.0.1:53 ** server can't find baidu.com: REFUSED ** server can't find baidu.com: REFUSED将lan口的ipv4网关设置成主路由地址,指引旁路由处理完请求后的下一步

DNS可以设置114.114.114.114或者主路由的IP,然后关闭DHCP服务,降低旁路由的耦合性,关闭防火墙的SYN-flood防御和全锥形NAT(FullCone-NAT),发现已经能ping通了,旁路由设置完毕

- 选择旁路由类型
非入侵式旁路由就是终端设备需要手动修改自己的ip地址和网关,而主路由配置不变,入侵式旁路由就是将主路由的DHCP服务中的网关指向旁路由,这样自动分配的IP地址就是指向旁路有的,最终决定选用入侵式旁路由
配置OpenWRT的ip地址
vim /etc/config/network修改lan口的ip,DNS以及网关,网关和DNS这里都指向主路由,然后所有连接到主路由的默认网关都会指向旁路由

通过iperf3测试软路由极限带宽吞吐
在openwrt上启用iperf3,在windows上安装iperf3,以下是服务器参数

iperf3 -s #服务端临时启用命令(默认监听5201端口)
iperf3 -s -D #保持在后台
iperf3 -s -D > iperf3.log #我们也可以使用-D标志作为守护程序运行,并将服务器消息写入日志文件
客户端参数

iperf3 -c 10.10.10.252 #这里的IP地址填你的openwrt路由器,单线程TCP协议
iperf3 -c 10.10.10.252 -b 1000m -t 60 -i 1 -u -P 2 #多线程UDP测速
测速结果如下,百兆左右的网速,感觉太慢了,后期可以研究一下网络加速

配置adguardhome广告拦截
在软件包栏更新列表安装(openwrt的插件拓展包后缀是ipk),由于adguardhome默认没有Iuci界面,查看系统日志发现adguardhome已经在监听3000端口了(后面由于3000端口被占用,我改成了3030)

于是可以直接从浏览器进入adguardhome管理页面

在安装Iuci版本时,如果出现没办法更新adguardhome核心时,需要将 /usr/share/AdGuardHome/update_core.sh 文件中第 168 行 wget-ssl 修改为 wget,之后点击 “更新核心” 就可以正常更新核心版本了。
vim /usr/share/AdGuardHome/update_core.sh
来自某个论坛:

设置完后打开192.168.2.125:3030可以看到adguardhome已经正常运行了

参考资料:1. 配置文件与核心更新问题 2. Iuci版全局配置教程 3. DNS测试网址
配置软路由科学上网
主要通过passwall实现科学上网插件,先找到了合适的机场龙猫云,获取了订阅地址后在passwall中进行节点获取,点击手动订阅即可获取节点

然后在常规配置中选择UDP和TCP的节点服务器,启用passwall即可

这样连接网络的设备都可以直接科学上网了
参考资料:龙猫云官方openwrt + passwall配置教程
配置doker + xiaoya
token 37f9136a73ed4054b0d01b734c0a72xx open token eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzxxNiJ9.eyJzdWIiOiJjNmIxMjY0M2U5NzM0ZmUwYWM2OTRiYmZmOWQzYTM5YSIsImF1ZCI6Ijc2OTE3Y2NjY2Q0NDQxYzM5NDU3YTA0ZjYwODRmYjJmIiwiZXhwIjoxNzM2MDY1MzQyLCJpYXQiOjE3MjgyODkzNDIsImp0aSI6IjllNGEzNDgzODRlMTQxMTQ5N2JiZGQ0MjRmMWViZDA4In0.M4bMqgMw1mdsr5Z3lOq266j4rzR1gGqNNNLIlzQKlNdREj3L4wAQuiswcLe1rDtCA3DhFT3GkAFEUeKu1cxyqg folder id 67039a9b5da274906661496c8739faxx80c600b8 执行一键安装命令
bash -c "$(curl http://docker.xiaoya.pro/update_new.sh)"查看日志
docker logs -f xiaoya设置每天六点重启小雅更新
crontab -e添加记录
0 6 * * * docker restart xiaoya
参考资料:小雅官方指南
小雅出现问题解决方案一览
内网穿透
配置cpolar配置文件(默认路径 用户/.cpolar/cpolar.yml)
authtoken: MTYxYjZlZTUtMzI5NC00YjdmLThhNzQtNTUyZjhiNGVlOTdi log: /home/cpolar.log log_level: error tunnels: ssh: proto: tcp addr: 22 website: proto: http addr: 80 movie: proto: http addr: 5678启用cpolar
cpolar start ssh movie -log=/home/cpolar.log & # 或者开启全部 cpolar start-all -log=/home/cpolar.log &通过cpolar进行免费的内网穿透,首先先将管理页和ssh开放到公网,现在可以通过以下命令ssh连接openwrt
ssh root@15.tcp.cpolar.top -p 13980其中-p是指定端口,且tcp://的前缀不需要添加

参考资料:
微信聊天机器人构建
由于因为一些原因导致和服务器的连接丢失,先用wsl进行测试
拉取镜像
docker pull dannicool/docker-wechatbot-webhook部署容器(注意,此处我的端口映射由于宿主机占用了3001端口,于是修改了宿主机的映射端口为7788)
sudo docker run -d \ --name wxBot \ -p 7788:3001 \ -e LOGIN_API_TOKEN="zaizai" \ -e RECVD_MSG_API="http://localhost:7789/receive" \ dannicool/docker-wechatbot-webhook扫码登录(注意这里的端口要访问宿主机的端口,token为上面的Login_api_token)
https://localhost:7788/login?token=[YOUR_PERSONAL_TOKEN]然后按照该格式先发送api即可

但是项目不太稳定,仍会出现一些频繁的掉线问题,仓库issue提到可以换用老版本如2.5.2恢复正常,打算后期再换版本测试
尚待配置/搞清楚的功能
zerotier实现异地组网
adguardhome的DNS拦截的作用
内网穿透(zerotier实现使用家里的梯子/搭建网站)
ollama微调自定义模型
参考资料:
中途出现的问题
- 更改磁盘挂载
在拉取docker的时候发现软路由挂载到了U盘上,细看docker根目录上发现居然只剩200多MB,于是进行硬盘重新挂载
lsblk命令输出如下:
[root@OpenWrt ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 702.7M 0 loop /overlay
sda 8:0 0 111.8G 0 disk
├─sda1 8:1 0 100M 0 part
├─sda2 8:2 0 16M 0 part
├─sda3 8:3 0 111G 0 part
└─sda4 8:4 0 679M 0 part
sdb 8:16 1 7.5G 0 disk
├─sdb1 8:17 1 32M 0 part /boot
│ /boot
├─sdb2 8:18 1 944M 0 part /rom
└─sdb3 8:19 1 239K 0 part
zram0 253:0 0 1.9G 0 disk [SWAP]
df -h输出如下:
Filesystem Size Used Available Use% Mounted on
/dev/root 241.5M 241.5M 0 100% /rom
tmpfs 3.8G 14.9M 3.8G 0% /tmp
/dev/loop0 700.7M 409.5M 291.2M 58% /overlay
overlayfs:/overlay 700.7M 409.5M 291.2M 58% /
/dev/sdb1 31.9M 9.6M 22.4M 30% /boot
/dev/sdb1 31.9M 9.6M 22.4M 30% /boot
tmpfs 512.0K 0 512.0K 0% /dev
cgroup 3.8G 0 3.8G 0% /sys/fs/cgroup
overlayfs:/overlay 700.7M 409.5M 291.2M 58% /docker
可见系统能识别到固态硬盘但是没挂载
# 格式化固态硬盘分区
mkfs.ext4 /dev/sda3
#挂载固态硬盘作为主存储
mount /dev/sda3 /mnt
#复制当前/overlay的内容到固态硬盘
cp -a /overlay/* /mnt/
#编辑配置文件,让系统自动将硬盘挂载到/overlay上
vi /etc/config/fstab
添加或修改以下内容:
config mount
option target '/overlay'
option device '/dev/sda3'
option fstype 'ext4'
option options 'rw,sync'
option enabled '1'
option enabled_fsck '0'
在编辑完 fstab 文件后,卸载刚才手动挂载的固态硬盘
umount /mnt
然后通过重启系统来验证是否可以成功将固态硬盘挂载为 /overlay
reboot

检查应用进程状态(openwrt默认没有systemctl,是通过procd进行交互)
如检查nginx的运行情况,则通过以下命令检查:
/etc/init.d/nginx status通过一个链接安装包(wget)
解压
.tar.gz 文件并不是一个 ZIP 压缩包,而是使用 tar 和 gzip 压缩的文件。所以不能使用 unzip 来解压,而应该使用 tar 工具。
tar -xvzf loophole-cli_1.0.0-beta.15_linux_64bit.tar.gz
查看cpu温度
查看cpu温度通过sensors进行检测
[root@OpenWrt zaizai]# sensors acpitz-acpi-0 Adapter: ACPI interface temp1: +27.8°C temp2: +29.8°C coretemp-isa-0000 Adapter: ISA adapter Package id 0: +41.0°C (high = +82.0°C, crit = +102.0°C) Core 0: +41.0°C (high = +82.0°C, crit = +102.0°C) Core 1: +34.0°C (high = +82.0°C, crit = +102.0°C)vim不能正确显示中文
当在 Docker 容器或 Linux 环境中使用 vim 但不能正确显示中文字符时,通常是由于缺少对中文字符的支持或相关配置问题。
容器或系统可能没有配置正确的 locale 来支持中文字符。检查系统locale
locale
如果 LANG 或 LC_CTYPE 没有设置为支持中文(如 zh_CN.UTF-8),你需要安装并配置中文 locale。
对于基于 Debian/Ubuntu 的系统,运行以下命令来安装中文 locale:
apt-get update
apt-get install locales
locale-gen zh_CN.UTF-8
并将其设置成默认
export LANG=zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
tips:进入docker容器命令是
docker exec -it 容器名 /bin/bash(或者/bin/sh)
关闭ubuntu中mysql开机自启动(占用了大量后台内存)
启用和停止mysql服务
service mysql start service mysql stop启用和关闭开机自启动服务
update-rc.d -f mysql remove update-rc.d -f mysql defaults部分版本Ubuntu中mysql会使用UpStart替代传统的/sbin/init,在启动的同时运行服务和设定的任务,需要修改mysql的运行级别:
$sudo vi /etc/init/mysql.conf将start on runlevel [2345]改为start on runlevel [!0123456]后就可以了
配置旁路网关的最佳实践
参考资料:配置旁路网关
mosdns配置:https://github.com/IrineSistiana/mosdns/discussions/455
网络dns配置集合:https://ainiya.cc/index.php/archives/16/
广告拦截检测:https://d3ward.github.io/toolz/adblock
qbittorrent配置:https://www.hao4k.cn/thread-60781-1-1.html / https://www.icode504.com/posts/71.html
mytoken:540d96854c2a4a5c8d8e7740450f0816
refreshtoken:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJjNmIxMjY0M2U5NzM0ZmUwYWM2OTRiYmZmOWQzYTM5YSIsImF1ZCI6Ijc2OTE3Y2NjY2Q0NDQxYzM5NDU3YTA0ZjYwODRmYjJmIiwiZXhwIjoxNzQyNTcxNzYxLCJpYXQiOjE3MzQ3OTU3NjEsImp0aSI6ImU2OWEyYjQ0ZjAzOTRkOGFhOTFlYTM4YmFmMzQ4NGZmIn0.IHuAUxWgPZUhe2WQKnoeHDltZnLB1MXyhkRgYdzXsQFREiW4YaCh0-Vdc2o6186Ja9nqAytW7nS_mdrhw-w_Ug
filetoken:676680e755ca0f3bba1a406f9e6e5a74b515a48a
adguardhome核心文件问题
需要 SSH 到路由器主机,将 /usr/share/AdGuardHome/update_core.sh 文件中第 168 行 wget-ssl 修改为 wget,之后点击 “更新核心” 就可以正常更新核心版本了。 sh -x /usr/share/AdGuardHome/update_core.sh
搭建博客
使用nginx反向代理将192.168.2.104:8080的端口流量转发到192.168.2.103:8080,再通过192.168.2.104进行内网穿透

参考文档:
解决安装系统后重启系统出现Error:No operating system found
起初翻阅了许多资料,调整了主机的bios启动设置为uefi,然后通过Pe系统确定了主机的硬盘分区就是GPT,但是还是一直出现问题,前前后后还换用了不同的系统镜像,也尝试过安装旧版本的系统镜像,还是不行,甚至专门找专业系统安装的也不行,而且最奇怪的是只能安装windows和openwrt系统,其余的系统如linux(包括ubuntu,centesOS,kali,debian等)都会出现问题,因此一气之下决定自己来
然后终于在这篇博客中找到了一丝线索,发现在老式cpu(10代以前)下只支持MBR的分区以及对应legacy的bios引导方式,因此通过winpe系统将硬盘的分区改为了MBR,并在bios上设定启动方式为legacy first,然后在引导盘上烧录MBR分区的系统,并重新安装系统,拔掉引导盘后重启即可
Debian系统启用和关闭GUI界面
启用命令行界面
1.打开grup配置文件
sudo nano /etc/default/grub
2.修改
GRUB_CMDLINE_LINUX=”” 修改为:GRUB_CMDLINE_LINUX=”text”
3.更新grub
sudo update-grub
4.更新系统服务管理器配置
sudo systemctl set-default multi-user.target
5.重启:
sudo init 6
启动图形界面
1.打开grup配置文件
sudo nano /etc/default/grub
2.修改
GRUB_CMDLINE_LINUX=”text” 修改为:GRUB_CMDLINE_LINUX=””
3.更新grub
sudo update-grub
4.更新系统服务管理器配置
sudo systemctl set-default multi-user.target
5.重启:
init5
开放mysql服务
一、开放3306端口
1、首先查看端口是否打开
netstat -an|grep 33061
此图为开启3306端口的截图;
2、打开mysql配置文件
将bind-address = 127.0.0.1注销
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf1
3、重启动ubuntu
sudo reboot1
4、再次查看端口是否打开
netstat -an|grep 33061
此时端口3306已经打开
二、开启远程连接
登录:mysql -u root -p <回车> 然后输入密码
update mysql.user set host = '%' where user ='root' limit 1;1
flush privileges;1
重启服务器:
sudo service mysql restart
sudo service mysql start
sudo service mysql stop123
到此所以操作完成,可以在任何主机连接此mysql数据库服务器了。
记得要重启mysql
eg:/etc/init.d/mysql restart