从前没有买 VPS 的时候一直想着自己搭一个服务器,所以一直在关注内网穿透方面的软件。其中一个便是 frp ,一个用 golang 写的可用于内网穿透的高性能的反向代理应用。0.13.0 出来以后我在其 README.md 文件里发现了一段“通过 frpc 所在机器访问外网”的配置说明,忽然想到可以用来搭建学校教务网的外网访问。

大致思路是在寝室使用树梅派作为 frpc 客户端,在 VPS 上跑 frps 端。学校校园网插上网线后会自动分配一个 IPv6 地址,不用登录就可以访问 IPv6 站点了,所以可以不用考虑走校园网的流量费。

首先选择下载 linux_amd64 (如果是32位就选386) 的 frp 到 VPS 上, tar -zxvf 解压,得两个可执行文件和几个配置文件,编辑(也可以自己新建) frps.ini 文件:

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin

其中端口可以自己修改,dashboard 是用于展示 frp 的状态以及代理统计信息的,可以不用。

之后 ./frps -c ./frps.ini 运行。也可以使用 nohup 丢后台: nohup ./frps -c ./frps.ini &

之后​设置树梅派,ssh 连接树梅派,下载 linux_arm​ 对应的文件,解压设置 frpc.ini 文件:

[common]
server_addr = x.x.x.x
server_port = 7000

[http_proxy]
type = tcp
remote_port = 6000
plugin = socks5

其中 server_addr 填写 VPS 的地址,因为走的 IPv6,所以地址外还需加方括号: [IPv6地址],另需注意 server_port 与 frps 中的 bind_port 对应。plugin 亦可选填 http_proxy
设置完成, nohup ./frpc -c ./frpc.ini & ​丢后台。自此,所有设置都已完成。浏览器设置 http 或 socks5 代理(因 plugin 选择而异),地址地址填 VPS地址:远程端口(譬如我填的是 owncity.win:6600),即可通过 frpc 机器的网络访问教务网。

推荐在 Chrome (Chromium) 中使用 Proxy SwitchyOmega 控制代理,只需新建情景模式即可。

初版于 2017年9月9日-12:10