解决学校服务器流量问题方案

解决学校服务器流量问题方案

服务器版本

Ubuntu 16.04.4 LTS (GNU/Linux 4.15.0-36-generic x86_64)

问题

校园网流量不够用,使用ipv6免流量上网

解决方案

kcptun + ss + proxychains

使用方法

1. 文件下载

下载后目录文件,上传至服务器

在这里插入图片描述

2. kcpwen目录介绍

在这里插入图片描述

config为配置文件,包含kcptun配置文件,ss配置文件
kcptun.json

此配置文件直接在使用kcptun加速的vps上获取,我们这里使用vps服务器的ipv6地址,
本地代理端口为1086,需要与ss本地端口匹配,与proxychains代理端口匹配

{
  "localaddr": ":1086",
  "remoteaddr": "[2001:19f0:xxxx:xxxx:xxxx:xxxx:xxxx]:29900",
  "key": "xbw12138",
  "crypt": "aes",
  "mode": "fast3",
  "mtu": 1350,
  "sndwnd": 512,
  "rcvwnd": 512,
  "datashard": 10,
  "parityshard": 3,
  "dscp": 0,
  "nocomp": false,
  "quiet": false
}
ss.json
{
    "server":"127.0.0.1",
    "local_address": "127.0.0.1",
    "local_port":1080,
    "server_port":1086,
    "password":"xbw12138",
    "timeout":300,
    "method":"aes-256-cfb"
}
ipv6.py

校园网登录脚本,例如
登录 python ipv6.py login S20186184X 123456
注销 python ipv6.py logout

ipv6.sh

整合一键启动
./ipv6.sh
输入网关账号密码直接进行网络连接

kcptun

kcptun客户端
./kcptun -c config/kcptun.json

log

日志

3. proxychains目录介绍

在这里插入图片描述

配置文件在src/proxychains.conf中配置
使用方法
./proxychains4 -q -f src/proxychains.conf wget www.baidu.com
可以使用别名代替,例如

vim ~/.bashrc
在文件最后追加

alias pc='/home/bowen/ipv6/proxychains/proxychains4  -q -f /home/bowen/ipv6/proxychains/src/proxychains.conf'

source ~/.bashrc

之后就可以直接使用 pc wget www.baidu.com

4.一键启动

kcpwen/ipv6.sh
在这里插入图片描述

Code

ipv6.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import os
import json
import sys

def login(username, password):
    if username == "" or password == "":
        return "请填写用户名密码"
    else:
        url = 'https://lgn6.bjut.edu.cn'
        d = {'DDDDD': username, 'upass': password,'v46s':'2','v6ip':'','f4serip':'172.21.75.57','0MKKey':''}
        r = requests.post(url, data=d)
        r.encoding='gbk'
        if u'登录成功窗' in r.text :
            return "ipv6登录成功"
        else : 
            return "ipv6登录失败"
def function(argv):
    if argv[1] == 'login':
        if len(argv) == 4:
            username = argv[2]
            password = argv[3]
            info = login(username, password)
            print(info)
        else :
            print("请输入网关账号密码,例如 python ipv6 login S201861847 123456")
        """
        try:
            with open("ipv6.json",'r') as load_f:
                load_dict = json.load(load_f)
                username = load_dict['username']
                password = load_dict['password']
                info = login(username, password)
                print(info)
        except IOError:
            print("配置文件读取失败")
        """
    elif argv[1] == 'logout':
        url = 'https://lgn6.bjut.edu.cn/F.htm'
        headers = {
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
            'Accept-Encoding': 'gzip, deflate, br',
            'Accept-Language': 'zh-CN,zh;q=0.9',
            'Connection': 'keep-alive',
            'Cookie': 'Hm_lvt_cdce8cda34e84469b1c8015204129522=1547906203; __lnkrntdmcvrd=-1',
            'Host': 'lgn6.bjut.edu.cn',
            'Referer': 'https://lgn6.bjut.edu.cn/',
            'Upgrade-Insecure-Requests': '1',
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36',
        }
        resp = requests.get(url=url, headers=headers,timeout=1)
        if resp.status_code==200:
            print("退出登录成功")
        else:
            print("退出登录失败")
if __name__ == "__main__":
    if len(sys.argv)==1:
        print("请输入参数\n1.login\n2.logout")
    else:
        function(sys.argv)
    

ipv6.sh

#!/bin/sh
work_path=$(dirname $(readlink -f $0))
cd ${work_path}
read -p "输入网关账号:" username
if [ ! -n "$username" ]
then
    echo "请输入网关账号"
    exit;
else
    read -p "输入网关密码:" password
    if [ ! -n "$password" ]
    then
        echo "请输入网关密码"
        exit;
    else
        msg=$(python ipv6.py login ${username} ${password})
        if [ "$msg" = "ipv6登录成功" ]
        then
            echo 'ipv6登录成功'
        else
            echo 'ipv6登录失败'
            exit;
        fi
    fi
fi
nohup ./kcptun -c config/kcptun.json >log/kcptun 2>&1 &
nohup sslocal -c config/ss.json >log/ss 2>&1 &

content=$(../proxychains/proxychains4 -q -f ../proxychains/src/proxychains.conf curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com)
if [ $content != 200 ]
then
    echo '网络连接失败,请查看log日志'
else
    echo '网络连接成功\n使用proxychains全局代理\n例如\n../proxychains/proxychains4 -q -f ../proxychains/src/proxychains.conf wget www.baidu.com\n或者使用别名 pc wget www.baidu.com';
    exit;
fi
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值