在Linux系统上(目前Windows10系统也可以)ssh相可以远程访问其他桌面连接,只有命令行终端。在局域网,通常只要能ping通就可以用以下命令访问Linux主机,输入账户密码即可登录,但是非局域网下,ping不通如何使用ssh命令呢?按照以下步骤即可实现。
ssh HOSTNAME@IP_ADDRESS
第一步 安装sshd
Linux ssh安装与启动,可以输入ssh命令检查是否已安装。
apt-get install openssh-client
ssh状态查看,启动,停止,重启命令:
systemctl status sshd #检查sshd服务状态,显示activating即为激活运行状态
systemctl start sshd #启动sshd服务
systemctl stop sshd #停止sshd服务
systemctl restart sshd #重启sshd服务
第二步 安装ngrok
ngrok是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析和重放。Ngrok是国际有名的内网传统软件,因为提供免费的香港域名。
官网下载ngrok - download
按照官网给出的文档进行解压安装即可。
*需要登陆账号,并执行图片中的命令进行初始化,初始化后即可使用。
运行此命令会将您的authtoken添加到默认的ngrok.yml配置文件中。这将允许您使用更多的功能和更长的会话时间。运行隧道将在仪表板的端点页面上列出。
第三步 启动ngrok内网穿透
Linux宿主机器打开终端
举例:输入以下命令,可以出现下图所示的界面,运行期间不能关闭此窗口,最好也别让宿主机器自动锁定。
ngrok tcp 22 #代表启动tcp穿透服务,端口号为22
第四步 远程访问
在进行远程操作的机器上,这里以Windows 10为例(Linux系统为同样的命令),Windows+R运行CMD,输入以下命令:
ssh ahu@0.tcp.jp.ngrok.io -p 176XX #用户名后的@即为图片上的虚拟主机地址
#-p 接端口号
登录成功!
补充:利用scp远程拷贝文件
从本地机器拷贝到远程机器
ngrok图中端口号 本地文件 远程地址
scp -P 176XX ./xxx.txt ahu@0.tcp.jp.ngrok.io:/home/USER/
从远程机器拷贝到本地
ngrok图中端口号 远程地址文件 本地地址
scp -P 176XX ahu@0.tcp.jp.ngrok.io:/home/USER/XXX.zip ./
附件--好用的内网穿透工具列表
- ngrok ngrok - download
- frp Releases · fatedier/frp · GitHub
- Sunny-Ngrok Sunny-Ngrok内网转发内网穿透 - 国内内网映射服务器
- Natapp NATAPP-内网穿透 基于ngrok的国内高速内网映射工具
- Earthworm EarthWorm
- reDuh GitHub - sensepost/reDuh: Create a TCP circuit through validly formed HTTP requests
- reGeorg GitHub - sensepost/reGeorg: The successor to reDuh, pwn a bastion webserver and create SOCKS proxies through the DMZ. Pivot and pwn.
- Tunna GitHub - SECFORCE/Tunna: Tunna is a set of tools which will wrap and tunnel any TCP communication over HTTP. It can be used to bypass network restrictions in fully firewalled environments.
- sSocks https://github.com/log4she11/sSocks
- holer holer: Holer是一个将局域网服务器代理到公网的内网穿透工具,支持转发基于TCP协议的报文
- nps nps: NPS 是一款轻量级、高性能、功能强大的内网穿透代理服务器
- 花生壳 花生壳内网穿透|ddns动态域名解析|端口映射工具-贝锐花生壳官网
参考资料:SSH远程控制(1)——内网穿透:linux穿linux、windows穿linux_每天都要深度学习的博客-CSDN博客_linux内网穿透