1、更新软件并安装vim
1 | sudo apt-get update |
2、更改 SSH 默认端口
1 | sudo vim /etc/ssh/sshd_config |
这里将ssh端口改成了22222,如下图(PS:不要问我为啥强行改22号端口,就是任性,额,其实有点其他用途,青大校友表示当年我就是靠这个强行免费使用校园网):
3、安装shadowsocks-python版本
1 | sudo apt-get install python-pip |
然后创建一个 json
文件并在其中填写个人配置信息即可,比如在 /home/my_ss_config.json
中,填写如下信息:
1 | { |
只要更改后面带 #
号的一些字段值即可,如果想多用户的话,可以将 password
字段改成如下模式(ss使用端口值识别不同的用户):
1 | "port_password": { |
一切准备就绪,接下来使用如下命令即可运行 SS 服务,实现 Cross the Great Fire Wall
。
1 | sudo ssserver -c /home/my_ss_config.json -d start |
4、多用户模式流量统计
说一下我为啥要搞这么个功能,前天,我TM大半夜的正嗨呢,突然,网断了!于是乎,打开4G,还是无法操作,这。。。。我手纸都准备好了,竟然发生这样的事?(开玩笑,哈哈,根正苗红的科研知识分子,油管看科研视频的好吧,为科研奉献全身!)收到邮件,告诉我流量用完了,呵。。。
于是乎,大家公用的情况下,私开个个人账号,每到月末的时候应急用。于是乎用到了上面讲到的多用户模式,但是这样还不行,为每个用户限制流量使用上限才能达到目的。
找了找,发现国内的某度关于这方面是真的干净,上某歌,查到可以使用 ss-bash
实现,github上有,实现的原理就是:不同的用户分配不同端口,使用iptables规则获取各端口的流量,脚本循环运行,在固定时间间隔根据iptables结果统计流量使用情况,并在流量超过限制时,添加对应端口的iptables reject规则以禁用端口。
安装shadowsocks与ss-bash之后,shadowsocks就不用做任何配置了,省去了上面的步骤,由ss-bash管理shadowsocks,包括配置的文件等等。有个缺点就是,ss-bash目前只支持python版Shadowsocks,只支持统计ipv4流量,但这问题影响不大。
执行如下指令:
1 | apt-get install unzip #下载解压工具 |
现在就可以使用相关命令配置 SS 了,具体操作指令如下(可通过 ./ssadmin.sh
命令查看):
1 | 用法: |
添加完账户后,./ssadmin.sh start
启动后,./ssadmin.sh show
即可查看每个用户的当前流量使用情况。如下图:
ssadmin
文件夹中的各个文件的含义如下:
1 | ssadmin.sh #管理程序,所有命令通过该程序执行 |
备注:
1、默认的流量采样间隔为5分钟,流量间隔可根据实际需求调整,但最好不要太小,比如小于10秒。可打开文件sslib.sh
,修改INTERVEL
的值,单位为秒。
2、如果shadowsocks不是使用apt-get或者pip安装,无法自动找到 ssserver
文件时,请手动指定程序的具体位置。打开文件 sslib.sh
,修改 SSSERVER
的值,比如 ssserver
的路径为 /usr/local/bin/ssserver
时,修改为:
1 | SSSERVER=/usr/local/bin/ssserver |
5、To Do List
既然身为抓包组里的一员,就要干点抓包相关的事,是不是。比如说,十分好奇为啥大家流量用得那么多呢,肯定看视频了,看啥视频了呢,奥特曼大战葫芦娃.avi
?初步打算在服务器上进行流量采样,比如万分之一的采样率,然后记录下对应账户的 DNS
请求的 query
字段值,client hello
中的SNI
字段等。
最近比较忙(其实就是懒),回头抽空搞一发。。。嘻嘻