外观
SSH 隧道实现端口映射
丹摩实例没有独立公网IP,当前为统一的外网 IP 接入。大多数服务发布的需求,可通过丹摩的自定义服务功能实现,但当前只支持 http/grpc/websocket 传输协议的服务转发。
如果实例内部服务为 TCP/UDP 服务,则可以使用 ssh 打隧道的方式实现端口映射。自定义服务默认只能创建 5 条,也可以使用 ssh 隧道的方式规避这个限制。
⭐️ ssh 隧道映射的效果:
- 正向代理,把远端实例内的端口 映射 到本地电脑上。
- 反向代理,把本地的服务的端口 映射 到丹摩实例内部。

代理方式
正向代理
🔥 把丹摩远端实例内的一个端口映射到本地电脑上的一个端口上,即在本地启动端口,把本地端口数据转发到远端。

使用方法
使用方法如下:
bash
ssh -p [ssh端口] -CNg -L [本地的端口]:localhost:[实例的端口] root@cn-north-b.ssh.damodel.com举例说明,如果想把丹摩实例中 50000 端口代理映射到本机的 9001,执行下面命令即可。
bash
ssh -p 37191 -CNg -L 9001:localhost:50000 root@cn-north-b.ssh.damodel.com测试效果
在本地对端口进行请求。
bash
curl 127.0.0.1:9001
telnet 127.0.0.1 9001反向代理
🔥 把本地的服务端口映射到丹摩实例内的一个端口上,即在丹摩实例启动端口,把远端端口数据转发到本地。

⭐️ 场景说明
比如,你在本地电脑起了一个 web 服务,但丹摩实例内部是无法直接访问你的服务,需要你有外网 IP 才可以。这里可以通过 ssh 反向代理的方式,把你本地的 web 服务通过 ssh 隧道映射到丹摩实例内。在丹摩实例内部可以直接 127.0.0.1 地址来请求。
使用方法
使用方法如下:
bash
ssh -p [ssh端口] -CNg -R [本地的端口]:localhost:[实例的端口] root@cn-north-b.ssh.damodel.com⚠️ 跟上面相比,区别是 -R
举例说明,如果想把本地的 50000 端口代理映射到丹摩实例内的 9001 端口,则执行下面命令。
bash
ssh -p 37191 -CNg -R 9001:localhost:50000 root@cn-north-b.ssh.damodel.com测试效果
在丹摩实例内,可以执行下面的测试命令,也可以使用对应的客户端做访问测试。
bash
# 判断端口是否存在
lsof -i :9001
netstat -tunalp|grep 9001
ss -an|grep 9001
# 端口连通性探测
curl 127.0.0.1:9001
telnet 127.0.0.1 9001FAQ
🤔 如何获取实例的 ssh 地址及账号密码。

bash
ssh -p 37191 root@cn-north-b.ssh.damodel.com
cQweBoss!@#- 37191 是该实例 ssh 对外端口。
- cQweBoss!@# 是该实例的 root 密码。
😅 搞不定 SSH 端口映射
通常 Mac 和 Linux 主机,方便操作 ssh 端口映射,而 windows 需要费点功夫。
联系丹摩技术客服,解决无法映射问题。或者,由技术人员直接在丹摩侧进行临时的公网端口映射。
类似效果:
bash
nc -vz 211.93.18.36 40001