多平台挂载Webdav

webdav有什么用? 在日常工作应用中,我们常常有下面的需求场景:在公司没有完成的工作,可能需要在家继续办公,而我们需要同步在公司的工作进度,最朴素的解决方法就是用U盘进行拷贝,但如果你有webdav等文件传输工具,我们可以完全省去这个繁琐的过程。webdav通过挂载云盘服务到本地,在不同设备都开启webdav,即可实现资源共享;webdav是基于http的文本传输协议,这意味着如果你能接入互联网,就能实现文本共享;同时webdav可以跨平台挂载在本地使用,这意味着你不需要考虑从Linux到Windows对于中文编码方式而出现乱码不同的尴尬;同时,例如阿里云盘、群晖NAS、Google云盘等都提供了webdav服务,这意味着你可以像使用本地硬盘一样访问你的云盘资源。 声明:本人拥有群晖NAS,所以下文的配置等可能会以群晖NAS配置作为示例,但配置方法与其他云盘区别不大,有需求的可以作为参考。 Windows: Windows平台一直以其丰富的图像化软件,在这里我推荐一款好用的webdav客户端软件: RaiDrive 下载地址:https://www.raidrive.com/download RaiDrive提供可视化操作和中文界面,具体配置可自行摸索。 Linux: 图像化操作: 如果你是将Linux作为主力机的用户,并且安装了KDE、GNOME这类桌面环境,我们可以使用桌面环境的文档管理器在网络、其他位置这些地方选择挂载Webdav。 关于GNOME桌面,我的系统环境为ArchLinux+GNOME桌面,在挂载基于https的davs服务失败,但是挂载http的dav服务成功,出于安全考虑,我舍去了这种挂载方法。 命令行操作: 命令行需要安装davfs2工具: 安装: Ubuntu/Debian: sudo apt install davfs2 Arch/Manjaro:(pacman不提供这个工具,我们需要AUR来下载) yay -S davfs2 配置: /etc/davfs2/davfs2.conf 删掉前面的注释符号并修改为: use_locks 0 ignore_dav_header 1 /etc/davfs2/secrets 在文件末尾添加: https://damain:port/path username userpassword 说明:需要指定域名、端口、群晖NAS文件路径、用户名、密码 配置开机自动挂载: /etc/fstab 在文件末尾添加: https://damain:port/path /mnt/webdav davfs rw,user,uid=username,noauto 0 0 说明: username为系统用户名

May 20, 2022 · 1 min · laning

local

pip换源 配置文件地址: ~/.config/pip/pip.conf 文件内容: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 命令行操作: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 附清华大学开源镜像站pypi帮助: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ .vimrc Github项目地址: https://github.com/amix/vimrc git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime sh ~/.vim_runtime/install_awesome_vimrc.sh ~/.vim_runtime/vimrcs/extended.vim中 可以禁用主题和背景色,搭配终端配置透明终端 .zshrc # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] # confirmations, etc.) must go above this block; everything else may go below. if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" fi if [[ ! -f $HOME/.zi/bin/zi.zsh ]]; then print -P "%F{33}▓▒░ %F{160}Installing (%F{33}z-shell/zi%F{160})…%f" command mkdir -p "$HOME/.zi" && command chmod g-rwX "$HOME/.zi" command git clone -q --depth=1 --branch "main" https://github.com/z-shell/zi "$HOME/.zi/bin" && \ print -P "%F{33}▓▒░ %F{34}Installation successful.%f%b" || \ print -P "%F{160}▓▒░ The clone has failed.%f%b" fi source "$HOME/.zi/bin/zi.zsh" autoload -Uz _zi (( ${+_comps} )) && _comps[zi]=_zi # examples here -> https://z-shell.pages.dev/docs/gallery/collection zicompinit # <- https://z-shell.pages.dev/docs/gallery/collection#minimal zi light-mode for \ z-shell/z-a-meta-plugins \ @annexes @molovo zi light romkatv/powerlevel10k zi light zsh-users/zsh-syntax-highlighting zi load zsh-users/zsh-completions # To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh alias ls="ls --color" alias ll="ls -al" eval $(thefuck --alias) alias proxy='http_proxy="127.0.0.1:10809" https_proxy="127.0.0.1:10809"' alias vi=vim # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$('/usr/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" if [ $? -eq 0 ]; then eval "$__conda_setup" else if [ -f "/usr/etc/profile.d/conda.sh" ]; then . "/usr/etc/profile.d/conda.sh" else export PATH="/usr/bin:$PATH" fi fi unset __conda_setup # <<< conda initialize <<< alias s=sudo alias sv="sudo vim" alias spm="sudo pacman" alias sc="sudo cat" Debian/Ubuntu/Raspbian/Armbian换源 软件源配置文件地址: ...

April 22, 2022 · 3 min · laning

WireGuard配置

什么是WireGuard? WireGuard是由Jason Donenfeld等人用C语言编写的开源VPN解决方案,代码只有4000多行,Linux之父Linus Torvalds评价它是Work of art。截止2020年1月,WireGuard已经合并到Linux5.6内核中,大多数Linux版本可以做到开箱即用。 为什么是WireGuard? 就个人使用体验来说,Wireguard具有低延迟、强加密、低系统占用的特点。 需求分析? 家庭电信宽带申请到了公网IP地址,但如果在外地想访问家庭网络,或者多个无公网的计算机需要互相访问,可以考虑使用WireGuard组网。 需要什么? 一台有公网IP的服务器 其他需要组网(互相访问,但没有公网)的机器 如何开始? 关于WireGuard的配置一般的宣传都声称WireGuard具有配置简单,但就个人体验来说,WireGuard的配置过程,对新手来说并不友好,其中涉及到Linux基本操作、iptables防火墙规则、计算机网络相关等知识,这对于一些小白来说并不友好。 所以我推荐在公网服务器端用Github上的一键安装脚本: https://github.com/angristan/wireguard-install 脚本下载完成后,(root权限)首次执行需要自己配置公网的网络接口(一般为eth0)、公网IP地址(或域名)、VPN网段(默认为:10.66.66.0/24)等配置,其他配置可以保持默认即可,服务端的配置文件在/etc/wireguard/wg0.conf 再次执行脚本可以进行添加用户、移除用户、移除WireGuard等操作。添加用户操作,指定用户名和IP地址(VPN网段地址)后,会在脚本目录生成对应端的配置文件,命令行执行ls,会有名为wg0-client-username.conf配置文件,在下一步我们需要用到这个文件的内容。 在非公网端,根据操作系统的不同,可能需要安装的包不同,例如Debian系可能需要检查是否有这几个包:wireguard-tools 对于内核版本低于5.6的Linux可能还需要wireguard-dkms这个包,包依赖安装好后,使用root权限在/etc/wireguard下创建wg0.conf文件,将公网端脚本目录下的配置文件内容(wg0-client-username.conf)写入此文件。 如何进一步配置? 假设有PeerA,PeerB、PeerC三台服务器,其中PeerA为公网,B、C无公网 PeerA的/etc/wireguard/wg0.conf配置内容一般如下:(上面的脚本会自动生成,一般不需要修改!!!) [Interface] Address = 10.66.66.1/24,fd42:42:42::1/64 ListenPort = 10086 PrivateKey = PeerA私钥,脚本会自动生成 PostUp = iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ###启动wg0,防火墙操作,由脚本自动生成 PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ###关闭wg0时,防火墙的操作,由脚本自动生成 ### Client PeerB [Peer] PublicKey = PeerB公钥,脚本自动生成 PresharedKey = PeerB预共享密钥,脚本自动生成 AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128 ### Client PeerC [Peer] PublicKey =PeerC公钥,脚本自动生成 PresharedKey = PeerC预共享密钥,脚本自动生成 AllowedIPs = 10.66.66.3/32,fd42:42:42::3/128 PeerB的/etc/wireguard/wg0.conf配置内容一般如下:(可以在PeerA脚本的目录下wg0-client-PeerBname.conf复制过来) ...

April 19, 2022 · 2 min · laning

树莓派自编译opencv

项目介绍 OpenCV是一个基于BSD许可发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。而树莓派作为一款非常流行的开发学习平台,很多开发者的人工智能项目都基于opencv,然而,树莓派的软件源一般提供的都是opencv3.4.0这种老版本,这个项目将分享如何在树莓派上源码编译并安装指定版本的opencv。 说在前面 即便是最新的树莓派4B代(4G)版本,在一切顺利的情况下,编译安装完成本项目也大概需要5个小时以上,所以如果没有特殊要求可以考虑用清华源(其他软件源不太清楚是否有对应的软件包)直接安装opencv,关于如何换清华源不多赘述,请自行百度。换源之后,命令行依次执行 sudo apt update sudo apt install python3-opencv 1.环境配置 (建议SSH远程连接树莓派操作,省去自己输入命令的烦恼) 现在你假设已经正确更换软件源,包括apt和pip,不换源在环境配置这一步可能会花费很多没必要花费的时间 对于一些博主进行扩容的操作思路,本人并没有进行所谓的扩容,且没有出现卡死的现象,所以本教程没有扩容这一步 安装opencv环境依赖,依次执行下面命令 sudo apt update && sudo apt install -y cmake g++ wget unzip sudo apt-get install build-essential git cmake pkg-config -y sudo apt-get install libjpeg8-dev -y sudo apt-get install libtiff5-dev -y sudo apt-get install libjasper-dev -y sudo apt-get install libpng12-dev -y sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y sudo apt-get install libgtk2.0-dev -y sudo apt-get install libatlas-base-dev gfortran -y 2.下载源码并解压 (建议SSH远程连接树莓派操作,省去自己输入命令的烦恼) ...

December 3, 2021 · 1 min · laning

树莓派远程访问——向日葵解决方案

项目介绍 树莓派是一款口袋型电脑,拥有丰富的外设接口,同时不错的计算能力,完善的生态(可安装多种Linux操作系统),吸引了一大批技术爱好者加入树莓派社区。要想实现远程访问树莓派GUI界面,除了常用的VNC解决方案,在这里我推荐一个工具——向日葵,它很好地解决了在无公网IP的情况下,树莓派GUI访问的问题。 1.环境要求 Raspbain_bullseye_arm64镜像,下载链接:https://mirrors.tuna.tsinghua.edu.cn/raspberry-pi-os-images/raspios_arm64/images/raspios_arm64-2021-11-08/2021-10-30-raspios-bullseye-arm64.zip 更换Debian的软件源(注意此处必须是对应系统版本Debian的软件源,而非Raspbian的软件源),更换方法如下:(参考清华大学开源软件镜像站使用帮助) 命令行执行 sudo nano /etc/apt/sources.list 注释掉原有的软件源,即在未注释行前面加#号,并复制粘贴以下内容`` deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free 依次 ctrl+o 回车 ctrl+x 如果细心观察你会发现我们这里使用了Debian11(bullseye)的系统但是使用的是Debian10(buster)的软件源,因为树莓派向日葵客户端的.deb包依赖只有buster能解决(截止2022年5月9日),如果后续需要使用可以在安装完向日葵客户端后再次换源Debian11(bullseye) 换源方法在文尾,此处可继续执行后续步骤。 接下来命令行执行下面的命令使上述变更生效 sudo apt update 2.下载并安装向日葵客户端 通过git命令克隆.deb文件地址,命令行依次执行 ...

December 3, 2021 · 1 min · laning