hole 是一个用来穿透防火墙的工具,由我研发,早期使用Go语言开发,现在使用Haskell语言开发。
项目地址请访问 haskell-hole
haskell 版本比 Go 版本性能更好,支持更多的功能,如:
本地转发到远程,远程转发到本地,支持UDP和TCP,数据加密等
linux 安装编译后版本如下:
$ wget https://github.com/Lupino/haskell-hole/releases/download/v1.0.0/haskell-hole-linux-v1.0.0.tar.bz2
$ tar xvf haskell-hole-linux-v1.0.0.tar.bz2
$ cp hole /usr/bin
$ cp holed /usr/bin
相应的在服务器和本地都用相同的方法安装。
将本地的 ssh 服务转发到远程
首先在远程服务器上开启 holed 服务,它有两个端口,一个是 holed 本身的端口,用来接收或转发数据,一个是对外服务的端口,访问这个端口就好像范围本地的端口。
holed -H tcp://:4000 -a tcp://:2222
- 4000 为 holed 服务的端口
- 2222 为 对外服务的端口
在本地开启 hole 服务,它连接的 holed 服务,并且连接到本地 sshd 服务的端口
hole -H tcp://server-ip:4000 -H tcp://127.0.0.1:22
这样子我们就版本地的 sshd 服务转发到远程的服务器上了,我们访问本地的 sshd 服务,只要通过访问远程服务器上 2222 端口就可以
ssh root@server-ip -p 2222
网友评论