搭建回校代理,方便在外访问学校服务器

需求

  • 由于学校vpn仅限教职工与博士使用,同时校园网仅限一台pc设备同时在线,所以有时需要笔记本连接热点的情况下连接实验室内部的服务器就显得非常蠢笨以及困难。
  • 目前已经搭建了校园网内台式机的rdp外网连接,但是在不稳定的网络状况下,rdp有时候心有余而力不足,同时更多的需求只是需要进行内网的ssh连接,使用rdp未免有些大材小用

实现工具

Anyproxy

  • 阿里开源的一款开箱即用的代理服务
  • 带有web监控页面
  • 支持http/https代理
  • 依赖于nodejs,方便安装
  • 支持生成CA证书认证

Frp

  • go语言的一款开箱即用内网穿透
  • 支持插件,方便后期进行拓展
  • 支持单服务端多客户端
  • 全平台对称,方便跨平台使用

实现方案

安装Nodejs

  • 官网下载nodejs的安装包
  • 按照你默认设置进行安装

Note: 中途会提示是否安装choco,在本次教程中可以将勾选取消,目前我们用不到

使用npm安装anyproxy

  • 启动cmd/powershell任意命令行窗口
  • npm install anyproxy -g
  • 命令行窗口直接执行anyproxy --port <port_u_want_to_use_as_proxy>

==Note:==上述测试可能会出现command not found的问题,需要手动将命令行定位到<node_install_path>/node_global/node_mudoles/

在网内机器上安装配置frpc

  • Release页面下载合适的系统版本并解压
  • 使用记事本编辑frpc.ini,替换为下列内容
[common]
server_addr = <ur_frps_address>
server_port = <ur_frps_port>

[anyproxy-interface]
local_ip = 127.0.0.1
local_port = 8002
remote_port = 8002

[anyproxy-http]
local_ip = 127.0.0.1
local_port = <port_u_want_to_use_as_proxy>
remote_port = <port_u_want_to_use_as_proxy>
  • 启动测试frpc.exe -c frpc.ini

在具备公网ip的机器上安装frps

  • 下载同上
  • 使用合适的文本编辑工具编辑frps.ini,替换为下列内容
[common]
bind_port = <ur_frps_port>
  • 启动测试frps -c frps.ini/

Note: 这里如果客户机与服务器配置没错的话,应该已经能够看到log输出两台机器已经互联

使用

全局系统代理

  • 设置 -> 网络 & Internet -> 代理 -> 手动设置代理 -> 填写frps地址与端口
  • 此时走系统代理的服务应该已经可以访问网内地址

ssh内网地址

  • 无论什么平台,其默认命令行窗口是不走系统代理而是走更底层协议的
  • ssh命令提供了新的代理接口
  • 下载工具
  • 将其放在系统任何路径下,将路径添加到Path环境变量里
  • 再次执行ssh连接时添加参数ssh -p <port> <user>@<addr> -o "ProxyCommand connect -H <frps_address>:<port_u_want_to_use_as_proxy> %p %h"

浏览器代理

  • 推荐使用SwitchyOmega
  • 在配置中新建代理,设置对应代理地址、端口
  • 在访问校内网页时走代理即可