最近想在公司远程连接家里的windows机器,但家里宽带没有公网ip,而且在路由器后面,研究了一番,发现最简单的方法是用ssh做反向代理,下面记录一下实现过程。
首先要有一台VPS,因为用阿里云的云服务器很久了,于是打算在这台机器上搞,机器配置很老,1核512M内存,1M带宽,一个月差不多30块,装的ubuntu12.04。先用root用户登录VPS,编辑/etc/ssh/sshd_config文件,增加下面两项
GatewayPorts yes
AllowTcpForwarding yes
然后重启ssh
service ssh restart
之后在windows机器上执行如下ssh语句(此处采用MobaXterm)
ssh -R vpsIP:33389:localhost:3389 username@vpsIP
这相当于连接VPS后,把所有对VPS33389端口的访问,都转发到本机3389端口,也就是windows远程桌面的默认端口。
接下来就可以用公司机器直接打开远程桌面,进行连接了。只是连接地址改成vpsIP:33389的样子,如下所示。
为了防止掉线,也可以采用MobaXterm自带的tunnel来实现。如下所示
点击new SSH tunnel按钮
选择Remote port forwarding,填写相应的地址和端口信息后保存
最后在出现的条目中点击最后两个小图标,让它们生效。第一个按钮是此tunnel随MobaXterm启动时自动连接,第二个是当网络意外断开时尝试重新连接。
注意到上面设置地址时,还有一项是Dynamic port forwarding (SOCKS proxy),通过该项可以设置socks代理,然后在支持socks代理的浏览器里就可以通过该代理上网了。如下所示,
该功能非常有用,经常有朋友问我怎么弄,一并记在这里供大家学习。
找个支持socks代理的浏览器,比如firefox,找到网络设置
填上之前设置的地址和端口(地址就是本地,localhost或127.0.0.1)
选中下图中的选项,然后点击确定。
然后你就可以愉快地上网了。
来源:oschina
链接:https://my.oschina.net/propagator/blog/3208522