Proxy-Server

博客介绍了翻墙的背景、原理,包括防火墙的DNS污染与劫持、IP封锁、封锁HTTP代理等机制。还详细阐述了Socks5协议,涵盖其概念、作用、增强点及应用场景,同时介绍了Socks5认证、请求和回应协议,最后说明了VPN和VPS的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、摘录

这里写图片描述

二、背景

由于某些原因,在我们国内无法访问google、facebook等外国网站,如果你想使用外网来学习,聊天,那么就可以使用一些翻墙代理。

三、原理

1.要想翻墙,首先得知道墙是什么东西?墙是看不见摸不着的,其就是指访问被GFW所限制,GFW,即Great Wall of China,中国防火墙的简称,是中国政府过滤和监控互联网的一套软硬件系统。我们常常听说的被墙,就是指被防火墙挡住了。
这里写图片描述
  这里写图片描述
很明显,被中国联通封锁了。它其实就是GFW。

2.代理服务器实现的关键,就是如何避开防火墙的干扰,那么首先必须得知道防火墙的原理,其原理不外乎有三种。
(1)DNS污染与劫持
DNS污染:指服务器给你返回一个不存在的页面的IP地址。,
DNS劫持:指服务器给你返回一个伪造页面的IP地址。
一般都是电信、联通、移动对DNS服务器做手脚,给你提供它们的DNS服务器,一旦发现你访问的页面是不允许访问的,就会给你返回一个不存在的页面,从而阻挡你访问。早期的这种防火墙机制,可以使用Google的DNS(8.8.8.8),还可以使用第三方的DNS服务器,或者可以修改机器的host文件,直接拿IP进行访问。但是这些方法现在几乎没用了。
(2)对IP进行封锁
对IP进行大范围的封锁,但是一般大公司一般有很多的服务器,目前基本被封锁掉,但是全封不现实。况且有些小公司部署在第三方主机上,有可能会误伤。所以我们采用机会从国内连接到国外的VPS(VPS部署在国外,Virtual Private Server虚拟专用服务器)技术,将一台服务器分割成多个虚拟专享服务器的优质服务,简单理解VPS就是一台拥有公网的IP的服务器,进行翻墙。
(3)封锁HTTP代理
对于没有办法搭建VPS的人来说,最好的办法就是使用HTTP代理。客户端不在直接去请求目标服务器,而是去请求代理服务器,由代理服务器去代替客户端进行访问目标服务器。但是由于HTTP协议是明文协议,请求报文里就含有IP信息,所以很容易被检测出来。虽然HTTPS是加密过的,但是在连接之前需要给代理服务器发送CONNECT方法,也会带上要访问的远端IP地址信息,在出去之前还是会被拦截。
此时我们可以使用VPS搭建VPN,或者使用第三方的VPN。此时GFW虽然无法直接获取到你的加密信息,但是可以进行暴力破解,可以解决绝大多数的加密,还可以对流量进行监控,如果一个VPN地址被大量的人访问,就会引起注意。

这里写图片描述

四、socks5协议

(1)概念
SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。最后我们可以将socks5服务部署在VPS服务器上。
(2)作用
SOCKS5 协议对于处在内部网络中的机器, 需要透过网络中某些可以联通外部 Internet 的机器访问外部时,有用。与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程度的修改和转换。和HTTP代理协议不同,SOCKS5实际上是一个会话层的代理协议。位于表示层和传输层之间。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求),所以Socks代理服务器比应用层代理服务器要快。
socks协议的设计初衷是在保证网络隔离的情况下,提高部分人员的网络访问权限。
(3)附加
这个协议最初由David Koblas开发,而后由NEC的Ying-Da Lee将其扩展到版本4,最新协议是版本5,与前一版本相比,socks5做了以下增强:
1.增加对UDP协议的支持;
2.支持多种用户身份验证方式和通信加密方式;
3.修改了socks服务器进行域名解析的方法,使其更加优雅;
(4)一个应用场景
内网穿透:在大学里,学校给我们提供了很多服务器资源,我们可以在内网使用。但放寒假回家后,无法进入学校内网,也就无法连接上内网的服务器资源。解决办法:在公网的VPS上搭一个socks代理,并将内网的一台web服务器和该VPS的socks端口打通,通过这台web服务器便可以访问所有内网服务器资源。
RFC地址:
● rfc1928(URL为:http://www.ietf.org/rfc/rfc1928.txt

五、socks5认证协议

这里写图片描述
看翻译很难受,直接看英文版吧。。。。
这里写图片描述
①当客户端连接服务端的时候,发送一个请求信息。
VER:版本号(在socks5中是0x05)
NMETHODS:在METHODS字段中出现的方法的数目;
METHODS:客户端支持的认证方式列表,每个方法占1字节。

②服务器从客户端提供的方法中选择一个最优的方法并通过以下消息通知客户端(贪心算法:双方都支持、安全性最高):
如果发送的是X’ FF’,代表不接收请求,客户端必须立即关闭。

六、请求协议

身份认证结束后,此时客户端就可以请求服务器了,让它干什么。
socks5请求格式:
这里写图片描述

VER:socks版本(在socks5中是0x05)
CMD:SOCK的命令码:
  CONNECT X’01’
  BIND X’02’
  UDP ASSOCIATE X’03’

RSV:保留字段
ATYP:地址类型:
  IP V4地址: X’ 01’
  域名地址: X’ 03’
  IP V6地址: X’ 04’
DST.ADDR:目的地址
DST.PORT:目的端口

七、回应协议

收到客户端的请求后,服务器对其进行回应。
这里写图片描述

附录:
VPN和VPS的区别:
  我们可以把VPS理解为服务器。一台服务器用软件分割开以后,就成了多台服务器,他们有独立的操作系统,具有独立的IP,这个时候每一个小的独立操作系统,就是一个VPS。也可以理解为,VPS就是一个配置低了点的服务器。

  VPN是一个软件。用一个帐号和密码,我们登陆了以后,我们的机器访问网站或者是上QQ或者是登陆一些网络软件的时候,所显示的和使用的IP都是国外的。也就是说,VPN是一个可以让我们的机器直接连接到国外的网线上的东西。VPN分为两种,一种是静态的VPN,另外一种就是动态的VPN。动态的VPN是每登陆一次,就变化一次IP的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值