当您在工作时想查些资料,正好这些资料是视频或音乐形式的. 咦为啥打不开,但是手机4G/5G可以打开呀, 原来是办公网络限制访问了视频音乐等网站.用手机多费电,还费流量,还不方便.
突然想到家里的宽带网速也挺快的.要是在公司也能用家里宽带就好了…
满足你,这就是今天要说的正向代理, 上原理图:
正常工作时的网络是这样的
图1
一.架设代理我们使用代理后是这样的.
图2
代理软件有很多,比如squid,goProxy等.squid主要是http的代理比较局限.无论是goProxy还是squid配置起来都比较麻烦
本次采用我基于go-socks5实现的,使用简单不用配置,不记日志,默认端口8000,启动时可加-p参数修改.
下载地址: 链接: https://pan.baidu.com/s/108_3fGP14o8REfRJBtZE4g 提取码: w93c
1.1 启动服务端
在上边 图1 中右侧,服务端操作, 进入mysocks5所在的目录,运行
./mySocks -p 7777 |
1.2 客户端配置代理
在上边 图1 中左侧,PC端操作.使用chrome或火狐浏览器.下载SwitchyOmega插件 https://proxy-switchyomega.com/download/ ,用于连接服务端的代理进行上网.安装后新增情景模式参考如下:
服务端的IP地址为公网IP.如果没有,请往下滑参考最底部的附言
并在浏览器的右上角启用
1.3 测试
打开网址 cip.cc
看显示的IP是不是服务端的IP. 惊不惊喜,意不意外!
别着急,完成上面的步骤后,仅是用代理换了个IP上网,发现视频音乐网站依然上不去,这是为什么呢.因为是明文的请求,那么把所有请求加密下就可以了么? 对, 并且要在代理服务端解密,原理图如下:
图3
说到这个连接加密就不得不提Stunnel了,主要用于隧道加密. 上图中淡蓝色背景即是它完成的功能.客户端对数据进行加密,服务端对数据解密,然后再走代理.
2.1 下载
stunnel下载地址, https://www.stunnel.org/downloads.html
如果是Linux 建议用yum或apt安装,mac建议用brew安装. 因为这个下载的是源码(win可以直接安装),需要编译安装.
安装后的Stunnel即可以是客户端也可以是服务端, 只是配置文件不一样
2.2 配置并启动服务端
这里配置实现的是上边 图3 中右侧淡蓝色背景部分
2.2.1 生成自签名证书
这里推荐使用mkcert,下载地址 https://github.com/FiloSottile/mkcert/releases
用它不需要一堆复杂的参数.非常简单,执行如下两条命令
./mkcert -install ./mkcert testxxx.com |
会生成两个文件,一个cert(testxxx.com.pem),一个key(testxxx.com-key.pem).
2.2.2 配置文件(默认在/etc/stunnel目录下)
; ************************************************************************** ; * Global options * ; ************************************************************************** ; It is recommended to drop root privileges if stunnel is started by root setuid = stunnel4 setgid = stunnel4 ; PID file is created inside the chroot jail (if enabled) pid = /var/run/stunnel4/stunnel.pid debug = info output = /var/log/stunnel4/stunnel.log [socksProxy] accept = 6666 connect = 7777 cert = /etc/stunnel/testxxx.com.pem key = /etc/stunnel/testxxx.com-key.pem |
注* pid的文件目录必须存在,且属主属组均是setuid和setgid设定的stunnel4,
accept 是要暴露到公网的端口,防火墙中放行
connect 是解密数据要连接的代理的端口
cert和key设置为上一步生成的证书
2.2.3 启动服务
stunnel4 /etc/stunnel/stunnel.conf |
不确定是否启动成功可用命令查看 ps -ef|grep stunnel
2.3 配置并启动客户端
这里配置实现的是上边 图3 中左侧淡蓝色背景部分.
2.3.1 配置文件
; It is recommended to drop root privileges if stunnel is started by root ; PID file is created inside the chroot jail (if enabled) pid = /usr/local/var/run/stunnelSocks.pid [socksProxy] client = yes accept = 5555 connect = testxxx.com:6666 verifyChain = no |
client 客户端一定要为yes
accept 客户端的代理端口也就是SwitchyOmega连接的端口.
connect 服务端的公网IP及端口
verifyChain 可以先为no, 后续玩转了再深究
2.3.2 启动服务
stunnel4 /etc/stunnel/stunnel.conf |
如果是windows客户端的就更简单的,直接有界面.
2.4 测试
参考1.2中的SwitchyOmega插件配置, 把代理地址设置为localhost,端口设置为5555, 并启用代理后.
打开网址 cip.cc
看显示IP是否为服务端的IP.
实际打开视频音乐网站. 搞定!
如果你的服务端部署在阿里云或亚马逊云的国外服务器, 科学上网也是一样的道理,在此不再深究!
附言:
要完成上述功能,需要在公网上暴露出Stunnel的服务端端口,如果家中宽带无公网IP且不想拥有,可参考<<>>
如果想拥有公网IP参考<<>><< >><< >><<>>
只要你的机器暴露到公网就可能会面临网络攻击.可参考<<>>
-----------------end-----------------
欢迎大神补充指正! 如有疑问请留言!
原创不易,感谢各位 关注、点赞、评论、转发 !