网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5
简介
存在即是合理,SOCKS5的出现是为了解决SOCKS4中不支持身份认证的大问题而出现的,毕竟大家对网络中的安全越来越重视了。没有认证的网络就好像是生活在摄像头下的人生,毫无隐私可言,实在是太可怕了。
今天给大家深入讲解一下SOCKS5和它的应用。
为什么要使用SOCKS
SOCKS是一种代理服务协议,为什么会要有代理服务协议呢?
因为在现代网络中,很多情况下,由于网络或者防火墙的原因,我们很难直接去访问对方的网络,所以需要一种代理机制来充当本地网络和大型网络之间的网关。
代理服务器通过拦截发送方和接收方之间的连接来工作。 所有传入的数据都通过一个端口进入,并通过另一个端口转发到目标网络中。
当然流量转发是代理服务器的最基本的功能,代理服务器还可以通过隐藏客户端或者服务器端的IP地址,从而实现网络访问的安全性。另外因为代理服务器充当了目标服务器的代理,所以可以将代理服务器作为目标服务器的缓存服务器,从而提高网络访问效率。
另外代理服务器还可以通过对数据进行拦截,从而进行一些特殊的操作,比如对数据进行加密,从而保证数据传输的安全性。另外代理服务器还可以对客户端的访问进行控制,比如可以阻止客户端访问某个IP地址或者网站。
而SOCKS就是一种代理协议的标准,通过这种协议,可以实现标准的代理服务。
在企业级网络中,为了保证企业网络的安全性,通常会有安装上防火墙,这样虽然保证了企业网络的安全,但是也阻止了客户端对外界网络的访问。所以需要一个SOCKS 代理服务器来代替客户端和目标网站之间建立连接和进行数据通信。
SOCKS代理可以绕过防火墙来中继用户的TCP和UDP会话。
SOCKS5
因为SOCKS是运行在OSI七层协议中的第五层会话层,所以它可以处理包括HTTP、HTTPS、POP3、SMTP 和 FTP等多种请求类型,所以可以使用SOCKS协议来进行邮件发送、网页浏览、文件传输等。
相对于SOCK4来说,SOCKS5加入了认证机制,所以可以通过身份验证建立完整的TCP连接,SOCKS5通常和SSH一起使用,通过使用SSH加密隧道方法来中继流量。
那么为什么我们需要使用SOCKS5呢?
首先我们可以通过SOCKS5来访问防火墙后面的服务。
一般来说,为了安全起见,服务器都放在防火墙后面,但是外部的人想要访问该服务器的话,有两种办法。第一种就是去掉防火墙,向公众开放该服务,但是这样会带来安全的风险。第二种就是通过设置客户端的IP白名单,来过滤非法的访问请求。但是客户端的IP地址通常是会发送变化的,所以这种做法也是不可行的。
如果使用SOCKS5的SSH代理,就可以通过代理服务器来访问防火墙后面的服务,从而保证服务的安全性。
另外,通过建立SSH隧道,在其中使用SOCKS5协议将各种TCP和UDP流量路由到各自的服务,那么只需要使用SSH,而不需要使用其他VPN网络。所以使用起来比较简单。
最后,因为SOCKS5只是对数据进行转发,所以出错的可能性更小,性能会更高。
SOCKS5的使用
上面我们介绍了SOCKS5的各种优点,那么SOCKS5到底该如何使用呢?接下来向大家介绍一个使用ssh命令搭建一个简单的SOCKS5代理服务器。
先看下SSH建立SOCKS服务的命令:
ssh -f -C -N -D bindaddress:port name@server
-f 表示SSH作为守护进程进入后台执行。
-N 表示不执行远程命令,只用于端口转发。
-D 表示是端口上的动态转发。这个命令支持SOCKS4和SOCKS5。
-C 表示发送前压缩数据。
bindaddress 本地服务器的绑定地址。
port 表示本地服务器的指定侦听端口。
name 表示ssh服务器登录名。
server表示ssh服务器地址。
上面命令的意思是,在本机建立端口绑定,然后将其转发到远程的代理服务器上。
比如我们可以在本机开一个2000的端口,将其转发到远程168.121.100.23这台机子上:
ssh -f -N -D 0.0.0.0:2000 root@168.121.100.23
有了代理服务器之后,就可以使用了,首先介绍一个怎么在curl命令中使用SOCKS代理。
我们想通过代理服务器,访问www.flydean.com,该怎么做呢?
curl -x socks5h://localhost:2000 -v -k -X GET http://www.flydean.com:80
要想检测SOCKS的连接,还可以使用netcat命令如下:
ncat –proxy 127.0.0.1:2000 –proxy-type socks5 www.flydean.com 80 -nv
总结
SOCKS5是一个非常有用的代理协议,你可以在需要的时候用上它。你懂的!
本文已收录于 http://www.flydean.com/10-socks5-more/
最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!
欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!
网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5的更多相关文章
- web网络协议
一.OSI七层模型 OSI参考模型是国际标准化组织ISO(International Standards Organization )制定的模型,把计算机与计算机之间的通信分成七个互相连接的协议层 ...
- 网络协议 18 - CDN:家门口的小卖铺
[前五篇]系列文章传送门: 网络协议 13 - HTTPS 协议:加密路上无尽头 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - D ...
- 网络协议 10 - Socket 编程(上):实践是检验真理的唯一标准
系列文章传送门: 网络协议 1 - 概述 网络协议 2 - IP 是怎么来,又是怎么没的? 网络协议 3 - 从物理层到 MAC 层 网络协议 4 - 交换机与 VLAN:办公室太复杂,我要回学校 网 ...
- 【转】为什么 MQTT 是最适合物联网的网络协议
初识 MQTT 为什么 MQTT 是最适合物联网的网络协议 Michael Yuan2017 年 6 月 14 日发布 WeiboGoogle+用电子邮件发送本页面 0 物联网 (IoT) 设备必须连 ...
- 【OSI】网络协议模型
一.网络相关概念 IP地址: 主机 用于 路由寻址 用的数字标识 域名: 便于IP地址记忆 DNS: 通过注册的 域名 指向 ip 的服务 DDNS: 将用户的动态IP地址映射到一个固定的域名解析服 ...
- TCP/IP网络协议基础
实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...
- PHP网络协议相关考点
HTTP状态码 HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码. HTTP状态码主要有5种,代表5种不同类型的响应: 1xx:信息性状态码,代表接 ...
- 网络协议 18 - CDN
到现在为止,我们基本上已经了解了网络协议中的大部分常用协议,对于整个 HTTP 请求流程也较为熟悉了.从无到有后,我们就要考虑如何优化“有”这个过程,也就是我们常见的请求优化.而现在的技术栈中,CDN ...
- 网络协议之:一定要大写的SOCKS
目录 简介 SOCKS的故事 SOCKS的历史 SOCKS协议的具体内容 SOCKS4 SOCKS4a SOCKS5 总结 简介 很久很久以前,人们还穿的是草鞋,草鞋虽然穿着舒服,但是不够美观.然后人 ...
随机推荐
- mysql: 看不见的空符号 char(9) char(10) char(13)
在统计年度销售额时,总觉得哪里不对劲.于是找了找,对了对,试了trim,消除前后的空格,也没反应. 在崩溃的边缘,终于发现了错的原因. 原来我在录入的时候,粘贴多了其他空白符号,看不见,摸不着,啊~ ...
- 微信小程序(五)
JavaScript: JavaScript 是一种轻量的,解释型的,面对对象的头等函数语言,是一种动态的基于原型和多范式的脚本语言,支持面向对象,命令式和函数式的编程风格. Nodejs 中的Jav ...
- Numpy (嵩老师.)
import numpy as np Numpy 一元函数 对ndarray中的数据执行元素级运算的函数 np.abs(x) np.fabs(x) 计算数组各元素的绝对值 np.sqrt(x) 计算数 ...
- koa2使用ejs模板引擎
在koa中使用ejs并不需要像在node中一样安装了还要引用,只需要npm了就行,同时还需要安装koa-views模块.如: const views = require('koa-views'); 对 ...
- Node.js实现前后端交换——用户登陆
最近学习了一点Node.js的后端知识,于是作为一个学习前端方向的我开始了解后端,话不多说,开始介绍.首先,如果你想要更好的理解这篇博客,你需要具备html,css,javascript和Node.j ...
- [hdu7074]Little prince and the garden of roses
显然每种颜色的花是独立的,可以分别求出答案后取$\max$ 对于某种颜色$C$,建立一张二分图,左右分别为$n$行$n$列,且第$i$行和第$j$列有边当且仅当$c_{i,j}=C$ 此时,问题即对边 ...
- linux的ip文件参数说明
TYPE=Ethernet # 网卡类型:为以太网 PROXY_METHOD=none # 代理方式:关闭状态 BROWSER_ONLY=no # 只是浏览器:否 BOOTPROTO=dhcp # 网 ...
- CF1511E Colorings and Dominoes
考虑计数拆开贡献. 因为在一个方案中一个格子最多只会贡献一次,那么不妨反过来求这个格子贡献了多少次. 然后发现,行列独立,那么我们单独计算红蓝色,即可. 一个偶数块贡献当且仅当前面也是偶数块. 然后显 ...
- Atcoder Grand Contest 020 F - Arcs on a Circle(DP+小技巧)
Atcoder 题面传送门 & 洛谷题面传送门 一道难度 unavailable 的 AGC F 哦 首先此题最棘手的地方显然在于此题的坐标可以为任意实数,无法放入 DP 的状态,也无法直接计 ...
- FVCOM泥沙模块河流边界处理
简介 入流河流携带泥沙可以按照节点和边界两种形式给定,这两种方法都是在相关的节点上进行直接赋值,并不能保证进入计算域内泥沙总体积. 相关设置 XX_run.nml 河流参数设置 &NML_RI ...