内网穿透之ngrok¶
- 内网穿透: 从外网(有IP)访问局域网中的设备。
问题¶
- 在家里有一台计算机,希望在外面时,能够查看家里计算机运行情况。但我家的宽带是移动宽带,没有给分配公网IP。
解决方法¶
- 这是一个典型的外网访问内网问题,有一些公司在提供相关技术,比如花生壳。
- 本文使用
ngrok
来解决这个问题。
第一步,注册账号,开通隧道¶
- 访问网站:sunny-ngrok,注册账号。
- 开通
tcp
协议的隧道,如下图所示。(注意: 试验的话,购买网页最下面的免费的套餐即可) 开通隧道 - 点击
隧道管理
,查看刚刚开通的隧道的相关信息,如下所示: 隧道信息 - 记住以下三条信息。
隧道id:5f191234d990a838
隧道端口:14568
服务器地址:free.idcfengye.com(请不要暴露此地址,避免服务器遭受攻击,谢谢)
第三步,安装客户端¶
- 安装很简单:解压后,直接执行可执行命令即可。
- 以下是我的操作步骤,我将它放到
/usr/local/bin/
目录下,方便任何地方执行。
unzip linux_amd64.zip
cd linux_amd64/
ls
sudo cp sunny /usr/local/bin/
cd
sunny -h
第四步,启动客户端¶
- 启动客户端很简单,一句命令即可。
- 需要使用
隧道id
。比如,上面我的隧道id是:隧道id:5f191234d990a838
- 执行命令是:
sunny clientid 隧道id
- 注意替换成自己的隧道id:
sunny clientid 5f191234d990a838
第五步,测试¶
- 换一台电脑,执行以下命令测试:
ssh -p 端口号(ngrok注册时的端口号) 用户名@服务器地址
- 比如,我的用户名是:
xuezhisd
,端口号是:14568
,服务器地址是:free.idcfengye.com
。 - 我的测试命令是:
ssh -p 14568 xuezhisd@free.idcfengye.com
。 - 成功地访问家里的计算机,顺利解决问题!:-D
参考¶
- sunny-ngrok 提供免费ngrok。
- 使用ssh,ngrok 外网远程连接linux 提供了参考教程。