在安装启动openclaw的时候,看到它提示用这句话实现远程的本地访问。
ssh -N -L 18789:127.0.0.1:18789 user@host
参数解析
- -N 不执行远程命令,仅建立纯隧道(节省资源,适合专用于端口转发)。
- -L 启动本地端口转发(Local Port Forwarding)。
- 18789:127.0.0.1:18789
- 第一个 18789:本地主机监听的端口
- 127.0.0.1:18789:远程主机(user@host)上待转发的目标服务地址(此处 127.0.0.1 是从远程主机视角解析)。
- user@host SSH 登录的远程主机凭证(用户名 + IP/域名)。
🛠️ 核心使用场景
场景 1:安全访问内网服务(如 OpenClaw Gateway)
- 问题:OpenClaw 默认绑定 127.0.0.1:18789,仅允许本地访问。
- 解决: 通过此命令将远程 18789 端口映射到本地,浏览器访问 http://localhost:18789 即可安全操作远程 OpenClaw 控制台。
场景 2:突破防火墙/访问隔离服务
- 访问远程主机 仅监听 127.0.0.1 的服务(如数据库、内部 API);
- 访问远程主机 内网其他机器 的服务(需调整目标地址为内网 IP)。
场景 3:加密敏感流量
- 在不安全网络中保护明文协议(如 HTTP、FTP),通过 SSH 隧道加密传输。
⚠️ 注意事项
- 远程转发(-R):将本地服务暴露给外网;
- 动态代理(-D):创建全局 SOCKS5 代理。
实践
服务器端为192.168.1.12 Ubuntu server
客户端为Windows10
服务端
修改配置
实际实践的时候,需要在服务器端的ssh打开转发:
修改这个文件/etc/ssh/sshd_config:
UsePAM yes
AllowAgentForwarding yes
把#AllowAgentForwarding yes改成AllowAgentForwarding yes
重启ssh服务:
sudo service ssh restart
客户端
启动隧道
在客户端,执行这条命令
ssh -N -L 18789:127.0.0.1:18789 user@host
浏览器浏览http://localhost:18789
这时候在客户端就可以直接用localhost连服务器端了
http://localhost:18789

本来openclaw只能本地访问,现在也可以远程访问了,只需要服务器端ssh打开了端口转发,客户端有ssh登录权限即可。




