SSH妙用之(一)内网穿透
对于有内网穿透需求的人来说,通常采用现成的工具,如ngrok、frp等,这些工具,如果没有明白其原理,那么配置起来,可能难于理解。其实还有更简单的方式,那就是通过ssh命令行工具来实现内网穿透。
今天我们就用ssh来实现内网穿透,并且可以深刻理解内网穿透的原理,减少非常多的配置,一个命令就搞定了,是不是很方便呢?
一、实现内网穿透的准备工作
1、要实现内网穿透,要求你有一台公网的服务器和一台需要穿透的内网本地电脑。前者可以租用便宜的linux云服务器,后者即你自己的电脑,将这台电脑通过内网穿透后,做成对外服务器,这台电脑根据情况,可以是linux,也可以是windows。
2、确保在linux云服务器已经安装了sshd,这可以通过安装openssh实现。通常已经安装,因为远程登录和管理都是必需的。并且确保防火墙没有禁止访问,总之保证可以用ssh远程登录这台服务器。
3、确保在本地电脑上已经正确安装ssh客户端,对于linux,通常默认带有,对于windows,下载安装openssh的windows版安装,保证ssh命令可以使用。
二、命令参数
ssh -NR 3034:192.168.1.2:3389 root@远程ip或地址
在本地电脑运行以上命令后,需要输入远程linux云服务器的root密码,如果命令行窗口闪烁光标,这样内网穿透便成功了。此时,用户通过访问linux云服务器的3034端口,即可以访问到你本地电脑的3389端口。
以下是参数解释:
1、-NR中的-R参数,是内网穿透的重点
2、3034:你需要开放的远程linux服务器的哪一个端口,可以根据情况设定。不要和已经打开的端口冲突,也要确保防火墙没有防住这个端口
3、192.168.1.2:即你本地电脑的内网ip,还可以指定成与你本地电脑在同一个网络中的另一个电脑的IP,把它当作服务器。这也是其妙用。
4、3389:本地电脑当服务器的服务端口。
5、root:是远程云服务器的管理员账号。
6、@远程ip或地址:就是你的远程云服务器,可用ip或域名代替(如果有正确的域名解析的话)。
再把上述命令效果解释一遍就是:通过访问远程linux云服务器的3034端口,就相当于访问本地电脑192.168.1.2的3389端口,这样就实现了内网穿透,成功将本地电脑的3389即远程桌面,推到了公网上去。
好了,
下一期,我们将采用另一个参数 -L,实现另一个重要用途。