内网全局代理方案

作者: shad0w_walker(admin) 分类: 网络 发布时间: 2018-03-13 14:28 ė 6 没有评论

偶然发现内网里有个机器(准确的说是一个ip段)可以通过一些操作不经过收费的网关登录上网,网速还飞快,于是突发奇想,应该可以利用这个机器进行代理,在其他位置也享受免费且飞速的网络。这种想法很久之前就有了,把很久以来尝试的方案都归纳一下。

先说一下现有的条件——内网ipA:可以连接互联网,ipA:192.168.X.100;手头有的设备:一台openwrt的路由器,连入内网后ipB:192.168.Y.100,网关地址192.168.98.1。

方案一 ss

ss最基本的用途就是代理,也是我最先想到的方案,操作起来也很简单,把路由器接在ipA上并联网,在openwrt中安装ss的服务端无脑配置一下即可。

服务端安装(终端或者webui都行):opkg install luci-app-shadowsocksr

服务端配置(webui比较方便):

客户端配置选用全局代理即可。

 

方案二 HTTP代理

有一天看到手机wifi设置代理的界面突然想到,任何pc或者手机设备都会提供代理设置,可以省掉ss客户端的事。这种方案同样服务端是路由器,只要在服务器端开一个http代理就可以了。

服务端:

方法1,服务端用privoxy,一句话就能开http代理

在配置文件中加入listen-address 192.168.X.100:8080就监听了本地的8080端口,客户端可以设置192.168.X.100:8080为本机http代理,更无脑的话把上一句改成listen-address 0.0.0.0:8080,就监听了所有地址的8080端口

方法2,服务端用webui就更简单了,安装:opkg install luci-app-privoxy,配置:

客户端:不同设备设置方法不一样,iphone为例

 

使用之后我发现,这种方案有两个问题:

  1. 无法访问本地局域网。比如访问本地路由器ip192.168.98.1,会通过192.168.X.100的代理访问,显然上级是无法访问到这个地址的,如果一定要用全局的http代理,只能访问有上级ip的局域网地址。
  2. 有些app不走代理。这些app的制作者脑子给驴踢了吧。

问题1可以解决,用pac就行,让访问局域网的请求直连,其他请求走代理,pac内容如下

把以上内容保存为proxy.pac,放在某个目录下,例如路由器的www目录下,客户端设置如下

但问题2我真的不会解决啊

 

方案三 http代理+路由器squid透明代理

因为上面的问题2实在不能解决,想到只要在客户机上层加一个全局代理,所有客户机都连接到这层,就可以实现真·全局代理,并且客户机上不需要进行任何代理设置。这里的说到的上一层实际功能就是一个透明代理。我把本来放在ipA处的路由器拿到手边做这个透明代理,现在它的内网ip是ipB,服务端换成了一台ubuntu主机。

因为没有任何经验,所以查了很多资料走了很多弯路,最后用了squid参照这篇博客openwrt 透明代理上网。squid功能强大但我只用了它非常小的功能,同样用opkg安装,而且同样有webui luci-app-squid(openwrt太强大了)。

要通过上层192.168.X.100:8080代理,需要在配置文件中加入

同时进行端口转发,将所有80端口的流量转发到squid的3128端口

这样设置下来,手机连接路由器就能刷qq了,作为一个http的透明代理已经基本完成。但是我发现了一个严重的问题,只有http请求能够代理,https请求还是直连了……然后我开始研究转发https请求,看了网上的很多做法,似乎用squid转发https需要自己生成分发证书,还有bump什么的东西,折腾了很久最后还是放弃了(放弃最主要的原因是squid太大了,我的低端路由器只有8M存储,squid就占3M),如果有人想继续我的这种方案可以搜索一下“squid https”。

 

方案四 socks5代理+路由器redsocks透明代理

方案三失败之后,我就在想什么样的代理能同时让http和https都通过,思考1秒过后“我tm这不是socks5吗”。所以绕了一大圈还是回到了方案一用到的socks5。

服务端:dante-server可以部署socks5代理的服务端,apt就可以安装,我参考了这篇博客Debian通过dante搭建匿名socks5代理,先用本地socks5代理测试了一下服务器,如果不通看log找问题就行。

客户端:redsocks能把socks5代理重定向,在路由器上用opkg安装(webui为 luci-app-redsocks2)

配置文件里填写socks5上级代理地址

如果是webui

最后就是端口转发,要将所有的tcp和udp流量都重定向到本地的socks5端口11111上

这样就彻底完成了,打开appstore更新一个app,校园网也享受到了10MB/s的下载速度,还行。

 

本文出自shad0w_walker,转载时请注明出处及相应链接。

本文永久链接: https://www.sdwalker.com/archives/859.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

返回顶部