zoukankan      html  css  js  c++  java
  • 健康上网的代理模型

    昨天发现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应用与本地代理客户端的通信,现在很多代理客户端可以支持不同代理协议的应用,也有很多应用可以支持不同代理协议的客户端,总之现在的兼容性做得非常不错,因此我们理解这种代理流程时千万不要误解这种兼容性封装。

    参考

  • 相关阅读:
    java 字节流与字符流的区别
    什么是缓冲区
    java流输入输出
    Apache安装配置
    Maven学习
    Redis
    数据结构与算法
    pig ERROR 2997: Encountered IOException. File or directory null does not exist.
    hadoop学习路线(转)
    86标准SQL与92标准SQL用法区别
  • 原文地址:https://www.cnblogs.com/zzzz76/p/8360374.html
Copyright © 2011-2022 走看看