socat 支持 socks5 代理

前面提到 socat 不支持 socks5 代理,注意到 socat v2(开发已停滞多年)实际上已经部分支持 socks5 了,因此参考 v2 版本的部分代码打了一个支持 socks5 的补丁

构建

$ git clone https://github.com/runsisi/socat.git
$ cd socat
$ autoconf
$ ./configure --prefix=/usr
$ make -j4
$ sudo make install

使用

如果 socks5 代理服务器无需用户名和密码,可以以如下的方式访问:

$ ssh -o ProxyCommand='socat - socks5:localhost:%h:%p,socks5port=3344' 10.20.30.40
Last login: Sat Sep 21 14:03:12 2019 from 10.20.30.33

如果 socks5 代理服务器需要密码,则可以增加用户名和密码选项:

$ ssh -o ProxyCommand='socat - socks5:localhost:%h:%p,socks5port=3344,socks5user=userabc,socks5pass=pass123' 10.20.30.40
Last login: Mon Sep 23 08:31:16 2019 from 10.20.30.33

最后修改于 2019-09-23