Normal view

There are new articles available, click to refresh the page.
Before yesterday秋日

英文

By: AUTUMN
10 April 2018 at 22:55

今年因为自动忽略了报名时间而错过了四六级报名考试。不过话说回来,我最近突然不知怎么的开始重视起了英文,不仅开了一个破博客(XD.CI)还下载了扇贝+百词斩来提高英文水平。总是觉得学了这么多年的英文,到用的时候却总是发现没有什么句子能够熟练的运用上来。就是感觉白学了。

目前计划大概是这样的,破博客用来实践,扇贝来提升听力,句子理解和造句;百词斩来提升词汇。不知道能够坚持多久,毕竟我是三分钟热度的人。有经验的朋友可以和我分享一下。

破博客(XD.CI)

早就想用Hexo来建一个博客了,上个礼拜又在一个地方看到一个设计很棒的主题。原本以为是免费的。后来看了下,要9美元,不过风格刚好符合自己的口味,忍痛也就买了。

原本打算放在腾讯云香港上的。因为考虑到国内访客,想着国内解析到腾讯云香港,国外解析到cloudflare。不过这台只有2Mbps的带宽。而我又打算在破博客上放点高清的图片(不想用七牛,图床等各类服务)。后来我又觉得破博客应该没人看,只有我自己意淫而已,就直接全局走cloudflare的cdn了。

然而我又想了想,源站带宽太小,就算cdn缓存再久,速度也是会受一点影响,于是,在腾讯云放了几天之后迁移到了BandwagonHost的QN机房。大致原因如下:

  • cloudflare 官网虽然显示有香港数据中心,但是貌似免费套餐并不会给你分配。而且香港节点除了对移动好之外,其他(电信,联通)都直接绕道美国去了。
  • 源站带宽太小,只有2Mbps。
  • QN机房貌似有cloudflare的节点,我在服务器上Ping只有0.3ms左右。

所以就这样,破博客就建立好了。

备份

我这个博客其实很少备份,主要是我非常相信腾讯云的稳定程度。不过最近又是突发奇想,想着要把数据备份一下。看了这么多家网盘,我自始自终还是比较相信Dropbox的,索性就将数据定时备份到了这上面。

网络技术部服务汇总

By: AUTUMN
19 March 2018 at 15:21

注意:校内断网时段或网络出问题,外网服务全部不可用!!!

FTP

ftp.qiuri.org #内网IP自动更新账户/密码 admin/fjgh123

FTP-WEB(网页界面)

内网:http://ftp-web.qiuri.org外网:http://ftp-web.frp.qiuri.org 账户/密码 admin/fjgh123#因校园网上传速度所限,外网访问下载速度不会超过10Mbps,不建议用来下载大文件

NANABT.COM 校内论坛外网访问

http://nanabt.frp.qiuri.org #已加黑科技,访问迅速

Raspberry Pi(树莓派)系统负载及温度状况

内网:http://pi-status.qiuri.org外网:http://pi-status.frp.qiuri.org

Dormitory(宿舍)24小时温度

内网:http://echarts.qiuri.org外网:http://echarts.frp.qiuri.org

Aira2 下载界面

内网:http://aria2.qiuri.org外网:http://aria2.frp.qiuri.org

透过DNS Tunnel绕过校园网认证系统实现免费上网

By: AUTUMN
16 September 2017 at 20:26

当我们使用校园网或者其他其它需要认证的公共热点时候,通常都会在手机连接Wi-Fi的时候,弹出一个web登录界面,让你去登录,或者输入你的手机号码认证。如果不登录,会无法连接外网,无认证访问其它网页(非https页面)时,会自动跳转到认证web界面。这个跳转相当于一个302重定向,把你重定向到另外一个页面,主要是通过篡改http报文,在我的理解来看,应该算作劫持。而https加密传输,所以无法重定向,一般访问直接回显示无法连接之类的。在我的理解来看,应该算作劫持。

回到正题。有些细心的人可能会发现,当我们无认证连接后,会获得一个内网IP地址。(绝大多数情况)如果我们去利用cmd或者(Mac)终端去ping一个域名,我们会发现,可以返回到这个域名的IP地址,但是无法得到延迟(ms),也就是我们无法发包过去。所以,绝大多数需认证热点(也可以是校园网有线等)网关(交换机)都默认放行了dns报文。

具体认证原理详见 http://www.ruijie.com.cn/fw/wt/36502

我们可以通过一个简单的步骤来查询校园网(需认证热点等)网关是否放行了dns报文。一般通过以下步骤:

nslookup www.baidu.com

若成功会显示如下(IP地址不一样无所谓,因为baidu开启了cdn),

AUTUMN:~ AUTUMN$ nslookup www.baidu.comServer:        119.29.29.29Address:    119.29.29.29#53Non-authoritative answer:www.baidu.com    canonical name = www.a.shifen.com.Name:    www.a.shifen.comAddress: 183.232.231.173Name:    www.a.shifen.comAddress: 183.232.231.172

如果可以的话,就可以进入下一步了。若否,那么要说的方法应该是不奏效了。

一般来说,绝大多数的认认证路由器都一般都放行dns报文,有的甚至放行udp 53的所有数据包。下面我要讲的方法是仅允许DNS报文通过的网关(这种方法成功率很高),另外一种情况可能会在下一篇文章提及到。两者的优缺点将会在文末点评一下。

首先,我会利用到两个软件,一个是DNS2TCP,一个是iodine,分别在Windows和Mac OS演示。

准备

一台有公网IP的vps或服务器一个有自主管理权限的域名

域名准备阶段

不管是用哪个软件,域名设置都是一样的,可以参考我的设置类比一下即可。

a NS b.qiuri.org.b A YourServerIP

设置好大概是这个样子

这其中的原理我就不具体解释了。

开始阶段

之前讲过,我会利用到两个软件,首先我会讲iodine的配置,在Mac OS上操作,然后再在Windows上演示另外一个软件。

iodine

Server端:

我的vps的操作系统是ubuntu 14.04,因为源里面已经带有了iodine,所以安装可以直接 apt-get install iodine

安装好之后

iodined -f -P YourPassword 192.168.100.1 a.qiuri.org# -f 开启前台显示# -P 连接密码,自己设置# 192.168.100.1 是自设的内网网段 也可用192.168.10.1之类# a.qiuri.org 监听a.qiuri.org的DNS查询请求

Client端:

我的Mac操作系统是 OS X 10.11.6,一般来说利用homebrew可以直接安装iodine,但我直接安装会提示

AUTUMN:~ AUTUMN$ brew install iodineError: No available formula with the name "iodine" ==> Searching for a previously deleted formula...iodine was deleted from homebrew/core in commit 17df29ee00:  iodine: migrate to boneyard  due to tuntap requirementTo show the formula before removal run:  git -C "$(brew --repo homebrew/core)" show 17df29ee00^:Formula/iodine.rbIf you still use this formula consider creating your own tap:  https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap.html

所以我采用编译安装

# git clone https://github.com/yarrick/iodine.git# cd iodine# sudo make# sudo make install

若提示错误,请安装zlib开发包,具体可以用brew安装: brew install zlib

根据我安装成功之后,输入iodine会提示-bash: iodine: command not found,这个问题貌似会出现在10.11以上的系统,这时候我们需要配置一下环境。

在~/.zshrc中写入如下配置:

# iodinePATH="/usr/local/sbin:${PATH}"export PATH

然后输入source ~/.zshrc,一般来说,就可以运行iodine命令了。

安装后:

iodine -f YourServerIP a.qiuri.org# Mac用户需要加 -d utunx 否则会出段错误例: iodine -f -d utunx YourServerIP a.qiuri.org

运行成功后

bash-3.2# iodine -f -d utunx 101.254.176.228 a.qiuri.orgEnter password: Opened utun2Opened IPv4 UDP socketSending DNS queries for a.qiuri.org to 101.254.176.228Autodetecting DNS query type (use -T to override).Using DNS type NULL queriesVersion ok, both using protocol v 0x00000502. You are user #0Setting IP of utun2 to 192.168.100.2Adding route 192.168.100.0/27 to 192.168.100.2add net 192.168.100.0: gateway 192.168.100.2Setting MTU of utun2 to 1130Server tunnel IP is 192.168.100.1Testing raw UDP data to the server (skip with -r)Server is at 101.254.176.228, trying raw login: ....failedUsing EDNS0 extensionSwitching upstream to codec Base128Server switched upstream to codec Base128No alternative downstream codec available, using default (Raw)Switching to lazy mode for low-latencyServer switched to lazy modeAutoprobing max downstream fragment size... (skip with -m fragsize)768 ok.. 1152 ok.. ...1344 not ok.. ...1248 not ok.. ...1200 not ok.. 1176 ok.. 1188 ok.. will use 1188-2=1186Setting downstream fragment size to max 1186...Connection setup complete, transmitting data.

这时候我们ping 192.168.100.1,相当于ping了我们的服务器IP。所以可以理解成访问192.168.100.1就等于访问了我们远程服务器。

最后,我们就可以通过dns隧道来进行免费上网。利用ssh或者socks等,这里我用到的是socks,用了大家比较常见的shadowsocks,首先在服务器搭建好shadowsocks。然后直接shadowsocks全局代理即可绕过认证透过dns隧道进行上网了。配置示例如下图。


DNS2TCP

同理,我们在域名准备阶段先解析好域名。

Server端:

因为我使用的vps是ubuntu 14.04,同样的,源里面已经包含了这个软件,所以可以直接apt-get install dns2tcp来进行安装。

运行这个软件之前,我们首先要配置一下:

在 /etc 建立一个名为 dns2tcpd.conf 的文件,然后输入以下内容

listen = 1.2.3.4 #你的远程服务器IPport = 53user = nobodychroot = /tmpdomain =a.qiuri.org #上面配置NS记录的域名resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:3128 #可供客户端使用的资源

大致原理,以ssh为例。客户端本地监听22端口,将数据传送到指定端口,DNS2TCP将数据以dns协议传送到服务器端口,最后服务器再把数据转发到对应资源的端口去。

配置好之后,运行

dns2tcpd -f /etc/dns2tcpd.conf -F -d 2-f 读取配置文件-F 强制前台运行-d 2 开启debug, 等级为2

如无错误,服务端已经没有问题了。

Client端:

Windows的话,我们需要下载一个软件 dns2tcp.zip 解压到任意路径就好

然后运行cmd,进入你刚刚解压软件的目录,也就是dns2tcp.exe所在目录,运行dns2tcp

dns2tcpc -r ssh -z a.qiuri.org 1.2.3.4 -l 6666 -d 2#-r 后接服务名, 这里我们用到ssh#-z 后接NS记录的地址和远程服务器IP,Tips:IP地址最好写上, 可以不写#-l 后接本地端口,可以随意,只要不冲突#-d 开启 Debug模式

运行成功时候,会显示如下图,这时候就把这cmd放着,切记不要关闭

缺图

接下来我们要配置本地ssh,将会用到xshell,直接去官网下载安装即可 https://www.netsarang.com/products/xsh_overview.html

安装好后,打开,添加如下配置:

缺图

然后连接,直接输入远程服务器账户密码即可。

缺图

连接成功后,我们就可以开始建立ssh代理。

查看–隧道窗格,点击转移规则,然后右键添加,类型选择**Dynamic (SOCK4/5)**,默认端口不必修改,最后确定。

缺图

如果单纯只用浏览器上网的话,我们可以在IE代理进行如下设置。

Internet选项-连接-局域网设置,勾选为LAN使用代理服务器,点击高级,套接字地址127.0.0.1端口填1080

缺图

完成后,即可绕过绝大多数认证。注意,如果xshell连接不上的话,请在远程服务器和本地重启一下dns2tcp,一般多试试就会连接成功了。

两个软件分析和这个方法的利弊。等待更新,还在军训中,抽时间写的。

❌
❌