用service 让Linux系统启动时执行命令

之前搭了个Xfce+VNC的环境,做了个快照保存。每次要用的时候,从快照创建了实例,还要终端登进去跑一句 vncserver -geometry 800x600  建一个vnc。 我想把它自动化,启动系统的时候自动执行。 参考: https://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html 在/lib/systemd/system目录,创建一个 open1vnc.service,内容如下: [Unit] Description=Open 1 vnc [Service] User=root Group=root Type=oneshot ExecStart=/usr/bin/vncserver -geometry 800x600 ExecStop=/usr/bin/vncserver -kill :1 RemainAfterExit=yes [Install] WantedBy=multi-user.target 用这条命令让它在系统启动时执行。 systemctl enable open1vnc

Caddy v1开HTTPS套CDN 转发给Aria2

-update- Caddy 现在是v2了,配置文件的语法有些变化。请见: https 或 wss 链接 CDN 后面的 aria2 用自定义path躲避扫描探测 -以下是Caddy v1的做法 之前 让Aria2支持HTTPS ,要搞证书什么的一大套操作,还要改端口才能走CDN。 在Telegram上,看到一张ngix转发流量给Aria2的图。于是想到,可以用Caddy来处理HTTPS的部分,再转发给Aria2的时候就不用Websocket了 VPS上放一个AriaNG的index.html,再把/jsonrpc的流量以HTTP转发给Aria2。 Caddyfile写这样: 域名.com {     tls 1234567890@gmail.com     gzip     root /usr/local/caddy/www/file/     proxy /jsonrpc http://127.0.0.1:6800 } 效果就是原来的http://IP地址:6800和https://域名:443都可以使用。CDN也是可以开的。 给Aria2开CDN的好处是,如果你是一台VPS同时做了梯子和Aria2的离线下载,万一VPS的IP被封了,还可以通过域名访问Aria2离线下载。

Caddy v1用service启动时报错read-only

今天又遇到 以前碰到过 的一个奇怪的问题:Caddy跑起来效果很奇怪。 我在Filemanager里面指定了.db文件,Caddy的status报错说文件为read-only。 我不指定.db文件让Filemanager自动生成,Caddy能跑起来了,但是用Filemanager去管理Aria2的下载目录/usr/local/caddy/www/aria2/download/ 总是报错,就像下面这样 同样的命令(下图标记部分)在cmdline执行,一点问题也没有。Filemanager功能一切正常。 查了各种文件的属性,用chmod chown chgrp改来改去,还是不解决问题。 最终在Telegram上面, Newlearner 大佬指了一条路   https://caddy.community/t/problem-with-filemanager-plugin-and-systemd/3900/5 ,看过之后,再结合其它资料  https://www.cnblogs.com/goldd/articles/5756942.html 解决方案如下: 1. 如果想粗暴一点解决问题,或者还想用Filemanager管理更多目录的话,在/lib/systemd/system/caddy.service里面把 ProtectSystem 设置为off ; Make /usr, /boot, /etc and possibly some more folders read-only. ProtectSystem=off 2. 我的Filemanager只是用来管理Aria2下载的文件,所以我选择修改 ReadWriteDirectories ,添加一些目录(空格分隔)红色部分是我添加的。 ; … except /etc/ssl/caddy, because we want Letsencrypt-certificates there. ;   This merely retains r/w access rights, it does not add any new. Must still be writable on the host! ReadWriteDirectori...

修改hosts 解决 DNS 污染的问题

用 DNS over HTTPS 或者 DNSCrypt是比较稳定的做法,但是速度太慢。确实,本身走的就不是一条最快的路。 偶尔遇到DNS污染的话,还可以通过修改Hosts的办法解决。真实的DNS解析,可以用 dns.google.com 查询。 以doubimirror.cf举例 在dns.google.com查询doubimirror.cf,以最后一次为准,得到的是  104.28.25.245 以管理员身份运行记事本 如果没有显示这个选项,你需要点击一下下拉按钮 用菜单打开 C:\Windows\System32\drivers\etc\hosts 文件 *注:以管理员身份运行的程序都不支持拖放,你以管理员身份运行notepad++/ UE也是一样的。只能通过菜单打开。 在hosts文件末尾添加 104.28.24.245  doubimirror.cf   (IP地址和域名之间加多少个半角/英文空格随便你) 保存hosts文件,然后去刷新浏览器吧!

脚本修改Caddy v1的Caddyfile 显示Aria2的rpc密钥

之前搭了一个GCP的VM环境,做好了快照。有需要的时候,新建一个VM实例下载,用完了就删除VM实例。 这样每次建好快照以后,都要去修改Caddyfile里的IP地址。 写了个小脚本来修改Caddyfile的IP地址,再显示一下Aria2的rpc密码,方便填写到AriaNG页面上去。 #!/usr/bin/env bash caddyfile="/etc/caddy/Caddyfile" aria2_conf="/root/.aria2/aria2.conf" read -p "输入VPS的IP地址:" vps_ip if [[ ! -e ${caddyfile} ]]; then echo -e "Caddy 配置文件不存在 !" && exit 1 fi sed -i '1 c '${vps_ip}':80 {' ${caddyfile} service caddy restart if [[ ! -e ${aria2_conf} ]]; then echo -e "Aria2 配置文件不存在 !" && exit 1 else conf_text=$(cat ${aria2_conf}|grep -v '#') aria2_passwd=$(echo -e "${conf_text}"|grep "rpc-secret="|awk -F "=" '{print $NF}') fi echo "Aria2的rpc密码: ${aria2_passwd}" 其中 sed -i ' 1 c xxxxxx ' ${caddyfile} 的意思就是把第 1 行 改写 为 xxxxxx Caddyfile可以写成这样 localhost:80 {        #第一行写什么不重要,反正会被init.sh脚本修改掉     gzip     root /usr/local/caddy/www/file...

DNS over HTTPS 用 dnscrypt-proxy

遇到一些网站域名被污染,需要使用DNS over HTTPS,不想老是打开Firefox。尝试用一个会专门的DNS over HTTPS的client。我选择dnscrypt-proxy 下载并解压 https://github.com/jedisct1/dnscrypt-proxy/releases 把里面的 example-dnscrypt-proxy.toml 重命名,前面的example去掉。 以管理员身份打开PowerShell 执行 .\dnscrypt-proxy.exe -service install .\dnscrypt-proxy.exe -service start 给自己的网卡设置DNS为 127.0.0.1

影视作品下载

无法查看这则摘要。请 点击此处查看博文。