文章目录

  • 简介
  • 为什么要使用SOCKS
  • SOCKS5
  • 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相关推荐

  1. 移动端兼容性测试你还在用adb安装app?快试试这种方法吧!

    一.写在前面 在做Android移动端兼容性测试时,我们经常会将手机连接PC,然后通过adb的命令将被测app安装进手机,一台手机测完后跟着操作下一台,如此往复很是费事. ps:公司有兼容性测试平台且 ...

  2. 【区块链】(二)之传统网络协议

    最近在研究区块链,广义的区块链技术,包含点对点网络设计.加密技术应用.分布式算法的实现.数据存储技术的使用方面.也就是说,区块链是点对点传输.我们现在的网络使用的大多是TCP/IP协议,除此之外还有一 ...

  3. 网络协议从入门到底层原理(6)应用层 - 域名、DNS、DHCP、HTTP(ABNF、HTTP报文格式、请求方法、头部字段、状态码、跨域)、代理、CDN

    应用层 域名( Domain Name)- 顶级域名.二级域名 DNS - DNS服务器.常用命令 DHCP(DISCOVER.OFFER.REQUEST.ACKNOWLEDGE) HTTP HTTP ...

  4. Wireshark网络抓包(三)——网络协议

    一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地址解析成MAC地址. IP地址在OSI模型第三层,MAC地址在OSI第二层,彼此不直接通信: 在通 ...

  5. 网络协议之:一定要大写的SOCKS

    文章目录 简介 SOCKS的故事 SOCKS的历史 SOCKS协议的具体内容 SOCKS4 SOCKS4a SOCKS5 总结 简介 很久很久以前,人们还穿的是草鞋,草鞋虽然穿着舒服,但是不够美观.然 ...

  6. 面试必考的网络协议相关题目应该如何回答

    转载自  面试必考的网络协议相关题目应该如何回答 最近,正处于校招季.很多小伙伴已经拿到了如愿以偿的Offer,有些小伙伴还在努力着. 平常,也会有一些粉丝会在公众号留言,或者在微信上问我一些面试题. ...

  7. 【转】Wireshark网络抓包(三)——网络协议

    转自:https://www.cnblogs.com/strick/p/6262284.html 一.ARP协议 ARP(Address Resolution Protocol)地址解析协议,将IP地 ...

  8. 网络协议 18 - CDN:家门口的小卖铺 1

    [前五篇]系列文章传送门: 网络协议 13 - HTTPS 协议:加密路上无尽头 网络协议 14 - 流媒体协议:要说爱你不容易 网络协议 15 - P2P 协议:小种子大学问 网络协议 16 - D ...

  9. 常见的网络协议有哪些?

    原文链接地址:http://blog.sina.com.cn/s/blog_9cf7416701012pw4.html 在网络的各层中存在着许多协议, 它是定义通过网络进行通信的规则, 接收方的发送方 ...

最新文章

  1. Sprites实现翻页按钮,圆角,宽度不固定
  2. jQuery左右选择框
  3. rgb565和rgb555的文件头区别_Windows可执行文件格式
  4. 【Intellij IDEA系列】IDEA使用git提交代码流程
  5. thymeleaf 获取yml中的值_SpringBoot引入Thymeleaf
  6. git遇到的问题-- Another git process seems to be running in this repository
  7. linux基本操作命令(centos)
  8. 一些数学小公式/定理的证明
  9. vue下拉框值改变事件_vue和element ui 下拉框select的change事件
  10. Zdenek Kalal的TLD Tracker(牛啊,学习!)
  11. python获取列表长度方法_python - 在Pandas df列中获取有关列表长度(平均长度,最大长度等)的统计信息的大多数pandas-onic方法 - 堆栈内存溢出...
  12. axure数据报表元件库_axure图表元件库 axure自制的组件库(包括数据组件)
  13. STM32-面试题及答案
  14. HTML怎么在背景中加视频,视频加背景图片 怎样把一个视频嵌入到一个图片中
  15. Unity Ugui 详解 Content Size Fitter 和 Horizontal Layout Group 的使用
  16. kali2020之chrome安装代理插件
  17. 闭包,何为闭包?如何解决闭包? (最全面解释)
  18. python 创建空的numpy数组_真假美猴王-Numpy数据与Python数组的区别与联系
  19. 用 Python 解释 SpaceX 如何进行火箭回收
  20. 微软-2020暑期实习生招聘-笔试

热门文章

  1. python3元类_3.python元类编程
  2. 查看计算机.net环境版本,windows7系统查看NET Framework版本的两种方法
  3. 字符串Hash的原理与应用
  4. Duilib教程-自动布局1
  5. 逆向工程核心原理学习笔记(六):实战开辟新内存区域写入缓冲区跳转修改字符串
  6. MFC六大核心机制之三:动态创建
  7. Linux调度系统全景指南(终结篇)
  8. 程序员十大心愿,程序员:你这么了解我的心声的嘛!
  9. 音视频技术开发周刊 | 196
  10. 多媒体技术 PI 第一期:OSS 圆桌预告