校园网代理服务的实现
#网络
#shadowsocks
#haproxy
> 校园网有诸多好处:有ipv6、可以免费下载知网网站等论文。在家里如果想要连接校园网,如果学校不提供vpn的话就很麻烦。
##方案一:学校提供校园网VPN
直接利用`VPN`服务即可
##方案二:有具有公网ip的校园网服务器
直接在该服务器上搭建`ss代理服务器`或`VPN`即可。
##方案三:有校园网服务器(无公网ip)
可以利用`花生壳`、`nat123`等付费的内网穿透服务。
该方案的__原理__是:个人内网服务器下载花生壳客户端,并与花生壳服务器建立TCP链接(NAT端口实现绑定,和QQ的内网传统原理是一样的)。 用户发送请求到花生壳的服务器,花生壳服务器再发送请求到个人内网服务器。(该方案由于利用了花生壳的服务器进行了转发,占用了带宽,所以花生壳会收取费用收回成本。如果需求量不是很大的话这样也可以。)
##方案四:有校园网服务器(有ipv6)+有公网服务器(带有ipv6)
我个人采用了这个方案。我在实验室放置了一台带`ipv6`和`局域网ipv4`的服务器;个人还有一个`bandwagon`的`VPS`。
先在校园网的服务器上搭建代理服务(比如`shadowsocks`或`VPN`),然后再在公网服务器上安装`haproxy`。(`haproxy`可以实现端口代理转发)。
在`/etc/haproxy/haproxy.cfg`进行如下设置(请自行替换中括号中的ip和port):
```
global
ulimit-n 800000
defaults
log global
mode tcp
option dontlognull
timeout connect 10000
timeout client 300000
timeout server 300000
frontend ss-in
mode tcp
bind *:[想要代理的本地端口]
default_backend ss-out
backend ss-out
server server1 [校园网服务器的ipv6地址]:[校园网ss服务器端口]
```
之后运行`nohup /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg &`即可。
之后使用ss客户端填写`公网服务器的地址`和`[想要代理的本地端口]`即可使用代理。
#### 原理
校园网服务器具有ipv6,而公网VPS也具有ipv6,所以二者可以互相直连ping通。因此,在公网vps上实现一个端口代理转发即可。这里使用的工具是`haproxy`。这种代理方式下,用户访问代理时,会将请求发送到公网服务器,公网服务器转发到校园网服务器(通过ipv6),之后再从校园网服务器原路返回到公网服务器和用户。总延迟较大。延迟例如:我的VPS在美国,到中国都是200ms,那么总延迟约200ms*4=800ms。
![](https://file.hurray0.com/uploads/menu/40/53a7cae6f7d91023f20733b6406021ed.PNG)
上图为我在手机上通过联通流量代理登录六维的截图(六维只支持ipv6的cernet环境(只有ipv6或只有校园网都不行,也就是限制ipv6地址范围)),因此可以验证代理成功。
##方案五:有校园网服务器+有公网服务器(有一个没有ipv6或全没有ipv6)
这种情况下实现方法和方案三类似,只不过是自己实现转发服务。
网上较成熟的方案有:`frp`和`ngrok`等。这里有一篇知乎可以作为参考 [https://www.zhihu.com/question/49629610]()
版权属于:Hurray's InfoShare
本文链接:https://hurray0.com/menu/40/
如果没有特别声明,则为本博原创。转载时须注明出处及本声明!