跳到主要内容

庸通NAS折腾

1.ssh相关

庸通的nas购买后进入termux,默认的用户名是:u0_a81,并且默认ssh的22端口映射为了8022

  • ssh登录设备
ssh -p 8022 u0_a81@ipv4
  • 将电脑的文件导入到termux的家目录
scp -P 8022 localfile u0_a81@ipv4:/data/data/com.termux/files/home/
  • 将termux家目录的文件test.txt导出到电脑当前目录
scp -P 8022 u0_a81@ipv4:/data/data/com.termux/files/home/test.txt ./localdir/
  • 在termux里安装一个软件test.apk(需要root权限)
pm install ./test.apk

2.如何把nas存储卡的某个文件夹挂载到局域网

  • samba配置文件的位置
/data/data/com.termux/files/usr/etc/samba/smb.conf
  • 编辑上述的smb.conf,末尾添加如下内容:
[YongNas]
comment = Internal storage
path = /data/data/com.termux/files/home/P1
vfs objects = aio_pthread
aio_pthread:aio open = yes
read only = no
browseable = yes
writable = yes
valid users = smb

解读:

  • path是需要共享的文件夹,这里随便设置家目录的P1文件夹(一定要检查是否存在)。
  • valid users是samba登录的名字,默认是smb,用户如果更改过这里也要同步更改。

3.如何让自己本地的sh脚本在termux开机自启动

配置开机自启动脚本的文件位置

/data/data/com.termux/files/home/.termux/termux-services.sh

这个脚本部分内容如下:

start-stop-daemon -b --start --exec /data/data/com.termux/files/usr/bin/frpc -- -c /data/data/com.termux/files/home/frpc/frpc.toml
nohup sh /data/data/com.termux/files/usr/opt/killadb.sh > /data/data/com.termux/files/home/output.log 2>&1 &

分析:
代码第二行厂家自动开机了一个adb 杀死服务。可见可以通过nohup来设置开机自启动,假设用户的脚本叫mysafe.sh那么可以在termux-services.sh脚本里的nohup下一行加入如下这一行代码实现自己的脚本开机自启动,并且脚本运行的错误日志将保存在/data/data/com.termux/files/home/mysafe_output.log。设置好后重启即可。

nohup sh /data/data/com.termux/files/home/.termux/mysafe.sh > /data/data/com.termux/files/home/mysafe_output.log 2>&1 &

4.如何实现流量原封不动的转发

背景:软件广告满天飞,如果在平板,电脑,手机都一个个安装广告屏蔽插件很麻烦,有一种办法:路由器设置默认网关为nas,然后在nas里安装一个广告屏蔽插件,然后路由器下所有设备访问互联网必须经过nas的广告过滤规则筛选,然后再交给路由器通信,这样路由器下所有设备都能广告过滤,无需安装多个过滤插件了。

思路:假设nas有一个广告过滤软件虚拟出的网卡叫tun0,处于运行状态,现在写一个脚本将nas接收到的所有流量透传到虚拟网卡tun0,然后统一转发给路由器,并且30秒自动检查,防止异常,如果异常则重启服务。

#!/system/bin/sh
# 自动检测 tun0 并自动应用路由规则(每 30 秒检测一次)

tun="tun0"
dev="eth0"
pref=18000
log_prefix="[net-setup]"

apply_rules() {
echo "$log_prefix 检测到 $tun 存在, 应用路由规则..."

# 启用 IP 转发
sysctl -w net.ipv4.ip_forward=1 >/dev/null

# 清空旧的 FORWARD 规则(防止重复)
iptables -F FORWARD

# NAT 幂等
iptables -t nat -C POSTROUTING -o $tun -j MASQUERADE 2>/dev/null || \
iptables -t nat -A POSTROUTING -o $tun -j MASQUERADE

# 主路由策略 幂等
ip rule | grep -q "lookup main pref $pref" || \
ip rule add from all table main pref $pref

# eth0 -> tun 路由策略 幂等
ip rule | grep -q "iif $dev lookup $tun" || \
ip rule add from all iif $dev table $tun pref $(expr $pref - 1)

echo "$log_prefix 路由设置完成"
}

last_state="down"

echo "$log_prefix 启动 TUN 监控,每 30 秒检测一次..."

while true; do
if ip link show $tun >/dev/null 2>&1; then
if [ "$last_state" = "down" ]; then
apply_rules
last_state="up"
fi
else
if [ "$last_state" = "up" ]; then
echo "$log_prefix $tun 消失,等待重新出现..."
last_state="down"
fi
fi

# 每 30 秒检查一次
sleep 30
done

将以上脚本加入到/data/data/com.termux/files/home/.termux/termux-services.sh让他开机自启动即可。