前端    2020-12-19 12:00:08    1343    0    0

手机上买了极客帮的课程,但是手机屏幕太小了,希望在电脑上看。但是电脑上打开极客帮会弹窗,不管是Linux还是ChromeOS上,都会有弹窗,而且每打开一个页面都会弹。

极客帮ChromeOS弹窗

Geekbang Linux弹窗

作为一个刚学了几天前端的新手。。。我决定解决一下这个问题。在Chrome中打开开发者工具,看看到底发生了什么。发现console下有个报错。

console log

报错内容Not allowed to launch 'bytedance://dispatch_message/' because a user gesture is required.。不难发现是字节跳动想打开一个东西,我只是想看看极客帮,把头条屏蔽了还是没什么问题的。那么问题来了,这是哪个文件发出来的呢。

切换到Network,refresh一下。

toutiao

toutiao.js后就dispatch_message了,证据确凿,于是点了一下toutiao.js,复制了以下Request URL。加入广告拦截插件,比如AdBlocks,顺利解决。

adblocks

2020-11-25 04:53:25    466    0    0

0. 背景

这个项目是配合NotiSyncNotiSync-Server使用的,关于这两个项目的介绍在这里。在做到通知同步的通知的同时,增加手机信息概览和短信回复的功能。下面是使用方式的简单展示

1. 使用方式

程序启动时会直接进入一个类似于登录页面的界面,这里就是配置信息,包含通信协议,服务器地址,服务器端口,和UUID。协议支持http和https,地址可以是IP地址,也可以是域名。
LoginView

配置好后即可使用用登录按钮登录。

登录后即进入主界面:
Detail

左侧是软件能查看的信息,分别是手机详情,手机通知和手机短信。主界面默认停留在手机详情页。

当点击左侧的Notifications时,进入手机通知页,这里将显示所有在本客户端启动之后手机收到的通知:
Notifications

当点击Messages时,进入手机短信页。这里将显示所有的手机短信,并且可以当场回复短信。在最右侧下方输入框输入后点击Send按钮,短信就会发送出去。如果想要发送的联系人不在已有对话框中,可点击New Message以新建短信,在输入对方电话号码后即可向对方发送短信。
Messages

2. 注意事项

v0.2依然不是正式版,在短信上存在功能性Bug,界面性能也需要优化。

NanoPi R2S R2S systemd Linux Ubuntu 计算机网络 软路由    2020-11-25 01:12:03    790    0    0

0.背景

旁路由折腾熟悉之后,我又开始觊觎软路由的方便,于是不久前借着双十一,下单了早有耳闻的NanoPi R2S,177大洋,有散热片有风扇有外壳,还算划算。奈何我跟OpenWRT八字不合,上次树莓派是半天LUCI进不去,这次是FriendWRT官方固件砍掉了tproxy模式。在重新编译固件依然无法成功富强之后。我又掏出了祖传技能,直接用了FriendlyCore(基于Ubuntu)秒杀了富强网关的需求。这个方式也非常通用,不只是R2S,也不仅限于Ubuntu,理论上可以将任何一个双网口的运行Linux并且使用Systemd的机器变成软路由。

1. 配置Wan侧

刷好FriendlyCore之后直接插卡开机,然后就能在路由器管理页面看到该设备的ip地址。我们ssh上去就可以进行配置了,默认用户名和密码都是pi。

配置文件参考:
systemd-network

对应这台机器就是直接在终端执行

  1. sudo vim /etc/systemd/network/eth0.network

然后把下面的内容复制进去。

  1. [Match]
  2. Name=eth0
  3. [Network]
  4. DHCP=ipv4

2. 配置Lan侧

一个软路由本质上就是开启了DHCP服务,DNS服务,网络层包转发的多网口计算机。因此在常规的配置中,通常会配置dnsmasq来做DHCP服务器,并同时担任DNS服务器。然后通过sysctl打开ip包转发,然后用iptables完成包的转发。

但是现在,systemd都包含了这些功能,不需到别的地方到处配置,也不需要再多装什么包,只需把systemd配置好就能完成这些。

我们依然是进入终端,执行

  1. sudo vim /etc/systemd/network/eth1.network

然后把下面的内容复制粘贴进去后,保存并退出。

  1. [Match]
  2. Name=eth1
  3. [Network]
  4. Address=192.168.25.1/24
  5. DHCPServer=true
  6. IPMasquerade=true
  7. [DHCPServer]
  8. PoolOffset=100
  9. PoolSize=50
  10. EmitDNS=yes
  11. DNS=223.5.5.5

/etc/syst

树莓派    2020-08-27 14:46:27    879    0    0

本来想在Ubuntu上编译安装Kodi,实现类似LibreELEC的效果。折腾一天发现和apt安装区别不大,不仅卡,而且Ubuntu这个是Server版本,默认最多1080分辨率,看起来很模糊。本文仅记录折腾过程。

操作步骤主要参考:
xmbc项目README

1. 下载源代码

  1. git clone https://github.com/xbmc/xbmc kodi

2. 安装依赖

  1. 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
树莓派 Linux Ubuntu 计算机网络 软路由    2020-08-16 00:20:15    1567    0    0

想拿树莓派搭热点试试看,玩了一下OpenWrt,发现一旦进不了luci就会很麻烦。想起几个月前就有新闻的Raspberry Pi OS的64位,去看看怎么样了,发现还没发布。看到Ubuntu有arm 64的image,顺手体验一下。

0. 环境

树莓派4, 4G版本
系统镜像Ubuntu server 20.04

目的:有线网口作为wan口连接到互联网,无线网口作为热点发射WiFi。

1. 装系统

安装

下好的镜像格式是img.xz,解压后用Win32DiskImager烧录。也可以直接不解压,使用balena-etcher烧录。烧录完成后插电就能开机,第一次开机会自动运行一些东西,当屏幕出现Ubuntu Login即可登录。默认用户名和密码都是ubuntu。如果出现登录失败,是正常现象,等一两分钟就好了。

换源

默认的Ubuntu镜像源在海外,速度太慢了,这里可以换成清华源

  1. 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)

或者使用命令替换:

  1. sudo sed -i 's/\"1\"/\"0\"/g' /etc/apt/apt.conf.d/10periodic

切换时区

  1. sudo timedatectl set-timezone Asia/Shanghai

2. 搭建WiFi热点

首先,安装所需要的包sudo apt install hostapd dnsmasq,然后将下面的文件分别更改为后面列出的内容。下面命令无特殊说明都在root权限下执行。

配置ap

(1) vim /etc/hostpapd/hostapd.conf

把下面的内容复制粘贴进去,注意更改wifi名称和密码

  1. interfa
2020-07-12 01:08:45    352    0    0
# 零、个人期待 Deepin是我第一个长期使用的Linux发行版,那时候我刚大二,deepin还在15.2,我还在用四代低压的i5。这个发行版用起来真的非常舒适,比Ubuntu漂亮,比Windows流畅。而且QQ的调教非常好,满足了看各种班级群学院群的需求。 如今我早已毕业,~~我已经入了Arch邪教,~~但是对于这个领我进入Linux大门的发行版还是非常怀念。今天的Deepin已经成为
2020-04-29 04:48:59    451    0    0

0. 目的

目前各种垃圾短信,营销广告,App通知,防不胜防,有的时候,短信是有用的,被拦截。有的时候是广告被放行,有的App必须通知权限,但是不想接到所有推送。那么如何才能彻底解决呢?本作提供一偏方,现在大家普遍不止一台手机,不如就让旧手机接受所有通知,由用户制定推送规则,新手机则接受推送。

这个App的目标是实现安卓设备之间的通知同步,通过添加配置,用户自行决定本机捕获到的通知向哪个服务器推送,以及从哪个服务器获得通知。

1. 客户端使用简介

客户端借鉴某些知名科学上网工具的主界面,只现实配置列表,右上角菜单可以选择手动添加配置,从剪切板添加配置,或者设置给予读取通知权限,或者查看已经捕获的通知。

NotiSync 主界面

如果期望NotiSync作为发送端,请务必赋予读取通知的权限。

在添加配置界面,或者修改配置的界面中,第一行为是否运行,当开关处于关闭状态,这个配置将不生效。第二行是备注,用来让用户区分不同配置。第三行是服务器地址,第四行是端口,本App目前使用Http协议,后期将使用https协议以加密传输,保护通知内容不被泄露。最后一项是UUID,这是服务端用来区分用户的唯一标志。最后是工作模式,自行选择作为发送端或者接受端。目前配置文件没有作正确性检查,请自行填写正确的配置。点击右上角的勾即可保存,直接返回则不保存变更。

NotiSync 配置页面

2. 服务端使用简介

对,没看错,服务端也是自己配置。让自己的通知隐私掌握在自己的手里。

该项目用到了Golang的一个项目,使用前请执行:

go get -u github.com/go-sql-driver/mysql

服务器依赖于MySQL或者MariaDB,在使用前,需准备好用户名和密码和数据库名称,并在按下面格式写好JSON文件:

  1. {
  2. "UserName":"user name",
  3. "Password":"password",
  4. "DBName":"database name"
  5. }

在准备好的数据库内,需有一张Users表,用来记录uuid和自动分配id,id为数字,然后需根据id创建对应的用来存储通知数据的表。后面将开放添加用户的参数,以实现自动添加用户。。。

默认读取js

树莓派    2020-02-21 02:12:40    1819    0    0

0. 背景

家里有一台07年的老台式机,经简单升级依然可以流畅在线播放视频,浏览网页。但是最近移动位置后网线迁移不方便,刚好,多年吃灰的树莓派就派上了用场

台式机没有无线网络,如果没有网线还要上网就必须将WiFi转换成有线的形式。

手机可以通过USB共享网络,但是每次都会自动新建一个网络,看着实在烦,而且我爸手机不支持将连接USB的默认方式设置为共享网络,用起来麻烦。

各种无线网卡倒是便宜,但是受疫情影响,现在买基本不要指望,所以只能就地取材,树莓派4都出了,3B早就吃灰多年了,不如现在用起来。

1. 思路

总体思路非常简单,就是把WiFi变成WAN口,RJ45变成LAN。

再说直白点,就是通过WiFi连接到网络后,开启ip转发,装DHCP服务端

本次操作基本参考【树莓派】在Raspbian下将wifi中继为有线网络

系统使用当前最新版本的Raspbian Buster ,全程不需要GUI,完全可以选择Raspbian Buster Lite

2. 操作步骤

以下命令无特殊说明均建议以root权限执行

(1) 连接WiFi

Raspbian自带raspi-config工具,直接通过终端操作就行,而且下次开机自动连接,非常省事。如果想后续操作方便一点,可以在操作完成之后ifconfig一下,查看当前ip地址,然后通过raspi-config把ssh打开。之后通过ssh操作会方便不少,复制粘贴命令方便多了

(2) 配置网桥

  1. apt install bridge-utils -y
  2. brctl addbr br-lan
  3. brctl addif br-lan eth0
  4. ifconfig br-lan 192.168.3.1 up #这里的地址随便,和Wan侧不在一个网段就行
  5. ifconfig eth0 0.0.0.0 up

(3) 配置IP转发

原文提到三种,这里我选自己最习惯的一种。

  1. sysctl net.ipv4.ip_forward=1

(4) 配置iptables

  1. iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

(5

LibreELEC Kodi 树莓派    2020-01-31 13:38:02    4738    0    0

遥想半年前,树莓派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. 遥控器:树莓派可以用键鼠控制,但是作为一个电视盒子还是太麻烦。进入设置->服务->控制,打开

Leanote Caddy Linux    2020-01-25 14:59:05    303    0    0

0.背景

这个博客搭建完成一年多了,一直懒得折腾。最近发现一款Go语言写的http服务器不错,拿来折腾看看。

1. 啥是Caddy

Caddy服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。(Copy自Wikipedia

2. Caddy安装

以下命令均在root权限下执行

1. 安装

可以通过手动去官网或者Github下载,也可以选择直接使用一键脚本安装。
我这个人懒,直接使用官方提供的一键脚本(手动狗头)
在终端中执行以下命令即可

  1. curl https://getcaddy.com | bash -s personal

2. 配置Caddy

这里主要为caddy创建所需的目录和文件。

  1. mkdir /etc/caddy
  2. touch /etc/caddy/Caddyfile
  3. chown -R root:www-data /etc/caddy

因Caddy默认开启HTTPS,故需要创建ssl证书的目录

  1. mkdir /etc/ssl/caddy
  2. chown -R www-data:root /etc/ssl/caddy
  3. chmod 0770 /etc/ssl/caddy

网站根目录,其实可以不配置,这里Caddy仅作端口转发用

  1. mkdir /var/www
  2. chown www-data:www-data /var/www

最后,配置systemd

  1. sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
  2. systemctl daemon-reload
  3. systemctl enable caddy.service

最后的最后,配置Caddyfile,将以下

2/3