概述Serveo 是一个免费的内网穿透服务 , Serveo 可以将本地计算机暴露在互联网上 , 官方称其为 Ngrok 的绝佳替代品 。
Serveo 其最大优点是使用现有的 SSH 客户端 , 无需安装任何客户端软件 , 即可完成端口转发 。
文章插图
Serveo工作原理当用户通过 SSH 连接到 Serveo 时会与该网站建立一个远程代理 , Serveo 随后会生成一个 公共 URL , 任何人都可以通过这个 URL 访问你的本地计算机 。
项目地址: https://serveo.netServeo使用案例分享1、转发http服务将本地应用的8080端口映射到公网中
# 如果要转发其它端口 , 只需替换端口为其它就可以了$ ssh -R 80:localhost:8080 serveo.netHi thereForwarding HTTP traffic from https://heryum.serveo.netPress g to start a GUI session and ctrl-c to quit.
SSH 连接成功后 , 会随机生成一个 serveo.net 二级域名 。随后你就可以使用浏览器访问这个随机生成的二级域名 heryum.serveo.net 间接访问到本地计算机 8080 端口上的服务了 。SSH初次和一个新服务器建立连接时会有提示 , 直接选择 yes 即可 。如果你不想使用随机域名 , 想指定一个固定的二级域名也是可以的 。
# 这里指定为 ywzm.serveo.net , 可以根据自身情况进行替换$ ssh -R ywzm:80:localhost:8080 serveo.netHi thereForwarding HTTP traffic from https://ywzm.serveo.netPress g to start a GUI session and ctrl-c to quit....?# 上面的域名是简写的 , 你也可以写出完整的域名 。$ ssh -R ywzm.serveo.net:80:localhost:8080 serveo.net?
2、转发TCP服务把本地的3306端口转发到公网中 , 使用下面命令即可 。# 可以自行设置公网端口 , 这里设置为 1492$ ssh -R 1492:localhost:3306 serveo.net?# 如果公网端口设置为 0 , 就会采用一个随机端口进行转发$ ssh -R 0:localhost:3306 serveo.net
3、ssh重定向到公网远程访问本地的ssh服务其实很简单 , 只需要使用下面的命令即可 。# 名称为自定义的 , 这里设置为 myhost$ ssh -R myhost:22:localhost:22 serveo.netHi thereForwarding SSH traffic from alias "myhost"Press g to start a GUI session and ctrl-c to quit....
连接成功后 , 接下来你就可以从公网上对这个内网计算机的 SSH 进行访问了 。$ ssh -J serveo.net myuser@myhostHi theremyuser@myhost's password:Last login: Mon Dec 24 21:00:32 2019 from 127.0.0.1...
-J 选项是在 OpenSSH 7.3 版本才引入的 , 如果你使用的 SSH 客户端版本较旧 , 则可以使用 ProxyCommand 选项来替代 。$ ssh -o ProxyCommand="ssh -W myhost:22 serveo.net" user@myhost
一些其它技巧1、保持 SSH 连接不超时众所周知 , SSH 连接一旦超时就会自动断开 , 这样就很容易造成服务中断 。这里我们只需给 SSH 连接增加一个保活参数 -o ServerAliveInterval=60 就可以了 。# 每隔 60 秒做一次连接保活$ ssh -o ServerAliveInterval=60 -R 80:localhost:8080 serveo.net
2、对 SSH 连接进行守护上面的方法虽然可以解决超时的问题 , 但进程始终是在前台运行的 。为了彻底解决这个问题 , 官方推荐使用 AutoSSH 来进行进程守护 。AutoSSH 是一个用来对 SSH 连接进行监控的程序 , 可在遇到程序问题或者是网络问题时自动进行重连 , 以达到长期保持 SSH 稳定连接的目的。
- 安装 AutoSSH
# Debian / Ubuntu 系统$ apt install autossh -y?# centos / RHEL 系统$ yum install autossh -y
- 将 AutoSSH 加入到系统服务
$ cat > /etc/systemd/system/autossh.service <<EOF[Unit]Description=autosshAfter=network.target?[Service]Type=simpleEnvironment="AUTOSSH_GATETIME=0"ExecStart=$(command -v autossh) -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 80:localhost:8080 serveo.netRestart=on-abort?[Install]WantedBy=multi-user.targetEOF
AutoSSH 的 -M 参数主要用于指定一个监听端口来监视 SSH 连接状态 , 这里指定为 0 的主要目的是禁用 AutoSSH 的监控端口 。保活依然使用 SSH 自己的 ServerAliveInterval 和 ServerAliveCountMax 选项来完成 。
推荐阅读
- 本文教大家基于VM虚拟机安装CentOS搭建Docker环境
- BIOS中英文对照表,安装系统再也不怕看不懂英文了
- 用Docker一键快速安装mysql数据库
- nginx 这一篇就够了
- 怎么用安装光盘重新安装系统步骤 光盘安装重装系统步骤图解
- MySQL 安装 MariaDB Audit Plugin 插件,实现审计日志输出
- Centos7.5下安装oracle 11gR2
- IIS+MySQL+PHP+Phpmyadmin配置Web站点之Mysql安装
- 网红幽灵门好不好,该如何安装
- 家用太阳能电池板原理和安装