记一次ACM校赛的外榜和外网打星实现

由于ACM校赛的时候机房断网,但是需要一个外网能查看的外榜和一些外网打星账号,便采用以下方法实现。

机房无公网IP,只有局域网IP,所以需要一台有公网IP、带宽足够大的服务器。

domjudge有一个外榜链接:http://127.0.0.1/public?static=true ,不过同样只能在内网访问。但为确保安全,代理机和domjudge服务不在同一台机器上。首先找一台机器,安装nginx服务并配置反向代理为局域网外榜链接。
由于机房除了判题机都是Windows7系统,所以我就直接找了一台win系统的机器装nginx。然后在服务器和本地机都下载frp(关于frp的使用看这里)。
在我之前写的文章基础上,在frps.ini的[common]中加入:

vhost_http_port = 8765

在frpc中加入:

[web]
type = http
local_ip = 127.0.0.1 //本地web服务IP
local_port = 80 // 本地web服务端口
custom_domains = xxx.com //一个外网域名

机房断网后,先到网络和共享中心禁用有线连接,通过无线连接WLAN热点并启用frp,然后放开有线连接即可,外网打星参见前一篇文章。不过为了防止外网枪手,需要等待非打星选手交出通信设备后,再发放密码,离场后需要立即更改密码。

知识共享许可协议
Text is available under CC BY-NC-SA 4.0 unless otherwise stated.

除非特殊声明,本站所有内容均以 CC BY-NC-SA 4.0协议授权。
上一篇
下一篇