树莓派搭建smb

很简单,有手就行。

安装

  1. 安装二进制文件
1
$ sudo apt install samba
  1. 修改配置文件
1
$ sudo vim /etc/samba/smb.conf

最后添加如下内容。path为共享文件夹的路径,请根据自身情况修改

……

英语作文模板

Painstaking but rewarding. 艰苦卓绝但富有成效。

本篇模板汇总内容为备战考研时的笔记,考研时用了感觉还不错。所有内容来自微博 @薛非英语,感谢您!

……

通过API自动更新Cloudflare的DNS解析-Go语言版本

功能

  • 调用Cloudflare(下称CF)API查询域名对应的identifier和ip
  • 查询本地2001段IPv6地址
  • 通过爬虫查询路由器中的10.173段IPv4地址
  • 对比ip判断是否需要调用CF的API更新ip
  • 在Windows上设置任务计划,定时执行二进制文件

网络信息说明

  • 实验室路由器翼讯拨号,路由器分配10.173段内网IPv4地址,做端口转发。电脑被分配192.168段地址,但这个内网不是我想要的地址。
  • 直连校园网,被分配2001段IPv6地址。

代码结构

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
// 初始化http请求的client端以复用
func initiateHttpClient() *http.Client {}

// 通过HTTP的GET请求获取identifier和ip
func getIdentifierAndIp(name string, dnsType string, httpClient *http.Client) (identifier string, ip string, err error) {}

// 获取本机的IPv4和IPv6地址
func getNativeIp(ipType string) (ip string, err error) {}

// 检查ip是否需要更新
func checkIp(identifier string, ip string, ipType string, httpClient *http.Client) (nativeIp string, updateFlag bool) {}

// 通过HTTP的PUT请求更新ip
func updateCloudflareDns(identifier string, name string, dnsType string, ip string, httpClient *http.Client) (err error) {}

// 程序入口
func main() {}

工作流程

graph TD
A(开始) --> B[初始化HTTPClient]
B --> C[通过HTTP的GET请求获取identifier和ip]
B --> D{获取本地地址}
D --> |IPv4| E[模拟登录路由器获取地址]
D --> |IPv6| F[调用Go语言net库提取地址]
C --> G
E --> G{对比ip判断是否需要更新}
F --> G
G --> |需要| H[通过HTTP的PUT请求更新ip]
G --> |不需要| I(结束)
H --> I

流程图

……

重装vps

总体工作

工作列表

  • 重装系统ubuntu18.04
  • 旧域名更换为新域名littleghost.ml
  • Web服务器由Nginx切换为Caddy
    • 实际使用的caddy为caddy2Beta20版本(当前最新),启动命令和caddyfile与1.X版本有不小的差别。
  • 部署V2ray服务
    • 模式为WebSocket + TLS,并未使用CDN。
  • caddyv2ray均使用systemd做进程守护。
  • 通知小伙伴们重装期间无法提供服务,且原域名基本不再使用。
  • 编写自动安装和升级caddy和v2ray的脚本。

整体文件布局

/etc/systemd/system
├── caddy.service
└── v2ray.service

/home/ubuntu/program
├── caddy
│   ├── bin
│   │   ├── caddy
│   ├── config
│   │   └── caddyfile
│   └── ssl
│       ├── acme
│       ├── locks
│       └── ocsp
└── v2ray
    ├── bin
    │   ├── v2ctl
    │   ├── v2ray
    ├── config
    │   ├── v2ray.service
    │   └── config.json
    └── log

caddy

文件布局

1
$ tree caddy -L 2
caddy
├── bin
│   ├── caddy
├── config
│   └── caddyfile
└── ssl
    ├── acme
    ├── locks
    └── ocsp

说明

  1. caddy包含1.X和2.0 beta 20两个版本的二进制执行文件和配置文件,两种版本都能够实现所需功能。
  2. 1.0和2.0版本的配置文件和启动命令都不同。
  3. 域名映射
    • www.littleghost.cn --301--> littleghost2016.github.io
    • blog.littleghost.ml & www.littleghost.ml 反向代理littleghost2016.github.io
    • blog.littleghost.ml/game -> 反向代理

caddy 2.0 beta20 版本

推荐使用caddy的新版本。

……