解决学校服务器流量问题方案
Posted xbw12138
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决学校服务器流量问题方案相关的知识,希望对你有一定的参考价值。
解决学校服务器流量问题方案
服务器版本
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
#!/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)
#!/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
以上是关于解决学校服务器流量问题方案的主要内容,如果未能解决你的问题,请参考以下文章
使用 Elasticsearch 进行 AJAX 通信的流量和访问控制解决方案?