最近碰到了网络代理,老总韩国有一台永不关机的电脑,通过大陆让我们公司人都用上,为此我学习了下网络代理这些方面的事情.
这些让我想到小时候 刷QQ欢乐斗地主欢乐豆 多开房间填代理的事情,哈哈哈哈哈
nginx正向代理http
nginx 经常反向代理 服务器 实现负载均衡就不多说了
nginx 也可以做正向代理服务器,很简单
一句话,代理服务器站在客户端那边就是正向代理,代理服务器站在原始服务器那边就是反向代理.
正向代理 端口8580,外网ip
1 | server { |
使用:mac打开网络偏好设置 – 代理 – http 代理设置外网ip及端口号,Windows 360浏览器设置代理
nginx正向代理https
因为 Nginx 不支持 CONNECT,所以无法正向代理 Https 网站。 如果访问 Https 网站,比如:https://www.baidu.com,Nginx access.log 日志如下: “CONNECT www.baidu.com:443 HTTP/1.1” 400
但是 !!! 但是 !!! 但是~ 总有牛人实现了这个模块
项目地址: https://github.com/chobits/ngx_http_proxy_connect_module
注意看下面2行字:
This module provides support for the “CONNECT” HTTP method.
This method is mainly used to tunnel SSL requests through proxy servers.
完全ok..
Squid 实现
Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。
基本
1 | # 官网下载安装包 |
初始化你在 squid.conf 里配置的 cache 目录
1 | /usr/local/squid/sbin/squid -z //初始化缓存空间 |
启动squid在后台运行
1 | /usr/local/squid/sbin/squid -s |
这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。
停止 squid
1 | /usr/local/squid/sbin/squid -k shutdown |
更新squid
1 | # 载入新的配置文件 |
更多参考 http://blog.sina.com.cn/s/blog_6c764a7b0100sg7u.html
配置
squid的权限控制很灵活,默认的配置只能允许内网用户访问
1 | # 暂且把所有的acl控制干掉 |
// 载入新的配置文件
1 | /usr/local/squid/sbin/squid -k reconfigure |
可以愉快的上网啦
使用密码
1.使用密码功能要借助一个包
1 | yum install httpd-tools -y |
2.htpasswd生成passwd文件并创建用户
1 | htpasswd -c /usr/local/squid/etc/passwd sui |
3.测试密码1
2
3
4
5
6/usr/local/squid/libexec/basic_ncsa_auth /usr/local/squid/etc/passwd
# 输入 用户名 密码
sui 123456
# 提示OK说明成功,ERR是有问题,请检查一下之前步骤
OK
# 测试完成,crtl + c 打断
4.设置配置文件
1 | vim /usr/local/squid/etc/squid.conf |
ss5(很强大的玩意)
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。
1 | # 安装依赖(centos7环境) |
默认是1080端口,如果想改端口的话,./configure –with-defaultport=10800
2.启动脚本加执行权限
chmod +x /etc/init.d/ss5
3.设置监听端口
1 | vim /etc/sysconfig/ss5 |
目前为止只是安装上了ss5,也可以正常运行服务,但实际上代理服务还是用不了,
需要配置一下文件。
4.修改ss5的配置文件
1 | vim /etc/opt/ss5/ss5.conf |
把auth,permit两处的注释打开(就是auth,permit这两行)
保存并重启ss5(service ss5 restart)
测试工具: 可以适用qq自带的代理设置
5.设置用户,只允许他们使用代理
如需使用用户名密码登录,修改配置文件中的两行
1 | vim /etc/opt/ss5/ss5.conf |
就是将其中的一个’-‘用’u’代替。
设置用户名和密码,一个用户和密码一行,用空格间隔
1 | vim /etc/opt/ss5/ss5.passwd |
重启服务 ,ok~
danted
ubuntu 通过danted搭建socks5代理
(https://blog.csdn.net/BQL_Email/article/details/80110208)
http://blog.sina.com.cn/s/blog_7f2a9a390102vdqn.html
pam方式添加用户密码形式
1 | danted配置: |
测试工具 :http://www.proxifier.com/
ssr
俗称纸飞机,很方便.资料很多.大名鼎鼎的shadowsocksR
平常大部分我们用到的都是图形化界面的客户端,客户端,客户端,搭在vps上的是服务端.这里主要记录下centos 7的安装,其他的过于简单.
编译安装
1 | # 解决依赖 |
参考网址: https://github.com/shadowsocks/shadowsocks-libev
客户端配置
1 | mkdir - p /etc/shadowsocks |
vim client.json
1 | { |
运行: /usr/local/ssr/bin/ss-local -c /etc/shadowsocks/client.json -v
检测是否设置成功: qq的代理设置工具可以检测,或者 curl --socks5 127.0.0.1:1080 http://ifconfig.me
发现ip变成代理ip
此时mac电脑打开网络设置-代理-SOCKS 设置服务器ip及端口.
服务端配置
vim server.json
1 | { |
运行: /usr/local/ssr/bin/ss-server -c /etc/shadowsocks/server.json -v
用客户连接即可.
v2ray
新型代理
目录介绍
1 | /usr/bin/v2ray/v2ray:V2Ray 程序; |
脚本运行完成后,你需要:
编辑 /etc/v2ray/config.json 文件来配置你需要的代理方式;
运行 service v2ray start 来启动 V2Ray 进程;
之后可以使用 service v2ray start|stop|status|reload|restart|force-reload 控制 V2Ray 的运行。
官方文档 :https://www.v2ray.com/ui_client/service.html
小技巧
curl ifconfig.me
查看自己的公网ip地址,很方便~
- 由于手机端的vpn特别多,可以通过 proxy server类似软件连接手机ip实现其他设备上网
- connectify
https://www.connectify.me/zh-hans/
设备发射出热点用于网络连接
工具
Proxifier,sstap 实现ss全局代理