手机上买了极客帮的课程,但是手机屏幕太小了,希望在电脑上看。但是电脑上打开极客帮会弹窗,不管是Linux还是ChromeOS上,都会有弹窗,而且每打开一个页面都会弹。
作为一个刚学了几天前端的新手。。。我决定解决一下这个问题。在Chrome中打开开发者工具,看看到底发生了什么。发现console下有个报错。
报错内容Not allowed to launch 'bytedance://dispatch_message/' because a user gesture is required.
。不难发现是字节跳动想打开一个东西,我只是想看看极客帮,把头条屏蔽了还是没什么问题的。那么问题来了,这是哪个文件发出来的呢。
切换到Network,refresh一下。
toutiao.js后就dispatch_message了,证据确凿,于是点了一下toutiao.js,复制了以下Request URL。加入广告拦截插件,比如AdBlocks,顺利解决。
这个项目是配合NotiSync和NotiSync-Server使用的,关于这两个项目的介绍在这里。在做到通知同步的通知的同时,增加手机信息概览和短信回复的功能。下面是使用方式的简单展示
程序启动时会直接进入一个类似于登录页面的界面,这里就是配置信息,包含通信协议,服务器地址,服务器端口,和UUID。协议支持http和https,地址可以是IP地址,也可以是域名。
配置好后即可使用用登录按钮登录。
登录后即进入主界面:
左侧是软件能查看的信息,分别是手机详情,手机通知和手机短信。主界面默认停留在手机详情页。
当点击左侧的Notifications时,进入手机通知页,这里将显示所有在本客户端启动之后手机收到的通知:
当点击Messages时,进入手机短信页。这里将显示所有的手机短信,并且可以当场回复短信。在最右侧下方输入框输入后点击Send按钮,短信就会发送出去。如果想要发送的联系人不在已有对话框中,可点击New Message以新建短信,在输入对方电话号码后即可向对方发送短信。
v0.2依然不是正式版,在短信上存在功能性Bug,界面性能也需要优化。
旁路由折腾熟悉之后,我又开始觊觎软路由的方便,于是不久前借着双十一,下单了早有耳闻的NanoPi R2S,177大洋,有散热片有风扇有外壳,还算划算。奈何我跟OpenWRT八字不合,上次树莓派是半天LUCI进不去,这次是FriendWRT官方固件砍掉了tproxy模式。在重新编译固件依然无法成功富强之后。我又掏出了祖传技能,直接用了FriendlyCore(基于Ubuntu)秒杀了富强网关的需求。这个方式也非常通用,不只是R2S,也不仅限于Ubuntu,理论上可以将任何一个双网口的运行Linux并且使用Systemd的机器变成软路由。
刷好FriendlyCore之后直接插卡开机,然后就能在路由器管理页面看到该设备的ip地址。我们ssh上去就可以进行配置了,默认用户名和密码都是pi。
配置文件参考:
systemd-network
对应这台机器就是直接在终端执行
sudo vim /etc/systemd/network/eth0.network
然后把下面的内容复制进去。
[Match]
Name=eth0
[Network]
DHCP=ipv4
一个软路由本质上就是开启了DHCP服务,DNS服务,网络层包转发的多网口计算机。因此在常规的配置中,通常会配置dnsmasq来做DHCP服务器,并同时担任DNS服务器。然后通过sysctl打开ip包转发,然后用iptables完成包的转发。
但是现在,systemd都包含了这些功能,不需到别的地方到处配置,也不需要再多装什么包,只需把systemd配置好就能完成这些。
我们依然是进入终端,执行
sudo vim /etc/systemd/network/eth1.network
然后把下面的内容复制粘贴进去后,保存并退出。
[Match]
Name=eth1
[Network]
Address=192.168.25.1/24
DHCPServer=true
IPMasquerade=true
[DHCPServer]
PoolOffset=100
PoolSize=50
EmitDNS=yes
DNS=223.5.5.5
/etc/syst
本来想在Ubuntu上编译安装Kodi,实现类似LibreELEC的效果。折腾一天发现和apt安装区别不大,不仅卡,而且Ubuntu这个是Server版本,默认最多1080分辨率,看起来很模糊。本文仅记录折腾过程。
操作步骤主要参考:
xmbc项目README
git clone https://github.com/xbmc/xbmc kodi
sudo apt install autoconf automake autopoint gettext autotools-dev cmake curl openjdk-8-jre gawk gcc g++ cpp gdc gperf libasound2-dev libass-dev libavahi-client-dev libavahi-common-dev libbluetooth-dev libbluray-dev libbz2-dev libcdio-dev libcec-dev libp8-platform-dev libcrossguid-dev libcurl4-openssl-dev libcwiid-dev libdbus-1-dev libegl1-mesa-dev libenca-dev libflac-dev libfontconfig1-dev libfmt-dev libfreetype6-dev libfribidi-dev libfstrcmp-dev libcrypt-dev libgif-dev libgles2-mesa-dev libglew-dev libglu1-mesa-dev libgnutls28-dev libgpg-error-dev libgtest-dev libiso9660-dev libjpeg-dev liblcms2-dev liblirc-dev libltdl-dev liblzo2-dev libmicrohttpd-dev libmysqlclient-dev libnfs-dev libogg-dev libomxil-bellagio-dev libpcre3-de
想拿树莓派搭热点试试看,玩了一下OpenWrt,发现一旦进不了luci就会很麻烦。想起几个月前就有新闻的Raspberry Pi OS的64位,去看看怎么样了,发现还没发布。看到Ubuntu有arm 64的image,顺手体验一下。
下好的镜像格式是img.xz,解压后用Win32DiskImager烧录。也可以直接不解压,使用balena-etcher烧录。烧录完成后插电就能开机,第一次开机会自动运行一些东西,当屏幕出现Ubuntu Login即可登录。默认用户名和密码都是ubuntu。如果出现登录失败,是正常现象,等一两分钟就好了。
默认的Ubuntu镜像源在海外,速度太慢了,这里可以换成清华源
sudo sed -i 's/http:\/\/ports.ubuntu.com\/ubuntu-ports/https:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu-ports/g' /etc/apt/sources.list
修改配置文件/etc/apt/apt.conf.d/10periodic,将所有值改为0(实际上也就Update-Package-Lists是1)
或者使用命令替换:
sudo sed -i 's/\"1\"/\"0\"/g' /etc/apt/apt.conf.d/10periodic
sudo timedatectl set-timezone Asia/Shanghai
首先,安装所需要的包sudo apt install hostapd dnsmasq
,然后将下面的文件分别更改为后面列出的内容。下面命令无特殊说明都在root权限下执行。
(1) vim /etc/hostpapd/hostapd.conf
把下面的内容复制粘贴进去,注意更改wifi名称和密码
interfa
目前各种垃圾短信,营销广告,App通知,防不胜防,有的时候,短信是有用的,被拦截。有的时候是广告被放行,有的App必须通知权限,但是不想接到所有推送。那么如何才能彻底解决呢?本作提供一偏方,现在大家普遍不止一台手机,不如就让旧手机接受所有通知,由用户制定推送规则,新手机则接受推送。
这个App的目标是实现安卓设备之间的通知同步,通过添加配置,用户自行决定本机捕获到的通知向哪个服务器推送,以及从哪个服务器获得通知。
客户端借鉴某些知名科学上网工具的主界面,只现实配置列表,右上角菜单可以选择手动添加配置,从剪切板添加配置,或者设置给予读取通知权限,或者查看已经捕获的通知。
如果期望NotiSync作为发送端,请务必赋予读取通知的权限。
在添加配置界面,或者修改配置的界面中,第一行为是否运行,当开关处于关闭状态,这个配置将不生效。第二行是备注,用来让用户区分不同配置。第三行是服务器地址,第四行是端口,本App目前使用Http协议,后期将使用https协议以加密传输,保护通知内容不被泄露。最后一项是UUID,这是服务端用来区分用户的唯一标志。最后是工作模式,自行选择作为发送端或者接受端。目前配置文件没有作正确性检查,请自行填写正确的配置。点击右上角的勾即可保存,直接返回则不保存变更。
对,没看错,服务端也是自己配置。让自己的通知隐私掌握在自己的手里。
该项目用到了Golang的一个项目,使用前请执行:
go get -u github.com/go-sql-driver/mysql
服务器依赖于MySQL或者MariaDB,在使用前,需准备好用户名和密码和数据库名称,并在按下面格式写好JSON文件:
{
"UserName":"user name",
"Password":"password",
"DBName":"database name"
}
在准备好的数据库内,需有一张Users表,用来记录uuid和自动分配id,id为数字,然后需根据id创建对应的用来存储通知数据的表。后面将开放添加用户的参数,以实现自动添加用户。。。
默认读取js
家里有一台07年的老台式机,经简单升级依然可以流畅在线播放视频,浏览网页。但是最近移动位置后网线迁移不方便,刚好,多年吃灰的树莓派就派上了用场
台式机没有无线网络,如果没有网线还要上网就必须将WiFi转换成有线的形式。
手机可以通过USB共享网络,但是每次都会自动新建一个网络,看着实在烦,而且我爸手机不支持将连接USB的默认方式设置为共享网络,用起来麻烦。
各种无线网卡倒是便宜,但是受疫情影响,现在买基本不要指望,所以只能就地取材,树莓派4都出了,3B早就吃灰多年了,不如现在用起来。
总体思路非常简单,就是把WiFi变成WAN口,RJ45变成LAN。
再说直白点,就是通过WiFi连接到网络后,开启ip转发,装DHCP服务端
本次操作基本参考【树莓派】在Raspbian下将wifi中继为有线网络
系统使用当前最新版本的Raspbian Buster ,全程不需要GUI,完全可以选择Raspbian Buster Lite
以下命令无特殊说明均建议以root权限执行
Raspbian自带raspi-config
工具,直接通过终端操作就行,而且下次开机自动连接,非常省事。如果想后续操作方便一点,可以在操作完成之后ifconfig
一下,查看当前ip地址,然后通过raspi-config
把ssh打开。之后通过ssh操作会方便不少,复制粘贴命令方便多了。
apt install bridge-utils -y
brctl addbr br-lan
brctl addif br-lan eth0
ifconfig br-lan 192.168.3.1 up #这里的地址随便,和Wan侧不在一个网段就行
ifconfig eth0 0.0.0.0 up
原文提到三种,这里我选自己最习惯的一种。
sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
遥想半年前,树莓派4刚发布,纸面参数相当优秀。4核A72,最大4G RAM,双USB3.0,千兆网口,支持4K输出,最高支持4K的H265硬解。然而当我怀着激动的心情刷入Raspbian,接上我那27寸的4K显示器之后,我只有一个感受:太特么卡了,硬件加速非常有问题,在线看B站都最多720P才能流畅。而且还不能全屏,全屏必卡。。。现在过年终于闲下来了,该想想怎么发挥一下这块吃灰半年的派的性能了。
既然做不了微型桌机,那就做一个机顶盒吧。从树莓派的官方下载界面可以看到,第三方支持的系统还不少,其中OSMC和LibreELEC都是类似于多媒体中心的系统,其中OSMC下载页显示,暂时还不支持树莓派4,但是LibreELEC首页可知,9.1开始有树莓派4支持,所以就下了LibreELEC。
在下载了为树莓派编译的系统镜像和LibreELEC的SD卡制作工具后,通过制作工具可以将系统镜像不经解压直接制作成启动盘,将制作好的TF卡插入树莓派4后,接上显示器,并接通电源即可启动。
进入系统之后,发现这系统只打包了英文???虽然也不是不能用,但是作为一个娱乐系统,万一以后给老人家用,没有中文怎么行。果断安装中文插件。为避免乱码,在安装并启用插件之前,先进入设置,把Interface->Skin->Fonts改成Aria based。然后下载并安装以下插件:resource.language.zh_cn-3.0.11.zip。安装完成后应该会询问是否切换中文,这时候点切换应该就好了。
为让树莓派的更像一个机顶盒,并充分发挥其优势,还应该再调整几个设置。
1. 分辨率:进入设置->系统->显示。将分辨率改成3840x2160p,刷新率看个人对界面流畅度的感知吧,个人感觉刷新率过高容易画面撕裂或者卡顿,所以调整到了最低,23.98。
2. 网络:如果比较方便的话建议使用有线网络,毕竟树莓派有千兆网口。比WiFi还是要稳定的多。
3. Samba:可以方便上传和家庭内部共享资源。进入设置->LibreELEC->服务,启用Samba,并开启自动共享外部驱动。
4. 遥控器:树莓派可以用键鼠控制,但是作为一个电视盒子还是太麻烦。进入设置->服务->控制,打开
这个博客搭建完成一年多了,一直懒得折腾。最近发现一款Go语言写的http服务器不错,拿来折腾看看。
Caddy服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。(Copy自Wikipedia)
以下命令均在root权限下执行
curl https://getcaddy.com | bash -s personal
这里主要为caddy创建所需的目录和文件。
mkdir /etc/caddy
touch /etc/caddy/Caddyfile
chown -R root:www-data /etc/caddy
因Caddy默认开启HTTPS,故需要创建ssl证书的目录
mkdir /etc/ssl/caddy
chown -R www-data:root /etc/ssl/caddy
chmod 0770 /etc/ssl/caddy
网站根目录,其实可以不配置,这里Caddy仅作端口转发用
mkdir /var/www
chown www-data:www-data /var/www
最后,配置systemd
sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
systemctl daemon-reload
systemctl enable caddy.service
最后的最后,配置Caddyfile,将以下