绕过防火墙:X11转发

我经常要连接远端的服务器,而由于种种原因,不仅防火墙加了很多限制,sshd的X11 forwarding和tcp forwarding也都被关闭了。但是没关系,自己装个tcp转发器就好了(这一点在sshd的文档中就有注明)。

下面,嘿嘿,看我是怎么把本机的6000端口转发到服务器上去的。
首先,下载个叫做netcallback的软件。

http://netcallback.sourceforge.net/release/netcallback-1.3.1.zip
http://netcallback.sourceforge.net/release/netcallback-1.3.1.tar.gz

然后,在本机运行xserver,那么它就会在tcp 6000端口执行监听。

最后,就是最重要的,我们要把这个端口利用netcallback转发出去。
1、在远程服务器上,运行
java -jar netcallback.jar -public -servicePort 63121 -tcpPort 6000
那么,netcallback就会在63121 和6000端口执行监听。其中63121 是netcallback和netcallback之间执行通讯的,传输一些控制信息。而6000是我们要转发的端口,用于传输x协议的数据信息。

2、在本机(运行X的机器)上运行
java -jar netcallback.jar -private -service xxx.xxx.xxx.xxx 63121 -tcp 127.0.0.1 6000
其中xxx.xxx.xxx.xxx是服务器的ip,63121是netcallback在xxx.xxx.xxx.xxx执行监听的端口。后面是要被转发出去的internet地址。

之后,所有发往xxx.xxx.xxx.xxx的6000端口的tcp请求以及数据,都会被转发到正在运行x的那台机器的6000端口。下面要做的就是把DISPLAY环境变量设置成127.0.0.1:0.0,就ok了!

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥