健康上网的代理模型

昨天发现github上拉不动代码,晚上便整了一台代理服务器。由于以前一直没玩过服务器,所以这次觉得很新鲜很有趣,不妨谈谈我这次脑中的模型(玄学)

远程设置代理服务器端

首先我们可以选购一台国外服务器,除去那些托管的服务器硬件配置,供应商商会提供给我们机器的控制权:

  • 服务器Ip:如果把服务器比作一间房子,那么服务器Ip就是门牌号。
  • 管理员账户和密码:这间房子的超级管理员账户,一般为root。

通过ssh(可以简单的理解成“无线USB工具”),以超级管理员用户访问国外的服务器

ssh root@45.32.71.28

输入服务器密码,也就是用钥匙开们,因为是新建的实例,许多端口并没有提供服务,所以可以看到房间里有很多空窗户。那么我们在空荡荡的房间里安装一个8hadow8ock8应用,并将它设置在8989号窗户上。从网络端打开窗户便可以访问该房间的应用,所以我们接着给这个服务端应用设置密码,和传输加密模式。

至此,我们的远程服务器端代理便设置完成,接下来进行本地客户端代理设置。

本地安装代理客户端

我们在本地安装代理客户端8hadow8ock8-qt5,并将它设置在本地房间127.0.0.1的1080号窗口。

客户端和浏览器都可以通过http(s)协议,来访问服务器端口的应用,但这里的8hadow8ock8-qt5客户端与远程服务端应用建立的通信协议只能是socks5,可以猜出来ssh、http、socks5是有所区别的(后面我得去google下)

我们对客户端进行配置

  • 服务器地址:ip地址,用来找到相应服务器
  • 服务器端口:服务器上应用所在窗口
  • 密钥:从网络中打开服务器应用的钥匙
  • 加密方式:从本地到网络中的传输加密,从网络到本地的传输解密
  • 超时:连接时间,超时则从网络中回到本地
  • 本地服务器类型:选择本地应用与本地8hadow8ock8-qt5客户端的通信协议

代理上网

为git应用设置代理

直接连接

  • git应用通过http(s)SSH请求github
  • github传代码于本地

为git应用的http(s)动作设置socks5代理客户端

git config --global http.proxy 'socks5://127.0.0.1:1080'
git config --global https.proxy 'socks5://127.0.0.1:1080'
  • 通过对8hadow8ock8-qt5客户端的socks5请求,git应用的http(s)动作被代理
  • 8hadow8ock8-qt5客户端socks5请求远程服务器应用
  • 远程服务器应用请求github
  • github通过中转传代码于git应用。

为git应用的http(s)动作设置http代理客户端

git config --global http.proxy 'http://127.0.0.1:1080'
git config --global https.proxy 'http://127.0.0.1:1080'
  • 通过对代理客户端的http请求,git应用的http(s)动作被代理
  • 代理客户端请求远程服务器应用
  • 远程服务器应用请求github
  • github通过中转传代码于git应用

为git应用的SSH动作设置socks5代理客户端

# 这里必须是 github.com,因为这个跟我们 clone 代码时的链接有关
Host github.com
   # 如果用默认端口,这里是 github.com,如果想用443端口,这里就是 ssh.github.com 详见 https://help.github.com/articles/using-ssh-over-the-https-port/
   HostName github.com
   User git
   ProxyCommand nc -v -x 127.0.0.1:1080 %h %p

为git应用的SSH动作设置http代理客户端

# 这里必须是 github.com,因为这个跟我们 clone 代码时的链接有关
Host github.com
   # 如果用默认端口,这里是 github.com,如果想用443端口,这里就是 ssh.github.com 详见 https://help.github.com/articles/using-ssh-over-the-https-port/
   HostName github.com
   User git
   ProxyCommand socat - PROXY:127.0.0.1:%h:%p,proxyport=1080

为chrome应用设置代理

通过SwitchyOmega插件可以更好的实验研究本地chrome应用与本地代理客户端的通信,现在很多代理客户端可以支持不同代理协议的应用,也有很多应用可以支持不同代理协议的客户端,总之现在的兼容性做得非常不错,因此我们理解这种代理流程时千万不要误解这种兼容性封装。

参考

原文地址:https://www.cnblogs.com/zzzz76/p/8360374.html