内网穿透反代哈课表资源站实现校外下载

背景

近日,z同学欲下载专业音乐制作软件FL Studio。四处寻找破解版无果。

我便看了一眼哈课表的资源列表。

哈课表资源列表

我发现FL Studio赫然在列。接下去就是如何把这个软件分享给她的问题了。

众所周知,在哈课表资源列表中的链接是校园内网的链接。很显然,哈课表技术部在学校某台服务器上存储了这些 软件的安装包,并提供了一个下载服务。

z同学在校外,无法访问学校内网,那是不是我只能先下载好后再发给她呢?这未免有些麻烦了。

解决过程

我们先观察下载链接。

1
http://10.245.146.27:8008/FL%20Studio/flstudio_win_20.7.2.1863.exe

首先我在实验室的主机是能够直接访问到该ip的。那我们可以先用做个反代,先让服务看起来是我的主机提供的2333。以下是nginx配置文件。

1
2
3
4
5
6
7
8
9
server
{
listen 8008;
server_name 127.0.0.1;
location / {
root /var/www/html;
proxy_pass http://10.245.146.27:8008/;
}
}

这样做完后,从表面看,资源下载的服务就是我的实验室机器的8008端口提供的了。

然后我们就得把"我的服务"实现公网访问了。

要实现公网访问,必然需要内网穿透。考虑到下载速度因素,我在我带宽较大的洛杉矶的主机上下了个frp。开启frps。配置如下。

1
2
3
[common]
bind_port = 7000
vhost_http_port = 8080

然后让我的实验室主机的frpc去连接,因为我的实验室主机一直与阿里云服务器内网穿透着。我们需要新建一个新的frpc.ini。这里就叫做frpc2.ini。配置如下。

1
2
3
4
5
6
7
8
[common]
server_addr = california.wuuconix.xyz
server_port = 7000

[hit]
type = http
local_port = 8008
custom_domains = hit.wuuconix.link

然后运行一个新的frp客户端程序。

1
nohup ./frpc -c ./frpc2.ini >frpc2.log 2>&1 &

这样实现了访问http://hit.wuuconix.link:8080/FL%20Studio/flstudio_win_20.7.2.1863.exe就能够下载文件了。

接下来我们再配置一下洛杉矶主机的nginx,操作一波,去掉端口并实现https。配置如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
server
{
listen 443 ssl;# https 监听的是 443端口
server_name hit.wuuconix.link;

keepalive_timeout 100;

ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

ssl_certificate /etc/nginx/ssl-link/fullchain.crt; # 证书路径
ssl_certificate_key /etc/nginx/ssl-link/private.pem; # 请求认证 key 的路径

ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;

index index.html index.htm;
location / {
root /var/www/html;
proxy_pass http://hit.wuuconix.link:8080;
}
}

server
{
listen 80;
server_name hit.wuuconix.link;
rewrite ^(.*) https://$server_name$1 permanent;
}

这样就能实现这样的效果。

用户访问http://hit.wuuconix.link/FL%20Studio/flstudio_win_20.7.2.1863.exe。会被重写为https://hit.wuuconix.link/FL%20Studio/flstudio_win_20.7.2.1863.exe。然后用户的界面不会变了,开始下载了。但是实际上这个443端口是一层反代,实际上提供服务的还是我们的frp端口http://hit.wuuconix.link:8080

所以本质没变,但是表面上看着就很舒服了,没有端口,还是https,看着十分正式。

之后的故事

这样已经满足一开始的目的了,z同学可以在校外直接访问http://hit.wuuconix.link/FL%20Studio/flstudio_win_20.7.2.1863.exe实现下载哈课表提供的资源。

速度也教快,呈波浪形233,平均速度大概是1MB/s,峰值达到了3MB/s。比我的阿里云主机可快多了😂。

迅雷下载速度曲线

然后我看着哈课表资源列表中的这么多资源 ,我打算做个列表开方便点击后直接下载。

我已经准备好vue,开始准备一个个写链接的时候,我访问了一下http://10.245.146.27:8008

Go Http file server

原来它有一个网页(

而我是反代的它,那不是直接访问http://hit.wuuconix.link就能访问到这个列表嘛!我还在哈课表上一个个软件复制链接做页面2333,感觉自己蠢爆了。

资源列表

战术总结

这个暑假学到的内网穿透和nginx反代都派上了用场,在生活中真正派上了用尝。

如果你在校外,但想下载哈课表提供的资源的话,欢迎访问这个链接。

https://hit.wuuconix.link/ 🎉


内网穿透反代哈课表资源站实现校外下载
https://wuuconix.link/2021/09/02/resource/
作者
wuuconix
发布于
2021年9月2日
许可协议