在ECNU校园网内搭建反向代理

Posted 曾晋哲

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ECNU校园网内搭建反向代理相关的知识,希望对你有一定的参考价值。

之所以不用学校的思科Anyconnect VPN服务,是因为其谜一般的稳定性:

学校VPN真辣鸡
     16:38:46    Connected to vpn-ct.ecnu.edu.cn.
     16:38:48    Reconnecting to vpn-ct.ecnu.edu.cn...
     16:38:50    Establishing VPN - Examining system...
     16:38:50    Establishing VPN - Activating VPN adapter...
     16:38:50    Establishing VPN - Configuring system...
     16:38:51    Establishing VPN...
     16:38:51    Connected to vpn-ct.ecnu.edu.cn.

我也不是想要批判一番,但是这个Anyconnect频繁掉线,频繁重连,连接期间不能访问网络,稳定性也太差了吧?而且还不能自己设置分流,所有流量都要从学校网络走。


原料:公网机器一台(以腾讯云CentOS服务器为例)、内网机器一台(以Windows为例)、域名一个(指向公网机器)


公网机器

ssh连接公网机器,安装ngrok:

domain="ngrok.njzjz.win" #换成自己的域名
yum install gcc golang git clone https://github.com/mamboer/ngrok.git
cd ngrok openssl genrsa -out rootCA.key 2048 openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$domain" -days 5000 -out rootCA.pem openssl genrsa -out device.key 2048 openssl req -new -key device.key -subj "/CN=$domain" -out device.csr openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
\cp rootCA.pem assets/client/tls/ngrokroot.crt -f
\cp device.crt assets/server/tls/snakeoil.crt  -f
\cp device.key assets/server/tls/snakeoil.key -f make release-server
export GOOS="windows" GOARCH="amd64" && make release-client #如果内网机器是linux系统,将windows换成linux
/root/ngrok/bin/ngrokd -domain="$domain" -httpAddr=":6060" -httpsAddr=":6061" -tunnelAddr=":6062" #启动ngrok服务

内网机器

将公网机器的ngrok/bin/windows_amd64/ngrok.exe复制下来:

在ECNU校园网内搭建反向代理

从shadowsocks/libQtShadowsocks下载Shadowsocks Windows服务器端(如果无法下载自己想办法解决),可以放到同一个文件夹内:

在ECNU校园网内搭建反向代理

在同一文件夹编写config.json:

{
    "server":"0.0.0.0",
    "server_port":10086,
    "local_address":"127.0.0.1",
    "local_port":10086,
    "password":"password",
    "timeout":600,
    "method":"aes-256-cfb",
    "http_proxy": false
}

以及ngrok.yml:

server_addr: "ngrok.njzjz.win:6062"
trust_host_root_certs: false
tunnels:
  ss:
    remote_port: 38382
    proto:
      tcp: 10086

现在应该有这些文件:

在ECNU校园网内搭建反向代理

打开命令提示符,跳转到这个文件夹中,然后:

shadowsocks-libqss -c config.json -S

再打开一个命令提示符:

ngrok -log=ngrok.log -config=ngrok.yml start ss
在ECNU校园网内搭建反向代理

显示online就说明连接成功了。


自己的机器,打开shadowsocks(略去下载过程),添加服务器:

在ECNU校园网内搭建反向代理

shadowsocksR可以单独设置一个端口:

在ECNU校园网内搭建反向代理

这样就可以在Switchy Omega配置:

在ECNU校园网内搭建反向代理

并实现分流:

在ECNU校园网内搭建反向代理

就可以访问不对外网开放的网站了:

在ECNU校园网内搭建反向代理

以及下论文啥的:

在ECNU校园网内搭建反向代理

Ubuntu子系统内则可以使用proxychains,使用代理连接学校内网的服务器:

当然手机上也能用:

速度受公网服务器带宽的影响。


参考资料

1.使用ngrok+shadowsocks穿透内网校外也能畅快看论文 - 庭上杨柳 https://xingtingyang.com/866.html

2.windows 下搭建shadowsocks 服务端 - CSDN博客 https://blog.csdn.net/wyvbboy/article/details/52540658


以上是关于在ECNU校园网内搭建反向代理的主要内容,如果未能解决你的问题,请参考以下文章

搭建nginx反向代理用做内网域名转发

搭建nginx反向代理用做内网域名转发

nginx之十三:搭建 nginx 反向代理用做内网域名转发

代理服务器与反向代理服务器的区别

我用Nginx搭建了个反向代理服务器,前端服务器带宽1M后端服务器10M,为啥打来网站速度那么慢

搭建Nginx反向代理做内网域名转发