分类
容器

Docker容器中运行Nextcloud occ命令

occ命令是Nextcloud的命令行界面,nextcloud管理员可以通过occ执行许多常见的服务器操作。通常非Docker环境部署的nextcloud系统中,用户可以在nextcloud的根目录(例如:/var/www/html)下通过如下格式执行occ命令:

sudo -u www-data php occ <your_command>

但是在docker中的nextcloud会报错:

分类
Linux 容器

Docker架设L2TP VPN

在Linux下安装使用PPTP VPN非常简单。自从IOS 10不支持PPTP后,只能使用L2TP协议的VPN了。

L2TP名词解释:

L2TP(Layer 2 Tunneling Protocol)
IPSec(Internet Protocol Security)
IKEv2 (Internet Key Exchange v2)

能实现 IPsec 的目前总体上有 openswan,libreswan,strongswan 这3种。

libreswan 是基于 openswan 的 fork,所以现在各个发行版基本已经看不到 openswan 的身影了。当然也有使用 strongswan 的。

分类
Nginx Web 笔记

Nginx https 反向代理 http

在Docker中运行WEB应用,由主机Nginx反向代理。由于Docker中的应用是http,而反向代理强制使用https,会遇到有些情况代理失败。

只要在配置中加上

proxy_set_header X-Forwarded-Proto https;

完整配置:

server {
    listen 80;
    listen [::]:80;
    server_name engr-z.com www.engr-z.com;
#    enforce https
    return 301 https://$server_name:443$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name engr-z.com www.engr-z.com;

    client_max_body_size 1G;

    ssl_certificate /data/www/cert/engr-z.com_nginx/cert.pem;
    ssl_certificate_key /data/www/cert/engr-z.com_nginx/cert.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置。
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8001/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-Ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
#        proxy_cookie_path / /;
    }
}
分类
Bash Linux

怎样用 Bash 编程:循环

我使用过的所有编程语言都至少有两种循环结构来用来执行重复的操作。我经常使用 for 循环,然而我发现 while 和 until 循环也很有用处。

for 循环

我的理解是,在 bash 中实现的 for 命令比大部分语言灵活,因为它可以处理非数字的值;与之形成对比的是,诸如标准 C 语言的 for 循环只能处理数字类型的值。

Bash 版的 for 命令基本的结构很简单:

for Var in list1 ; do list2 ; done

解释一下:“对于 list1 中的每一个值,把 $Var 设置为那个值,使用该值执行 list2 中的程序语句;list1 中的值都执行完后,整个循环结束,退出循环。” list1 中的值可以是一个简单的显式字符串值,也可以是一个命令执行后的结果(“ 包含其内的命令执行的结果,本系列第二篇文章中有描述)。我经常使用这种结构。

分类
Linux

怎样用 Bash 编程:语法和工具

Shell 是操作系统的命令解释器,其中 Bash 是我最喜欢的。每当用户或者系统管理员将命令输入系统的时候,Linux 的 shell 解释器就会把这些命令转换成操作系统可以理解的形式。而执行结果返回 shell 程序后,它会将结果输出到 STDOUT(标准输出),默认情况下,这些结果会显示在你的终端。所有我熟悉的 shell 同时也是一门编程语言。

Bash 是个功能强大的 shell,包含众多便捷特性,比如:tab 补全、命令回溯和再编辑、别名等。它的命令行默认编辑模式是 Emacs,但是我最喜欢的 Bash 特性之一是我可以将其更改为 Vi 模式,以使用那些储存在我肌肉记忆中的的编辑命令。

分类
网络

PAC脚本语法(代理自动配置)

现在浏览器基本都支持PAC格式的代理脚本。本文仅介绍PAC脚本语法,并不解释使用方法。

示例脚本

function FindProxyForURL(url, host) {
    // our local URLs from the domains below example.com don't need a proxy:
    if (shExpMatch(host, "*.example.com")) {
        return "DIRECT";
    }

    // URLs within this network are accessed through
    // port 8080 on fastproxy.example.com:
    if (isInNet(host, "10.0.0.0", "255.255.248.0")) {
        return "PROXY fastproxy.example.com:8080";
    }

    // All other requests go through port 8080 of proxy.example.com.
    // should that fail to respond, go directly to the WWW:
    return "PROXY proxy.example.com:8080; DIRECT";
}
分类
Linux 容器 笔记 网络

UFW防火墙规则对Docker映射端口无效

在自己的服务器开启防火墙,使用UFW设置规则:

ufw default deny

默认禁用所有连接,测试发现,用Docker运行的APP端口能正常访问。

UFW是为了简化Iptables产生的,它在Iptables有自己的规则链。Docker在启动时在Iptables会创建自己的规则链,所以不生效。

分类
Windows 日记

笔记本关闭睿频(注册表篇)

笔记本在睿频时耗电量增加,风扇声会很大。平时浏览网页写写文档完全可以关闭睿频。关闭睿频只需把处理器电源管理中CPU最大使用设为99%,系统扇热方式设为被动即可。详细可参考:Windows设置处理器电源管理

系统升级为Win10 20H2后发现处理器电源设置选项消失,注册表电源管理没有”CsEnabled”项。即使手动增加项,设置值也不生效。另一台台式机同样版本系统是有该设置项的。

也许是新系统的设置变更,也有电源管理驱动原因,想着通过修改注册表来设置。网上找了一轮,遇到一样问题的人有,就是没人给出解决办法。直接在注册表里找设置项如大海捞针。我在用电源命令工具查看设置项,无意中找到方法。

分类
Linux

Ubuntu 合上笔记本禁止休眠

合上笔记本盖不进入休眠。在Ubuntu的电源管理没有找到相应设置,可以手动修改配置文件完成。

vi /etc/systemd/logind.conf

打开logind.conf配置文件,找到:

HandleLidSwitch=suspend
HandleLidSwitchExternalPower=suspend

修改为:

HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore

重启生效!

分类
Windows 软件

RemoteAPP 体验

RemoteAPP是基于Windows远程桌面的一个功能,在Windows Server 2008之后的服务器系统集成。和远程桌面不同的是,运行RemoteAPP看起来就像本地的应用,几乎没有区别,任务栏和系统托盘也会显示正在运行的程序。

Windows桌面系统可以使用RemoteAppTool创建RemoteApp,以下是我创建的APP