服务器连接校园网

732 阅读3分钟

服务器连接校园网(北京信息科技大学)的作用包括但不限于课程表开发、校园论坛开发,本文作者为 ThinkStu

北京信息科技大学使用深信服开发的EasyConnect作为校园网连接软件,虽然该软件拥有 Linux 桌面版,但是安装图形界面不仅会占用大量系统资源,而且使用期间还经常会无缘无故掉线,无法提供稳定服务。

docker-easyconnect是一款在 GitHub 开源的EasyConnect替代品,其不仅能够直接在命令行运行(无需安装图形界面),而且能够提供稳定服务(掉线自动登录)。

搭建前准备:

一台云服务器(这里我使用的是腾讯云 Centos7,Ubuntu 类似)

大致架构:

EasyConnect for Docker

  • 用户请求服务器 1080 端口。
  • 服务器将请求转发至 Docker 容器内部 1080 端口。
  • 容器访问校园网,获得数据并原路返回。

开始搭建:

一、安装 Docker

服务器已经安装 Docker 的同学请跳过这一步!

在服务器上执行以下指令,分别对 Docker 实现:卸载原有安装环境、安装、启动、设置自启动。

sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker

二、运行 docker-easyconnect

在服务器中执行以下语句,使用 Docker 下载并运行 docker-easyconnect(注意:请将其中的学号和校园网密码修改为你自己的)。

docker run \
--cap-add NET_ADMIN \
--device /dev/net/tun \
-it -p 0.0.0.0:1080:1080 \
-e EC_VER=7.6.8 \
-e CLI_OPTS="-d 222.249.253.5 -u 学号 -p 校园网密码" \
--name=easyconnect hagb/docker-easyconnect:cli
  • –device /dev/net/tun:将TUN/TAP设备分配给容器,这是用于创建连接校园网通道的必要设备。
  • –cap-add NET_ADMIN:给容器分配网络管理员权限。
  • -p 0.0.0.0:1080:1080:将容器的 1080 端口映射到主机的 1080 端口,允许主机通过该端口与容器进行通信。
  • -d:校园网地址(必须为 ip 形式),例如:信息科大的校园网远程登录地址是https://vpn.bistu.edu.cn,经查 ip 指向222.249.253.5

登录之后,如果出现这个界面则表示你已经将服务器连接至校园网,不过我们还有最后一步!

image-20221001140927094

三、开放服务器安全组限制

注意:向外网开放 1080 端口可能会使服务器受到攻击,本示例开放端口只是为了演示,具体的安全策略需自行制定。

登录腾讯云服务器网页,选择管理 → 安全组管理 → 手动添加安全组规则 → 开放 1080 端口。

image-20221001141601501

四、本地测试

在你的电脑上执行以下语句,我们将使用服务器作为代理访问校园网服务(请修改为你自己的服务器 ip 地址):

curl --socks5-hostname socks5://服务器ip地址:1080 https://info.bistu.edu.cn/

2

如果你能看到下述页面,说明你已经成功运行docker-easyconnect,接下来我们就可以对外提供稳定的校内服务了!

image-20221001142340906