欢迎光临
我们一直在努力

小技巧:ssh启动端口转发ssh -N -L 18789:127.0.0.1:18789 user@host

在安装启动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 隧道加密传输。

⚠️ 注意事项

  • ‌保持连接‌:关闭 SSH 窗口会中断转发,需常驻后台(可用 tmux/nohup);
  • ‌权限配置‌:确保远程主机的 sshd_config 启用 AllowTcpForwarding yes;
  • ‌替代方案‌:
    • 远程转发(-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登录权限即可。

    赞(0)
    未经允许不得转载:171主机测评 » 小技巧:ssh启动端口转发ssh -N -L 18789:127.0.0.1:18789 user@host
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址