cloudflare 科学环境

2024/11/24更新:项目已失效 warp+ 流量获取 tg机器人 windows客户端 设置代理端口+Proxy SwitchyOmega分流 订阅转clash等订阅链接 docker pull vvbbnn00/warp-clash-api vvbbnn00/WARP-Clash-API: 该项目可以让你通过订阅的方式使用Cloudflare WARP+,自动获取流量。This project enables you to use Cloudflare WARP+ through subscription, automatically acquiring traffic. (github.com) 展示地址 click here cloudflare 反向代理 开源项目 3Kmfi6HP/EDtunnel: Use Cloudflare pages and worker serverless to implement VLESS protocol (github.com) 参考文章 免费翻墙,批量vless节点,反代伪装网页,轻松跑满本地宽带 (jdssl.top) 展示地址 click here

April 4, 2024 · 1 min · laning

Jellyfin on NanoPC-T4

前言 受限于jellyfin对rk3399等ARM处理器视频硬件解码的支持,搭建的Jellyfin服务都采用客户端解码。 docker部署Jellifin docker-compose.yml文件 version: '3.3' services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin network_mode: 'host' volumes: - ./config:/config - ./cache:/cache - ./media:/media # - /path/to/media2:/media2:ro restart: 'unless-stopped' # Optional - alternative address used for autodiscovery environment: - JELLYFIN_PublishedServerUrl=http://example.com #- http_proxy=http://127.0.0.1:7890 #- https_proxy=http://127.0.0.1:7890 # Optional - may be necessary for docker healthcheck to pass if running in host network mode # extra_hosts: # - 'host.docker.internal:host-gateway' 一些说明: 采用了host模式,无需进行端口映射 https端口8920,http端口8096 可通过环境变量配置http和https代理 部署https证书 阿里云申请免费证书,有效期3个月,服务器类型选IIS 上传证书到./config文件夹中 在Jellyfin页面中配置证书文件地址和密码 ...

March 19, 2024 · 1 min · laning

gitea服务安装配置

前言 关于gitea是什么,以及基本的配置可以参考官方文档 特性 此为内网使用,因而没有配置caddy或nginx等代理 配置 1.启动docker服务 docker-compose up -d 2.IP:port通过浏览器配置

May 27, 2023 · 1 min · laning

vscode-web服务与配置

前言 如果需要在多台设备之间来进行开发工作,频繁的配置开发环境无疑是很消耗精力的事情。而vscode-web提供了通过浏览器来编写代码的环境,因而理论上,你可以在任何一台机器上继续你的工作。 配置过程 1.启动docker服务 docker-compose up -d 2.进入容器查看密钥 #进入容器 docker exec -it code-server bash #查看密钥 cat ~/.config/code-server/config.yaml 3.更换容器的apt源 参考文档:清华开源软件镜像站Debian Help #换源完成后执行 apt update 4.安装C/C++环境 apt install build-essential 5.解决python命令找不到 ln -s /usr/bin/python3 /usr/bin/python 6.安装Rust开发环境 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 7.进入web界面,自行安装喜欢的插件

May 27, 2023 · 1 min · laning

bingAI本地部署

前言 自从chatGPT3.0问世以后,新一轮的人工智能浪潮深刻改变了我们的生活。相比于深蓝击败人类象棋冠军以及阿尔法狗击败人类围棋冠军,chatGPT更能称为划时代的人工智能产品,因为它太接近我们的生活了(通用人工智能)。关于它能干什么以及它与newbing的关系这里不多介绍,感兴趣的可以自己寻找这方面的科普视频。本文主要分享如何通过docker部署newbing,从而达到无需魔法访问newbing的目的。 开源项目地址 go-proxy-bingai 特性 使用caddy来进行反向代理,自动配置域名证书 实践过程 拉取本目录下的文件 替换caddy文件下的Caddyfile文件中的yourdomain.com字段为自己的域名 命令行执行docker-compose up -d畅享服务吧。

May 27, 2023 · 1 min · laning

NanoPC-T4开发记录

前言 咸鱼200块淘了块RK3399的T4开发板(裸板),4GRAM,16GBemmc,比起树莓派,价格算很香的了 制作外壳 因为没有外壳,官方的外壳售价一言难尽,并且没有预留GPIO的空间,尝试自己画亚克力外壳。先是用了3DMAX,可惜商家需要dwg格式(即需要autoCAD),简单学习就能上手,需要学习rec,dli等命令的使用。同时经过测量需要M3的六角铜柱,以及M3螺丝,螺母,具体规格可以参考Raspberry-Pi/NanoPC-T4 at master · laningya/Raspberry-Pi (github.com) 烧录系统 常用的烧录方式有两种(直接将系统安装在SD卡,读写速度有点慢,且步骤相对简单,不作记录) 从windows或者linux烧录到emmc 从sd卡烧录到emmc 以上两种方式,官方文档都提供了详细的步骤。 主要记录在emmc中安装armbian系统 下载或自己编译Armbian的镜像文件。此处推荐内核版本为4.4或4.19,至于原因后续会讲到,如果不想编译,可以直接在官方提供的链接下载。 将镜像写入sd卡。windows平台下推荐使用win32Diskimage,linux平台下推荐使用dd命令,它看起来是这样 sudo dd if=imagePath of=/dev/sdx bs=4M status=progress 将Armbian系统写入到emmc中。Armbian提供了 armbian-config的工具,命令行执行: sudo armbian-config 依次选择System—>Install—>Boot from eMMC - system on eMMC 基本初始化 apt换源以及armbian换源 参考清华大学开源软件镜像站帮助文档 Debian apt换源参考文档 Armbian换源参考文档 ifconfig普通用户无法执行问题 vim ~/.bashrc #在文件末尾添加 export PATH=$PATH:/sbin:/usr/sbin #保存后命令行执行 source ~/.bashrc WiringPI for RK3399 安装 参考官方文档 说明: 官方的wiringpi for rk3399 的.deb文件通过解包可以发现,官方只为NanoPC-T4开发板适配了4.x内核,这也是为什么推荐安装4.4内核的armbian系统。 PWM风扇配置 rk3399真的太热了,只配置散热片的情况下,待机状态下,cpu温度都有40摄氏度,所以还是推荐购买官方的PWM风扇,12V供电且开发板预留了接口,有了散热风扇后,cpu35摄氏度左右,除了贵没啥缺点,。以下脚本也只支持4.x内核版本 class="wp-block-preformatted">#文件路径:/usr/bin #文件名称:start-rk3399-pwm-fan.sh #以下为文件内容: #!/bin/bash echo $$ > /var/run/fan.pid echo 0 > /sys/class/pwm/pwmchip1/export echo 0 > /sys/class/pwm/pwmchip1/pwm0/enable echo 50000 > /sys/class/pwm/pwmchip1/pwm0/period echo 1 > /sys/class/pwm/pwmchip1/pwm0/enable while true do temp=$(cat /sys/class/thermal/thermal_zone0/temp) if [ $temp -gt 48000 ]; then echo 1000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle; elif [ $temp -gt 43000 ]; then echo 20000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle; elif [ $temp -gt 38000 ]; then echo 30000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle; elif [ $temp -gt 33000 ]; then echo 40000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle; else echo 50000 > /sys/class/pwm/pwmchip1/pwm0/duty_cycle; fi sleep 1s; done #文件路径:/lib/systemd/system #文件名称:pwm-fan.service #以下为文件内容 [Unit]Description=pwm-fan After=rc.local.service [Service] Type=oneshot KillMode=control-group WorkingDirectory=/tmp ExecStart=/usr/bin/start-rk3399-pwm-fan.sh [Install] WantedBy=multi-user.target Alias=pwm-fan.service 配置开机自启动 ...

May 27, 2023 · 2 min · laning

校园电信宽带自动连接脚本

项目起因 校园电信宽带一大痛点是在路由器断电后,需要手动进行身份认证。在外面遇到寝室断电或者早上赶早八,而没有连接网络,当需要远程宿舍网络时,就会很崩溃。前不久看到有人在朋友圈分享自己写的脚本,今天自己实践一下。 脚本地址 作者提供的地址:https://gist.github.com/learnerLj/e327816e735ac8f12a62d18029bb45f0 在此基础上,我修改了部分代码,更便于后续的部署实践 修改后的地址:https://github.com/laningya/UESTC-WORK/blob/master/%E8%87%AA%E5%8A%A8%E8%BF%9E%E6%8E%A5%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C/autoConnectNetwork.py 先看一下脚本需要提供的信息 post_url中的IP地址 post_data中userId,password,queryString 实践过程 获取脚本需要的信息 获取post_url中的IP地址和post_data中的queryString字段 (原文图片未随备份提供:images/1.png) 如图,在电信宽带认证界面的url中,172.25.249.64即为posturl中需要的IP地址;index.jsp? 之后的所有内容为post_data中queryString需要的信息。 获取post_data中的userId和password 如图,需要打开在浏览器打开f12开发者工具,如图为Google Chrome的调试页面。点击网络,保留日志,双击InterFace.do?method=login选项,选择载荷,找到其中的userId和password字段,并填入代码中,**注意:**pasaword字段后面还有个queryString字段,在步骤1中我们也有一个相同名称的字段,而程序需要的是步骤1中的字段。 至此,我们就获取到脚本需要的所有信息,即可以运行脚本。 在树莓派等设备上部署自动执行脚本 树莓派部署自动执行脚本的形式有很多,本次采用crontab服务,在pi用户下,命令行执行以下命令 cd && mkdir .script && cd .script && touch autoConnectNetwork.py 通过vim或者nano编辑器将脚本内容添加到 autoConnectNetwork.py中 添加crontab任务,在命令行执行 crontab -e 在文件末尾添加 * * * * * /usr/bin/python /home/pi/.script/autoConnectNetwork.py > /dev/null 2>&1 & 通过Docker部署脚本 下载项目文件和Docker环境以及填写配置文件。Docker的安装方法可以参考官方文档,Docker部署文件地址为:https://github.com/laningya/UESTC-WORK/tree/master/%E8%87%AA%E5%8A%A8%E8%BF%9E%E6%8E%A5%E7%94%B5%E4%BF%A1%E7%BD%91%E7%BB%9C/Docker 需要的配置与前面一致,配置文件路径为Docker/config/config.txt,填入必要的信息。 构建镜像。如果你是Linux用户,在Docker文件夹下,命令行执行 docker build --no-cache -t laningya/uestc_auto_connect_network:v1 . 不要忘记复制后面的点 说明: build:docker构建镜像的命令 --no-cache:忽略缓存 -t:指定构建后的镜像名 (原文图片未随备份提供:images/docker_build.png) 运行镜像。还是在/Docker目录下,命令行执行 docker run -itd --restart=always --net=host --name autoConnectNetwork laningya/uestc_auto_connect_network:v1 说明: run:docker运行容器的命令 -itd:可以简单理解为在后台执行 --restart=always:容器运行出现错误时,自动尝试重启,关键参数,不能轻易取消 --net=host:指定容器网络为host模式,便于直接访问路由器 --name utoConnectNetwork 指定容器名,便于后续管理 laningya/uestc_auto_connect_network:v1 我们前面构建的镜像名称 (原文图片未随备份提供:images/docker_run_ps.png)

April 6, 2023 · 1 min · laning

CSAPP学习笔记

深入理解计算机系统(C语言、数据结构、微嵌、编译原理、数电、模电) 第一章:计算机系统漫游 编译系统 hello.c->hello.i gcc -E hello.c -o hello.i hello.i->hello.s gcc -S hello.i -o hello.s hello.s->hello.o gcc -c hello.s -o hello.o hello.o->hello gcc hello.o -o hello 第二章:信息的表示和处理 //数据在不同架构处理器下的表示 #include <stdio.h> typedef unsigned char * byte_pointer; void show_bytes(byte_pointer start, size_t led) { size_t i; for (i = 0 ;i < led; i++) { printf("%.2x",start[i]); } printf("\n"); } void show_int(int x) { show_bytes((byte_pointer)&x,sizeof(int)); } void show_float(float x) { show_bytes((byte_pointer)&x,sizeof(float)); } void show_pointer(void *x) { show_bytes((byte_pointer)&x,sizeof(void *)); } int main() { int i =12345; show_int(i); return 0; } 整数、浮点数在计算机内部的表示与运算 第三章:程序的机器级表示 while、do-while、for性能分析 三种都是通过条件测试和跳转指令实现的。 ...

July 14, 2022 · 2 min · laning

OpenStick折腾日记

项目起因 最近网上火起了用淘宝8.8购买随身WIFI,其处理器为msm8916,这是一款4核ARMV8架构的64位处理器,酷安 社区有大佬通过逆向工程为其编译了Debian、OpenWRT镜像,本次安装的是Debian11的镜像。 环境准备 一台Windows电脑 随身Wifi 安装过程 备份原系统 为了防止我们操作失误将Stick刷成砖,我们需要先备份Stick原系统。 备份工具下载地址 提取码:4w5h 安装9008驱动,按住随身WIFI上的按钮插入电脑USB口,在电脑设备管理器-端口设备里能看到 9008 的 COM 设备就说明连接上了。 安装miko,打开文件夹MiKo_Pro,双击安装miko并将 Loader 粘贴到安装的路径下面(默认在 C:\Program Files (x86)\miko_service_tool_pro\miko_service_tool_pro),打开 Loader 然后在 miko 里依次选择 Read – Partition Backup/Earese – 点击左下角 Load Partition Structure 看到右边有系统信息的输出就说明连上了。 然后点击 Read Full Image 选个路径,取个名字就开始全量备份救砖能用的 .bin 文件。过程会比较慢,可能要十几分钟。等到跑完进度条 100% 右边的输出显示 success 就备份好了,我们就能开始随意折腾。 进入fastboot模式,备份完后重新插拔(这次重启不需要按随身wifi上的按钮),然后打开搞机工具箱,(注意此处应该显示有一台设备)选择线刷专区,重启到 Fastboot,一般重启 fastboot 后随身 Wi-Fi 会亮红灯。 刷入新系统 下载base.zip 并解压;下载debian.zip 并解压 在base文件夹下双击执行flash.bat,注意期间可能需要几次回车,完成后关闭窗口。 在debian文件夹下双击执行flash.bat,同样注意需要几次回车,完成后关闭窗口即可。 刷机完成。 基本使用 Windows通过ssh连接Stick 大佬提供的系统镜像默认开启了ssh服务,但是我们需要通过NDIS来为Stick分配网络地址,此时我们可能会遇到驱动问题,此处我建议看看OpenStick Wiki 提供的解决方案,此处我做一点补充说明,安装上面的操作后,我们会在设备管理器中发现一个未知设备,为次设备添加NDIS驱动即可。 Stick默认的IP地址为192.168.68.1 默认用户为user 密码为1 ssh [email protected] 为Stick连接Wifi 虽然随身WIFI在购买时可能厂商提供了免费的流量套餐,但是,这种免费一般都是限额的,所以我们此处考虑使用nmcli工具在命令行为OpenStick连接我们的WIFI ...

July 11, 2022 · 1 min · laning

华迪实习

6月24日 PC与嵌入式计算机 参考微处理器与嵌入式系统设计课程内容。介绍计算机的体系结构、组成等。 开发环境及配置 介绍了在VMware中安装Ubuntu20.04LTS的方法 介绍通过运维三大神器之一sed来实现CLI换源操作,对sudo apt update命令作用做了分析介绍 安装openssh服务端,通过xshell、secureCRT、CMD、powershell等工具来实现对linux的访问,此处也介绍了systemctl命令的常用用法status、enabled、start等 介绍cd ls mkdir rm 等文件操作命令及参数 介绍文件权限管理命令chmod以及文件类型判断、文件权限修改等 介绍环境变量的概念,以及影响环境变量的多个配置文件,有系统级和用户级配置文件 介绍tar的归档打包与解包 总结 第一天实习主要工作是配置Linux(Ubuntu)环境,学习并实践Linux常用命令(主要针对的是文件管理的命令)。因为有Linux基础,学习起来相对轻松。 6月25日 vi/vim的安装与使用 vim是Linux命令行最强大的编辑器之一,快捷键操作是它最大的特点。拥有Linux基础不再过多描述这一部分 交叉编译环境的搭建 交叉编译是指在x86的平台上从源代码开始编译适用于arm架构的程序,甚至是x86_64编译arm32的程序。 Ubuntu20.04最小安装缺少基本的C的编译环境,我们可以从apt包管理器下载安装基本的编译环境 #安装为64位的环境 sudo apt install build-essential #若需要32位的函数库支持 sudo apt-get install lib32stdc++6 #为gcc编译32位程序做准备 sudo dpkg --add-architecture i386 sudo apt update sudo apt install gcc-multilib g++-multilib 至此,我们搭建了Ubuntu上编译x86和x86_64位C程序的环境,接下来我们通过SecureFX、winSCP等软件上传开发板的arm下的C语言编译器,并进行如下操作 #此为归档文件,我们用tar命令解包,注意此为绿色软件(已经编译好的二进制文件),为了Linux的使用规范,我们将其解包到/usr/local下,而/usr/local是root用户的目录,普通用户需要sudo权限才能进行写的操作 sudo tar jxvf arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linuxgnu.tar.bz2 -C /usr/local #检查是否安装完成 /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-gcc -V 至此,我们完成了检查编译环境的搭建,我们使用此环境简单编译hello world程序 /usr/local/arm-2014.05/bin/arm-none-linux-gnueabi-gcc hello.c -o hello 添加环境变量 sudo vim /etc/profile 添加以下内容 export PATH=/usr/local/arm-2014.05/bin:$PATH #使上面修改生效 source /etc/profile 6月24日 通过内核控制LDE亮灭 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> int main() { int fd; int ret; fd = open("/dev/leds",O_RDWR); if (-1==fd) { printf("打开设备失败\n"); exit(1); } while(1) { ioctl(fd,0,0); ioctl(fd,1,1); sleep(1); ioctl(fd,1,0); ioctl(fd,0,1); sleep(1); } } #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <unistd.h> int main() { int fd; int ret; fd = open("/dev/leds",O_RDWR); if (-1==fd) { printf("打开设备失败\n"); exit(1); } while(1) { ioctl(fd,0,0); ioctl(fd,0,1); sleep(1); ioctl(fd,1,0); ioctl(fd,1,1); sleep(1); } } Linux内核编译 Linux内核编译的重点是.config文件的修改,即自己需要选择适合自己机器(开发板)的套件,而我们为了简化难度,.config文件老师已经给出,我们执行下面的命令 ...

July 6, 2022 · 12 min · laning