台州的网站建设,电商网站建设网络公司,中信建设有限责任公司股票代码,先做网站装修还是先买虚拟主机什么是 Serveo
Serveo 是一个免费的内网穿透服务#xff0c;Serveo 可以将本地计算机暴露在互联网上#xff0c;官方声称其为 Ngrok 的绝佳替代品。
Serveo 其最大优点是使用现有的 SSH 客户端#xff0c;无需安装任何客户端软件即可完成端口转发。 Serveo 工作原理很简单…
什么是 Serveo
Serveo 是一个免费的内网穿透服务Serveo 可以将本地计算机暴露在互联网上官方声称其为 Ngrok 的绝佳替代品。
Serveo 其最大优点是使用现有的 SSH 客户端无需安装任何客户端软件即可完成端口转发。 Serveo 工作原理很简单当用户通过 SSH 连接到 Serveo 时会与该网站建立一个远程代理Serveo 随后会生成一个 公共 URL任何人都可以通过这个 URL 访问你的本地计算机。 官网: https://serveo.net 使用 Serveo
Serveo 的使用非常简单只需要可以使用 SSH 客户端并且能连接到互联网的任意系统都行。比如Linux、Windows、MacOS 等系统就算是 Android、iOS 也同样没问题。下面我们来看几个最常用的使用实例。 开放本地服务到公网
将一个本地应用的 8080 端口映射到公网中。
# 如果要转发其它端口只需替换端口为其它就可以了
$ ssh -R 80:localhost:8080 serveo.net
Hi there
Forwarding HTTP traffic from https://sedo.serveo.net
Press g to start a GUI session and ctrl-c to quit.
SSH 连接成功后会随机生成一个 serveo.net 二级域名。随后你就可以使用浏览器访问这个随机生成的二级域名 sedo.serveo.net 间接访问到本地计算机 8080 端口上的服务了。 SSH 初次和一个新服务器建立连接时会有提示直接选择 yes 即可。 如果你不想使用随机域名想指定一个固定的二级域名也是可以的。
# 这里指定为 sissi.serveo.net 可以根据自身情况进行替换
$ ssh -R sissi:80:localhost:8080 serveo.net
Hi there
Forwarding HTTP traffic from https://sissi.serveo.net
Press g to start a GUI session and ctrl-c to quit.
# 上面的域名是简写的你也可以写出完整的域名。
$ ssh -R sissi.serveo.net:80:localhost:8080 serveo.net
SSH 连接成功后此时就可以在公网上使用 sissi.serveo.net 访问到你本地计算机 8080 端口的服务了。
上面的例子中我们转发的是 HTTP 服务。如果你需要转发的是 TCP 服务其实方法也很简单同样只需设置公网的转发端口和本地端口就可以了。
例如我们需要将本地 3306 端口转发到公网中使用下面命令即可。
# 可以自行设置公网端口这里设置为 1111
# 如果公网端口设置为0就会采用一个随机端口进行转发
$ ssh -R 1111:localhost:3306 serveo.net
$ ssh -R 0:localhost:3306 serveo.net
例如将本地 SSH 重定向到公网
在很多场景下我们需要远程访问到本地计算机的 SSH 服务。要实现这样的需求也很简单只需要使用下面的命令。
# 名称为自定义里设置为 myhost
$ ssh -R myhost:22:localhost:22 serveo.net
Hi there
Forwarding SSH traffic from alias myhost
Press g to start a GUI session and ctrl-c to quit.
连接成功后接下来你就可以从公网上对这个内网计算机的 SSH 进行访问了。
$ ssh -J serveo.net myuser myhost
Hi there
myuser 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
一些其它技巧
保持 SSH 连接不超时
众所周知SSH 连接一旦超时就会自动断开这样就很容易造成服务中断。这里我们只需给 SSH 连接增加一个保活参数 -o ServerAliveInterval 60 就可以了。
# 每隔 60 秒做一次连接保活
$ ssh -o ServerAliveInterval 60 -R 80:localhost:8080 serveo.net
对 SSH 连接进行守护
上面的方法虽然可以解决超时的问题但进程始终是在前台运行的。为了彻底解决这个问题官方推荐使用 AutoSSH 来进行进程守护。 AutoSSH 是一个用来对 SSH 连接进行监控的程序可在遇到程序问题或者是网络问题时自动进行重连以达到长期保持 SSH 稳定连接的目的 。 安装 AutoSSH
# Debian / Ubuntu 系统
$ apt install autossh -y # CentOS / RHEL 系统
$ yum install autossh -y 将 AutoSSH 加入到系统服务
这里以加入到 Systemd 系统服务为例此方法适用于 CentOS 7、Debian 8、Ubuntu 16 及以上系统版本。首先我们创建一个 AutoSSH 的 Systemd 服务。
$ cat /etc/systemd/system/autossh.service [Unit]
Description autossh
After network.target [Service]
Type simple
Environment AUTOSSH_GATETIME 0
ExecStart $(command -v autossh) -M 0 -o ServerAliveInterval 60 -o ServerAliveCountMax 3 -R 80:localhost:8080 serveo.net
Restart on-abort [Install]
WantedBy multi-user.target
EOF AutoSSH 的 -M 参数主要用于指定一个监听端口来监视 SSH 连接状态这里指定为 0 的主要目的是禁用 AutoSSH 的监控端口。保活依然使用 SSH 自己的 ServerAliveInterval 和 ServerAliveCountMax 选项来完成。 其次Systemd 系统服务创建完成后我们启动这个 AutoSSH 的服务并设置为开机自启。
如果你无法通过 22 端口连接到 Serveo官方还预留了 443 端口给你使用
$ systemctl start autossh
$ systemctl enable autossh
使用自定义的域名 / 子域名
$ ssh -p 443 -R 80:localhost:8080 serveo.net
默认情况下我们都是使用的 Serveo 生成的二级域名进行连接的。如果你想使用自己的域名也是可以的方法非常简单。只需要在你的域名所在 DNS 中添加一条 A 记录和一条 TXT 记录就可实现。
添加一条 A 记录
A | serveo | 159.89.214.31
添加一条 TXT 记录
TXT | serveo | authkeyfp SHA256:pmc7ZRv7ymCmghUwHoJWEm5ToSTd33ryeDeps5RnfRY authkeyfp 后面跟的那一串字符是 RSA 密钥指纹你可以使用 ssh-keygen -l 命令进行查看。 DNS 解析记录增加好后你就可以使用自定义域名进行连接了。
$ ssh -R serveo.sissi.org:80:localhost:3000 serveo.net 还有很多好玩的自行去官网查询。