Proxy

 

为什么要搭建代理服务器

  1. 生产环境为了安全,不允许直连. 通过跳板机或者安全管理平台
  2. 服务器没有外网访问权限
  3. 开发者要提高自己的工作效率
  4. 提高下载速度
  5. 抓包 debug 找故障(fiddler)
  6. 安全

代理协议(方式)有哪些

  1. http
  2. https
  3. sock4
  4. sock5
  5. ssh

搭建代理服务器

window server

WProxy

官网下载地址:http://www.imfirewall.us/trial/WProxy3.0_20160615.exe

示例图片

Fiddler

  • 官网地址(非下载地址-有cookie):https://www.telerik.com/fiddler
  • 说明: 利用代理去抓包,然后分析 web开发进阶必备 默认端口8888 可以拦截报文进行修改再发送

Linux

shadowsocks

goproxy

  • Github地址: https://github.com/snail007/goproxy
  • golang
  • Proxy是golang实现的高性能http,https,websocket,tcp,防污染DNS,socks5代理服务器,支持内网穿透,链式代理,通讯加密,智能HTTP,SOCKS5代理,域名黑白名单,跨平台,KCP协议支持,集成外部API。
  • 一般多用于临时使用 可以用于多级代理 没有长久作为稳定代理服务器使用

跨平台

agent2.jar

  • 下载地址
  • java
  • 功能异常简单 System.out.println("usage: java com.hfvast.App 监听端口 服务端IP 服务端端口");
  • create by gaoleith

以上是经常使用的proxy server软件

使用代理配置

window

shadowsocks-windows

IE浏览器

  • 打开IE浏览器
  • 工具 -> Internet选项 -> 连接 -> 局域网设置
  • 勾选 为LAN 使用代理服务器 填写 ip port
  • 勾选 跳过本地地址的代理服务器
  • 确定 保存

crt

  1. Options -> Global Options -> Firewall -> add
  2. 选择合适的 协议以及认证方式 填写表单
  3. 点击OK 保存
  4. 在需要走代理的连接 右键选择 Properties
  5. Connection -> SSH2 -> 右侧Firewall下拉框 选择刚才填写好的firewall
  6. 点击OK 保存
  7. 双击连接开始连接

FileZilla

  1. 编辑 -> 设置 -> 连接 -> 通用代理
  2. 选择合适的协议 填写表单
  3. 点击左下角确定 生效
  4. 选择连接进行连接

注意: FileZilla 是所有连接共用同一个代理配置 crt 可以有多条配置灵活使用

linux

linux全局配置

vi /etc/profile
## 添加以下行
export http_proxy=http://username:password@ip:port
export https_proxy=https://username:password@ip:port

## 如果没有账号密码认证

export http_proxy=http://ip:port
export https_proxy=https://ip:port

## 使配置生效
source /etc/profile

yum源代理

vi /etc/yum.conf
## 添加以下行
proxy=http://ip:port

## 如果需要认证连接则追加以下内容
proxy_username=username
proxy_password=password

## 测试
yum clean all
yum list

ssh隧道

ssh隧道也叫端口转发

实战 SSH 端口转发

  1. 本地转发
  2. 远程端口转发 eg
    • 说明: 服务器ip A(内网IP) 中转服务器 B 笔记本 C
    • 限制: C可以直接访问B,C不能直接访问A,B不能直接A,A可以主动访问B
    • 目的: C要访问A的端口8080
     ## 在服务器A 上执行以下命令
     ssh -p 10003 -g -R 9999:localhost:8080 username@IPB
    
     ## 现在,C去访问B的9999端口就等于访问A 的8080端口了
    
     ## 参数说明: 
     # -p 10003 指定 服务器A 连接 服务器B ssh的端口号 10003
     # -R 远程端口转发
     # 9999:localhost:8080 指定服务器B 监听自己的 9999端口 将流量转发到 服务器A的8080端口 这里的localhost 是指服务器A
     # username@IPB username:服务器A ssh访问服务器B 的用户名  IPB 服务器B 的ip 
    
    

    其实 这就是内网穿透

  3. 动态端口转发

多平台适用

git

# 设置ss
git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'

# 设置代理
git config --global https.proxy http://127.0.0.1:1080
git config --global https.proxy https://127.0.0.1:1080

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

curl

curl www.baidu.com
curl -x 127.0.0.1:1080 www.baidu.com

wget

wget https://github.com/shadowsocks/shadowsocks-windows/releases/download/4.0.10/Shadowsocks-4.0.10.zip
wget -e "https_proxy=http://127.0.0.1:1080" https://github.com/shadowsocks/shadowsocks-windows/releases/download/4.0.10/Shadowsocks-4.0.10.zip

Maven

跳转到Eap使用(2) 工具安装

JAVA


// 未使用代理创建连接
HttpURLConnection conn = (HttpURLConnection)url.openConnection();

// 使用代理
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(Common.HOST, Common.POST));
HttpURLConnection conn = (HttpURLConnection)url.openConnection(proxy);

JAVA-SOCKET

java -DsocksProxyHost=localhost -DsocksProxyPort=1080 -jar jenkins.war

使用sock代理加快jenkins初始化时下载plugin.

其他

其他软件 例如: QQ WeChat 网易云音乐 DataGrip TIM IDEA 基本都支持 http 或 sock 代理支持 找到配置的地方 进行合适的配置

其他平台

IOS Shadowrocket

路由器 OpenWRT 梅林固件

其他参考