前言

原创文章,转载引用务必注明链接,水平有限,欢迎指正。

本文环境:ubilinux 3.0 on UP Board

初识免流

所谓免流,就是免除手机访问网络产生的流量费用。其原理在乌云网上有过报道,大致就是手机在访问运营商的服务时(比如手机营业厅)是不产生流量费用的,然后可以利用技术手段让手机访问其他网站产生的流量伪装成运营商服务。

最早接触是在贴吧看到fmns什么的,自古贴吧出大神,后来听说妖火网,还向小邓要了个账号去一窥究竟。再后来听说了云免流,甚是高端。

免流相关网站

免流搭建服务不完全列表

• S-B汪—— http://sbwml.cn/

• 康师傅—— http://www.kangml.com/index.html

• 小猪—— http://xxzml.win/ 不错

• 小白—— http://xbmll.cn

• 享乐时光(吾爱)—— http://ftp.seovx.com/

• zyzh—— http://vpn.zyzh.cc/

• 大猫—— http://www.dmkuai.com/

• 新免流—— http://xinml.net/

• 大灰狼—— http://www.dhlml.cn/

• AFML—— http://www.35ml.cn/

• 猫头—— http://www.17mt.cn/ 大猫破解

• 青云—— http://qyun.ren

• 小飞侠—— http://xfxml.top/

这些一键搭建功能一般采用shell脚本+CentOS,可能因为国内RedHat系的服务器用的比较多。基本都是支持CentOS 6/7,注意有些只能在CentOS 6上使用。

注意互相可能存在利益相关,而且很多都是复制修改一下就上线的网站,所以有些网站寿命较短。

初探一键云免流安装部署脚本

大多有点常识的都会对这种免费云免流一键搭建脚本心存疑虑,毕竟听过很多暗藏后门的恶意行为。那我们就来看看究竟是什么内容吧。

解密安装脚本

发现shell脚本文件格式如下:

#!/bin/sh
skip=44 tab=' '
nl='
'
IFS=" $tab$nl" umask=`umask`
umask 77 gztmpdir=
# 以下是乱码

或者以ELF开头,然后核心代码都是乱码,一头雾水咋么办。后来看到VPS评审的这篇文章:提到了两个shell加密方法,gzexe和shc,以及对应的解密方法。这里我特地写了个脚本一键解密:

#!/bin/bash
# copyleft@code_paintium
# 这里下载最新版的shc解密工具unshc 0.7 2016年12月8日
wget https://github.com/yanncam/UnSHc/raw/master/latest/unshc.sh -O /usr/local/bin/unshc && chmod +x /usr/local/bin/unshc
#注意转义符\,heredocument
cat << _EOF_ > /usr/local/bin/jm
#!/bin/bash
FILENAME=\$1
# grep命令无需回显,且无视其为二进制文件
grep -aq 'skip=' \${FILENAME}
# 判断加密类型(单纯gzexe还是gzexe+shc)
if [ \$? == 0 ];then
gzexe -d \$FILENAME
fi
unshc \$FILENAME
_EOF_
chmod +x /usr/local/bin/jm

【解密效果】

注意:

  • 解密某个脚本使用jm [FileToDecrypt]即可,可以应对市面上大多数一键脚本
  • 不懂这个命令干啥的可以访问Linux命令大全查询
  • unshc不支持arm平台,仅支持x86_64平台解密,所以这里使用UP Board
  • 关于shc加密的更多信息请移步StackoverFlowLinuxJournal上的相关页面
  • 脚本写的比较丑,大家见谅,也可以参考知乎vforbox写的脚本
  • 对于sbw和康师傅,不排除使用UPX加密或者其他方式,但是这种靠调用外部命令的脚本,使用strace基本都能dump出来

大致翻看了上述几个流行的一键脚本,发现

  • 天下脚本一大抄。。。sbw和kangml的比较独立,kangml在优酷上有教学视频,小猪的写的脚本很好看,估计是程序员
  • 程序风格很多都还是停留在Windows bat脚本水平上,这里推荐看看DietPi的脚本,很棒
  • 验证方式主要有验证码、验证待搭建的VPS外网IP是否在数据库中有记录等
  • 为什么都是shell脚本,这种加密性非常差,破解比较简单。(因为大多数都是x86|x64架构,基本不需要考虑二进制程序兼容性的问题吧)

OpenVPN

主流是在VPS上搭建OpenVPN服务器,手机使用不同运营商的配置文件连接服务器,数据在服务器上中转,使得运营商认为访问的是免流网址。

优点:

  • 架设方便,支持流控,方便赚钱
  • 支持生成自己的APP (使用方式可以看康师傅在优酷上发布的视频)
  • 大多数路由器集成OpenVPN插件

缺点:

  • 手机耗电较高
  • 无法架设在国外VPS上,因为大长城的connection reset,手机根本连不上去
  • 配置文件比较麻烦

流控

流量控制面板这东西完全就是为了出售免流服务用的管理界面,类似SS-Panel控制面板。主要有以下几家,据说变脸狗比较有名。

Shadowsocks-R

SS原作者被喝茶之后就不再维护SS项目了,但是正如XX-Net之于GoAgent,SSR作为一个优秀的继任者,为SS带来了许多新特性,本来是为了across the GreatWall用的现在免流也可以了。无奈作者是个二次元,粉红色界面审美接受不能,所以有了魔改版,增加了KCPtun支持。该方式是在本地增加混淆选项,为流量增加文件头,达到免流的目的。

SSR服务端支持多语言多平台,搭建SSR服务器看了一圈选择用小猪的脚本,使用chacha2加密(对ARM平台优化,而手机大部分是ARM平台),Python版SSR(支持特性最多)。

在UP Board上搭建免流服务器

作为个人使用,使用SSR就可以了。如果你想搭建OpenVPN,自个儿看脚本吧。

安装SSR

项目Github地址:https://github.com/breakwa11/shadowsocks-rss

破娃酱Twitter地址:https://twitter.com/breakwa11

话说破娃现在好像被人撕B了。

SSR的版本特点:

  1. 全能代理,同一端口支持socks4/socks4a/socks5/http
  2. 节点统计,包括延迟、连接数、当前下载速度、最高速度、出错率等等
  3. 连接管理,随时断开指定节点的连接,或修改节点后自动断开
  4. 协议转换,把UDP包封装于TCP里发送,或把TCP包封装于UDP里发送
  5. 多重代理,通过设置前置socks5/http代理,可达到任意重代理
  6. 协议插件,支持自定义协议和协议混淆,详见ShadowsocksR插件文档 <<== 要了解插件的点这里看

SSR支持的服务端包括C#、Python和Libev,后者占用资源少,相应的支持的特性差一点。由于ubilinux自带完整的Python环境,我们这里搭建Python版。

安装方法1

参考官方文档 ,比较简单,可供参考

安装方法2

使用小猪的脚本,看了一圈发现他的脚本写的比较好看,经过审查并没有后门行为,此外该脚本默认下载编译安装libsodium库,可以支持针对ARM架构优化的chacha20加密协议,因为在服务端和客户端都要进行加密解密的过程,所以推荐chacha20。安装完毕后修改/etc/shadowsocks.json,主要是server_portpassword字段。

wget http://xxzml.win/SSR && bash SSR #下载并自动安装SSR服务器,需要root权限(sudo)
卸载方法:bash SSR uninstall
使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
状态:/etc/init.d/shadowsocks status
配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
安装路径:/usr/local/shadowsocks/shadowsoks

UP Board 与 AES加密

如果使用树莓派等平台搭建SSR服务器,加密协议选择AES时会非常占用系统资源。而UP Board的Soc——Atom x5 z8350 支持aes加速,可以大大降低资源消耗。所以aes协议也是一个不错的选择。

【Intel 官方文档】查看z8350文档可知其支持aes快速加解密技术。

【CPU支持特性】可以看到CPU确实支持aes加速技术。

免流配置文件抓取

安卓可以使用Wi.cap (需要root),苹果不知道,tcpdump?

【安卓Wi.Cap抓包】可以从酷安下载,需要root权限。点击方框选择#text——text = GET|text = POST

另外推荐不需要root的方法比如Fiddler,基本配置参考这篇文章

【Fiddler界面】

具体去恩山或者谷歌搜索看看。比如抓取host为iting.music.189.cn:9101,则推荐SSR服务器开放端口为9101,手机SSR混淆参数为iting.music.189.cn。

OpenVPN配置直接用官方生成的吧。有问题PM我,不详谈啦~

如果UP Board没有公网IP?

如果UP板挂在的路由器有公网IP,则开启端口转发即可。否则可以使用ngrok(1.7以后不开源)、frp (推荐,带面板,性能好)。其他方案或者询问公开的服务器地址也可以PM我。

后记

最初接触SS的时候很新鲜,名字叫影袜,还会用到一个很麻烦的软件。另外KCP协议在github上发现的,还问群里枫大这协议咋样,现在也是火得一塌糊涂。

在UP Board 上搭建M——L服务器的更多相关文章

  1. OpenWrt上搭建纯L2TP服务器[ZT]

    转自:http://www.openwrt.pro/post-389.html 纯L2TP(l2tp + ppp,无IPSec) 首先安装xl2tpd软件包 opkg update opkg inst ...

  2. mac 教你如何在Mac上搭建自己的服务器——Nginx

    WHAT 本篇主要是基于Nginx在Mac上搭建自己的服务器. 我相信很多朋友肯定是第一次听到Nginx,关于它具有怎样的传奇,这儿肯定说不完也说不透. 有兴趣的朋友可以自行google或者baidu ...

  3. 【转】在RedHat上搭建自己Email服务器

    原文:http://6839976.blog.51cto.com/6829976/1323482 by LN__@linux 目前邮件服务器中,想要拥有自己的邮件服务器,单单使用senmail,pos ...

  4. 在Mac上搭建本地Apache服务器一些注意点

    一般在开发ios程序中,我们需要使用到和服务器的交互操作. 一般我们在Mac上使用Apache来搭建服务器.数据库采用MySQL.在Mac中Apache是自带的.所有,我们可以不需要额外的去Apple ...

  5. Linux 上搭建 git 的服务器

    搭建服务器 假设服务器的名字是 git.example.com. 首先,添加一个叫做git的用户adduser git. 然后如果不存在的话, 为这个用户新建一个主目录mkdir /home/git, ...

  6. 在阿里云上搭建Spring Initializr服务器。

    参考的博客有: https://blog.csdn.net/chszs/article/details/51713174 https://segmentfault.com/a/119000001137 ...

  7. nginx上搭建HLS流媒体服务器

    http://blog.csdn.net/cjsafty/article/details/7922849 简介:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTT ...

  8. 在腾讯云(windows)上搭建node.js服务器

    1:安装Node.js 使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:\Program Files\nodejs. 但这里我们需要修改安装路径到:D ...

  9. Mac上搭建rtmp流媒体服务器(结合FFmpeg的使用)

    1.确保安装homebrew ---安装则跳到第二步 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/ins ...

随机推荐

  1. iOS 设置UILabel的行间距并自适应高度

    NSString *contentStr = @"总以为,在最初的地方,有一个最原来的我,就也会有一个最原来的你"; UILabel *tempLabel = [[UILabel ...

  2. Eclipse安装SVN插件

    Eclipse 安装最新SVN插件 下载地址 下载最新的Eclipse,我使用的是eclipse-jee-kepler-SR2-win32-x86_64.zip(Eclipse IDE for Jav ...

  3. 生成freeswitch事件的几种方式

    本文描述了生成freeswitch事件的几种方式,这里记录下,也方便我以后查阅. 操作系统:debian8.5_x64 freeswitch 版本 : 1.6.8 在freeswitch代码中加入事件 ...

  4. 【mysql】关于binlog格式

    写在前面的话 1.推荐用mixed,默认使用statement,基于上下文  set session/global binlog_format=mixed; 2.二进制日记录了数据库执行更改的操作,如 ...

  5. MySQL 数据库的备份与恢复

    一.MySQL 常见的备份方式 1. 直接拷贝数据库文件(物理拷贝) 2. 使用 mysqldump 工具备份 3. 使用 mysqlhotcopy 工具备份 4. 使用 mysql 的主从同步复制, ...

  6. 最强 Android Studio 使用小技巧和快捷键

    写在前面 本文翻译自 Android Studio Tips by Philippe Breault,一共收集了62个 Android Studio 使用小技巧和快捷键. 根据这些小技巧的使用场景,本 ...

  7. swift 简介和常量与变量 --- swift 入门

    一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))/ ...

  8. Typical EEG waveforms during sleep 睡眠状态下的几种典型EEG波形

    Sources: EEG Atlas

  9. [LeetCode] Longest Repeating Character Replacement 最长重复字符置换

    Given a string that consists of only uppercase English letters, you can replace any letter in the st ...

  10. [LeetCode] Palindrome Permutation II 回文全排列之二

    Given a string s, return all the palindromic permutations (without duplicates) of it. Return an empt ...