情丿本是债 发布的文章

(已失效)在netkeeper2.5拨号的网络上,使用路由器的方法

注:

本文是为了分享经验,请不用将本文章所涉及内容用于任何盈利项目!

准备:

你可能需要一个能刷openwrt的路由器,这里的教程假设你已经拥有了这样的路由器(潘多拉固件也是openwrt哦!)

然后你需要 putty等类似的ssh终端 还有winscp等scp协议文件访问工具

原理分析:

netkeeper拨号其实是基于普通PPPOE拨号的,但是他在用户名前,用实时时间配合算法进行了随机加密。
不过已经有大佬破译了加密算法,所以我们只需要用当前时间计算后,把字段添加到用户名前就可以了。
一般的路由器系统可能无法完成这种事情,我们可能需要一个能够支持自己魔改的路由器系统,比如:openwrt

1.获取当前时间:

既然断网了。那就没有办法使用网络对时了,不过一般使用netkeeper的地方,都会有内网NTP服务器,一般网关,DNS,或者其他的服务器上,能找到NTP服务器,可以自己试着戳下。
然后,在 system-system(系统-系统) NTP 服务器处,填上NTP服务器,每次路由器重启就会自己去更新时间了。当然,在计划任务处,加上定时更新是最吼的

0,1,11,21,31,41,51 * * * * /usr/bin/set_kernel_timezone >/dev/null 2>&1

2.将加密模块作为插件引入到PPPOE拨号过程

首先,你需要一个加密模块,我这里有MTK7620和AR71xx系列的已经编译好的拨号模块,RAM的暂时,懒得找。
点击这里选择下载
然后我们在openwrt里新建一个pppoe(注意是新建,不要修改原wan口)
网络-网络-创建新接口

名称:netkeeper
接口协议:pppoe
包括以下接口:选择有wan的那个
其他默认

p1.png

PAP/CHAP用户名 填完整的帐号
PAP/CHAP密码 填密码

防火墙设置,选择wan

p2.png

然后我们引入插件

将刚才下载并且地区对应的插件,拷贝到
(这个路径,有可能不一样,注意搜索下,变通)

/usr/lib/pppd/2.4.7/

p4.png

然后,编辑文件:

/etc/config/network

在netkeeper那一堆里,加一行

option pppd_options 'plugin (这里注意改名字)sxplugin.so'

p3.png

保存下,拨个号,应该可以上网了!

(进阶!需要一些基础知识)3.修改路由表,使内外网可以同时访问

完成之前的步骤后,应该只能访问内网或者外网
如何同时访问呢?改下路由表吧
网络-静态路由
填上网段,掩码,内网网关,应该就可以了

p5.png

这里面使用了很多前辈的模块,经验,开源项目。在此一并感谢
https://github.com/miao1007/Openwrt-NetKeeper
https://simplenetkeeper.com/

openwrt 对接 cloudxns DDNS解析

文件1

dns.sh

#!/bin/sh

CONFIG=$1

if [ ! -f "$CONFIG" ];then
    echo "ERROR, CONFIG NOT EXIST."
    exit 1
fi 

# shellcheck source=/dev/null
. "$CONFIG"

if [ -f "$LAST_IP_FILE" ];then
    # shellcheck source=/dev/null
    . "$LAST_IP_FILE"
fi

IP=""
RETRY="0"
while [ $RETRY -lt 5 ]; do
    IP=$(ifconfig eth0.2 | awk '/inet addr/{print substr($2,6)}')
    RETRY=$((RETRY+1))
    if [ -z "$IP" ];then
        sleep 3
    else
        break
    fi
done

if [ "$IP" = "$LAST_IP" ];then
    echo "$(date) -- Already updated."
    exit 0
fi

URL_D="https://www.cloudxns.net/api2/domain"
DATE=$(date)
HMAC_D=$(printf "%s" "$API_KEY$URL_D$DATE$SECRET_KEY"|md5sum|cut -d" " -f1)
DOMAIN_ID=$(curl -k -s $URL_D -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_D"|grep -o "id\":\"[0-9]*\",\"domain\":\"$DOMAIN"|grep -o "[0-9]*"|head -n1)

echo "DOMAIN ID: $DOMAIN_ID"

URL_R="https://www.cloudxns.net/api2/record/$DOMAIN_ID?host_id=0&row_num=500"
HMAC_R=$(printf "%s" "$API_KEY$URL_R$DATE$SECRET_KEY"|md5sum|cut -d" " -f1)
RECORD_ID=$(curl -k -s "$URL_R" -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_R"|grep -o "record_id\":\"[0-9]*\",\"host_id\":\"[0-9]*\",\"host\":\"$HOST\""|grep -o "record_id\":\"[0-9]*"|grep -o "[0-9]*")

echo "RECORD ID: $RECORD_ID"

URL_U="https://www.cloudxns.net/api2/record/$RECORD_ID"

PARAM_BODY="{\"domain_id\":\"$DOMAIN_ID\",\"host\":\"$HOST\",\"value\":\"$IP\"}"
HMAC_U=$(printf "%s" "$API_KEY$URL_U$PARAM_BODY$DATE$SECRET_KEY"|md5sum|cut -d" " -f1)

RESULT=$(curl -k -s "$URL_U" -X PUT -d "$PARAM_BODY" -H "API-KEY: $API_KEY" -H "API-REQUEST-DATE: $DATE" -H "API-HMAC: $HMAC_U" -H 'Content-Type: application/json')

echo "$RESULT"

if [ "$(printf "%s" "$RESULT"|grep -c -o "message\":\"success\"")" = 1 ];then
    echo "$(date) -- Update success"
    echo "LAST_IP=\"$IP\"" > "$LAST_IP_FILE"
else
    echo "$(date) -- Update failed"
fi

文件2

dns.conf

API_KEY="cx后台的apikey"
SECRET_KEY="更改为SECRET_KEY"
DOMAIN="域名"
HOST="二级域名"
LAST_IP_FILE="/tmp/.LAST_IP"

假设,如果保存在 root下
/root/dns.sh /root/dns.conf
执行
/tmp/.LAST_IP 文件应该会保存有IP

计划任务内写
20 /root/dns.sh /root/dns.conf
每20分钟执行一次

注:
文件1中
IP=$(ifconfig eth0.2 | awk '/inet addr/{print substr($2,6)}')
这个需要该接口的名字
eth0.2改为你自己的
可以获取内网,可以获取外网

脚本参考自:https://www.xdty.org/1907

Ubuntu下关于Transmission daemon的安装与配置

apt-get install transmission-daemon
# 启动
sudo service transmission-daemon start
# 停止
sudo service transmission-daemon stop

打开文件/var/lib/transmission-daemon/info/settings.json,修改配置参数如下:

dht-enabled”: false,

{
......
"rpc-authentication-required": true
"rpc-bind-address": "0.0.0.0", 
"rpc-enabled": true, 
"rpc-password": "123456", 
"rpc-port": 9091, 
"rpc-url": "/transmission/", 
"rpc-username": "transmission", 
"rpc-whitelist": "*", 
"rpc-whitelist-enabled": true, 
......
}

service transmission-daemon start

如何让nginx显示文件夹目录

在 server中添加
location /soft { //soft是路径

autoindex on; //开启功能

autoindex_exact_size off; //以人类可以理解的方式显示文件大小(不开就是b)

autoindex_localtime on; //使用当地时间显示文件时间

                       }

各种一键包

增加2G的SWAP

dd if=/dev/zero of=/swapfile bs=1G count=2 && chown root:root /swapfile && chmod 0600 /swapfile && ls -lh /swapfile && mkswap /swapfile && swapon /swapfile && echo '/swapfile none swap sw 0 0' >> /etc/fstab