在ECNU校园网内搭建反向代理
Posted 曾晋哲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ECNU校园网内搭建反向代理相关的知识,希望对你有一定的参考价值。
之所以不用学校的思科Anyconnect 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复制下来:
从shadowsocks/libQtShadowsocks下载Shadowsocks Windows服务器端(如果无法下载自己想办法解决),可以放到同一个文件夹内:
在同一文件夹编写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
现在应该有这些文件:
打开命令提示符,跳转到这个文件夹中,然后:
shadowsocks-libqss -c config.json -S
再打开一个命令提示符:
ngrok -log=ngrok.log -config=ngrok.yml start ss
显示online就说明连接成功了。
自己的机器,打开shadowsocks(略去下载过程),添加服务器:
shadowsocksR可以单独设置一个端口:
这样就可以在Switchy Omega配置:
并实现分流:
就可以访问不对外网开放的网站了:
以及下论文啥的:
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 反向代理用做内网域名转发