分类: 折腾

  • 定制优化Nextcloud镜像

    Nextcloud 是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步、共享、版本控制、团队协作等功能。它的客户端覆盖了Windows、Mac、Android、iOS、Linux 等各种平台,也提供了网页端以及 WebDAV接口,所以你几乎可以在各种设备上方便地访问你的云盘。

    (更多…)
  • 禁用CPU睿频

    现在的笔记本性能越来越高,通过睿频技术短时间内让CPU快速运行。在提高处理速度带来的负面影响就是温度升高,风扇呼呼作响,特别影响心情。有时候我们只是浏览网页和写文档,默认频率下的性能完全足够。

    平时我在夜晚会关闭CPU睿频,使用体验和正常睿频下的速度几乎没差别,但电脑安静很多,风扇转声小,使用电池的情况下续航多了近两小时。

    (更多…)
  • 网络存储文件共享之WebDAV

    WebDAV 基于 HTTP 协议的通信协议,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。

    常用的文件共享有三种:FTP、Samba、WebDAV,它们各有优缺点,了解后才能更好地根据自己的需求选择方案。

    (更多…)
  • Privoxy 动态代理和广告过滤

    Privoxy 是一个非缓存web代理,它具有高级过滤功能,可以增强隐私,修改网页数据和HTTP头,控制访问,删除广告。本章介绍socks代理转http,动态代理和广告过滤功能。

    (更多…)
  • 自动代理脚本

    代理上网有两种模式,一种是全局代理,所有的流量都走代理服务器,另一种是自动代理,根据规则决定是否使用代理。设置自动代理可以实现智能分流,多个代理服务器同时使用。

    实现自动代理的方案有多种,浏览器可以使用SwitchyOmega插件,安装Privoxy实现动态代理。本章使用的是PAC自动代理脚本,主要是因为它跨平台,无需安装第三方软件或插件,几乎所有的系统都支持。

    PAC代理脚本使用JavaScript语法,当系统设置PAC代理脚本后,浏览器执行请求时会先从脚本中的 FindProxyForURL 方法中获取代理服务器。

    function FindProxyForURL(url, host) {
    
        return "代理服务器";
    }

    参数说明:
    url
    前当请求的url,如:https://engr-z.com
    host
    当前url中的主机名,如:engr-z.com 返回值说明:
    DIRECT
    不使用代理,示例:”DIRECT”
    PROXY
    使用http代理,示例:”PROXY 127.0.0.1:8888″
    SOCKS
    使用socks代理,示例:”SOCKS 127.0.0.1:1080″
    SOCKS5
    使用socks5代理,示例:”SOCKS5 127.0.0.1:1080″ 可以同时返回多个代理设置,用分号分隔,应用会依次按顺序检查返回一个可使用的代理服务器。示例:”SOCKS5 127.0.0.1:1080;PROXY 127.0.0.1:8888;DIRECT”
    优先使用socks5代理,如果不可用则使用http代理,如果http代理也不可用则跳过代理直接连接。

    内置函数

    PAC脚本支持基本的JavaScript语法,同时还内置一些函数可以帮助我们简化处理

    • isPlainHostName(host)

    判断是否为本地主机

    if (isPlainHostName(host)) {
        return "DIRECT";
    else
        return "PROXY proxy:80";
    }

    如果是本地主机直接连接,否则使用http代理

    • shExpMatch(host, “”)

    匹配url,支持 *

    if (shExpMatch(url,"*.google.com/*")) {
        return "PROXY 192.168.1.1:3128";
    }
    • isInNet

    访问IP是否在某个子网内

    if (isInNet(host, "192.168.0.0", "255.255.225.0")) {
        return ""
    }

    更多函数以考:Proxy Auto-Configuration (PAC) file

    以下是我自己写的PAC脚本,可作为模板使用:

    var domains = {
        "google.com": 1,
        "youtube.com": 1
    };
    
    var proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080; PROXY 127.0.0.1:8888; DIRECT;";
    
    var direct = 'DIRECT;';
    
    function FindProxyForURL(url, host) {
        var lastPos;
        do {
            if (domains.hasOwnProperty(host)) {
                return proxy;
            }
            lastPos = host.indexOf('.') + 1;
            host = host.slice(lastPos);
        } while (lastPos >= 1);
        return direct;
    }

    只需在domains添加要代理的域名,如 facebook.com,twitter.com
    如果有多个代理,比如公司的网络走公司代理,可在 domains 中的值处理
    var domains = {
    “google.com”: 1,
    “youtube.com”: 1,
    “公司网络”: 2
    };

    if (domains.hasOwnProperty(host) == “2”) {
    return “公司代理”
    }

    设置PAC

    把PAC上传到http服务器,或者放本地,在系统设置网络中找到自动代理配置,填上PAC的访问地址即可。

    Windows:

    Android:

    IOS:

    在手机上使用PAC脚本,可能会遇到某些APP不支持,这种情况需要使用Privoxy来做自动代理,将在后续介绍。

  • 阿里云自动动态地址解析

    家里找电信开通了动态公网地址,每天IP会变一次。我的域名是在阿里云申请的,路由器只支持花生壳和公云的DDNS设置,每天手动变更一次域名指向麻烦,利用阿里云的API,写了一个动态更新的小工具。

    首先在阿里云后台申请创建AccessKey:

    (更多…)
  • 虚拟机安装OpenWrt路由系统

    OpenWrt是一个开源路由器固件,基于Linux。智能路由可以刷机OpenWrt,支持大量插件,功能丰富。OpenWrt也支持x86,可以做为软路由系统。由于我没有单独的机器做软路由,使用OpenWrt做旁路由,仅为科学上网和过滤广告,用虚拟机完全可以满足需求。

    OpenWrt支持VitualBox,VMware,Hyper-V等虚拟机,也支持Docker运行。这里我使用的是VMware。

    (更多…)
  • Ubuntu安装XRDP

    在Linux下一直没有好的远程桌面工具。VNC太慢,即使在内网也不太流畅。NoMachine不错,但连接需要安装客户端。NoMachine的移动端做得很垃圾,而且几年没更新,不兼容流海屏。远程用得最爽的还是windows自带的rdp,在低网速下也有很好的表现。

    一般的远程工具采用录屏的方式,传输图像。如VNC,NoMachine,用h264压缩。虽然支持GPU加速,但在低宽带或高分辨率下质量差,延迟高。RDP不一样,它传输的是指令,绘图是放在客户端的,所以速度快,即使提高分辨率,速度也不会明显降低。

    (更多…)
  • 站点优化笔记

    本站开通也有好几年了,除了更新几次主题,自定义几个样式和几处微调,没什么做大的改动。这次心血来潮把它优化一波,为后面使用打下基础。

    次此优化主要是:

    1. 优化php配置
    2. 优化wordpress一些不适合国情的东西(你懂的)
    3. 优化链接便于搜索引擎收录
    (更多…)
  • Ubuntu升级至20.04

    前几天Ubuntu 20.04 TLS (Focal Fossa)正式发布,家里的台式机是Ubuntu 18.04 TLS,决定升级到最新TLS版。

    首先把系统软件升级到最新:

    apt update
    
    apt upgrade

    然后执行 do-release-upgrade 如下:

    默认TLS版只能升级到TLS版,并且只有第一个补丁版发布才能检测到升级。就是说只有20.04.1发布后才能升级。可以手动指定参数:

    do-release-upgrade -m desktop -d

    经过漫长的等待,终于更新完了。重启系统。

    (更多…)
  • Nextcloud开启外部存储

    Nextcloud默认是没有开启外部存储功能的,需在手动启用插件。

    然后在设置里可以看到。设置Nextcloud所有用户都能使用外部存储。

    如果Nextcloud是使用Docker部署,可能会遇到没有安装samba客户端问题:“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息”。请联系管理员安装。

    (更多…)
  • Gnome 3桌面调教

    Gnome是很多Linux发行版默认的桌面,最新是Gnome 3.x版本。Gnome 3非常简洁,简洁到只有一个空荡荡的桌面。需要调教一番才能更高效率地工作。

    Gnome 3优化工具-Gnome Tweaks

    Gnome Tweaks是一个图形化配置Gnome 3的工具。它不仅可以自定义Gnome 3桌面,还能集中管理Gnome 3的插件扩展。后面安装的Gnome 3插件都能在Gnome Tweaks中管理,开启/禁用及配置。

    在Ubuntu中安装:apt install gnome-tweak

    Gnome 3扩展-Dynamic Top Bar

    Dynamic Top Bar可以把Gnome 3顶部栏透明化。不过如果使用浅色的壁纸,顶部栏的白色字体会看不清。

    Gnome 3扩展-Hide Top Bar

    Hide Top Bar可以把Gnome 3顶部栏设为自动隐藏,增大可视面积。

    (更多…)
  • Ubuntu禁用Systemd解析

    主机安装Ubuntu 18.04,在hosts中配置了开发时使用的域名。想把主机做为DNS服务器,供路由器使用,这样网内的机器不需要指定DNS就能解析了。

    在Linux以前的版本,只需要安装bind或dnsmasq,把监听地址改为网卡地址,网内的机器就能使用。

    DNS服务软件我使用的是dnsmasq,使用apt源安装,启动服务失败。查看原因:

    原来53端口被占用。

    Ubuntu 18.04变化还是挺多的,比如设置hostname,不能再简单修改/etc/hostname。Ubuntu 18.04桌面版,新增了一个systemd-resolved服务,禁用它就好。

    (更多…)
  • Docker Desktop for Windows

    自从使用Docker就变得一发不可收拾。和以前用虚拟机相比,它占资源少,启动快,方便管理。我主要用Docker来管理多个版本的软件共存、切换和升级,比如数据库,NextCloud,Wordpress。

    开源的东西总是衷爱Linux,像Docker在Windows下就没那么方便。Windows的Linux子系统目前还不支付Docker,据说下个版本,WSL2会支付。所以我一直都是用VMware安装Linux,再安装Docker。

    其实官方有提供在Windows环境下使用Docker的支持。一种是Docker Toolbox
    工具,它是基于Oracle的VirtualBox虚拟机的,兼容性好,Windows各个版本都能用。还有一种是Docker Desktop for Windows,它是基于Hyper-V虚拟机。Hyper-V是微软的虚拟机,只在Windows专业版、企业版、工作站版中有。打开控制面板-程序-启用或关闭Windows功能,勾选Hyper-V,确定然后重启生效。

    需要注意的是,Hyper-V和VMware、VirtualBox有冲突,开启后,VMware和VirtualBox包括Android虚拟机就不能使用CPU虚拟化了,性能会大打折扣。

    从官网,docker.com下载Docker Desktop for Windows安装,安装完成后Docker会自动连接Hyper-V创建MobyLinux系统。Docker可能会提示需要用户登录,如果没有,可以去官网注册一个Docker账号。下载镜像是必须登录的。

    (更多…)
  • 无线入侵之破解

    现在到处都是无线网,犹其是一线城市,无奈都设有密码,有时候想连下看看网页也不行。但是道高一尺,魔高一丈,从来没有绝对的安全……

    一个cracker首先要学会的是隐藏自己,所以在破解之前先伪造自己的mac地址。
    查看无线网卡:iwconfig

    伪造随机mac地址:macchanger -r wlan0
    (还原地址:macchanger -p wlan0)

    为了更好地识别无线网络环境,先对airodump-ng的out库升级。
    airodump-ng-oui-update

    设置网卡为监听模式
    airmon-ng start wlan0
    (更多…)