如《Socks协议》所述,实现Socks协议的软件有很多,本文主要介绍OpenSSH和ShadowSocks。
一、OpenSSH
OpenSSH中的ssh程序和sshd程序不仅分别实现了ssh协议的SSH Client和SSH Server,还分别实现了Socks协议的Socks Client和Socks Server。
当使用ssh程序的动态转发功能时,使用的就是Socks协议,此时ssh程序作为Socks Client,sshd程序作为Socks Server。
二、ShadowSocks
ShadowSocks软件特定实现了Socks协议,其中包含ShadowSocks Client和ShadowSocks Server,分别实现了Socks协议的Socks Client和Socks Server。
三、两种实现的比较
实现方案 | 常用的连接建立方式需要的参数 | 上网速度 | 抗干扰性 |
---|---|---|---|
OpenSSH | 1、Socks Server所在的机器的地址,即sshd程序所在的机器的地址 2、Socks Server监听的端口号,即sshd程序监听的端口号 3、合法帐号 4、合法私钥 |
跟ShadowSocks相差无几 | Socks Client和Socks Server之间的连接隧道只创建一次,一旦被创建后,就通过控制信息来维持该隧道,遭到干扰而使得连接隧道被断开后,该连接隧道不会被自动再次创建 |
ShadowSocks | 1、Socks Server所在的机器的地址,即ShadowsSocks Server程序所在的机器的地址 2、Socks Server监听的端口号,即ShadowsSocks Server程序监听的端口号 3、合法密码 4、Socks连接加密方式 |
跟OpenSSH相差无几 | Socks Client和Socks Server之间的连接隧道允许被多次按需创建,一旦有数据传输需求,就可以创建连接隧道,遭到干扰而使得连接隧道被断开后,该连接隧道可以自动再次被创建 |
参考文献
[1]https://www.yaoblog.info/?p=7411
[2]http://ilovetile.com/3423