You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows PowerShell中SSH本地端口转发函数报错求助

问题修复方案

你的问题出在PowerShell的字符串变量解析逻辑上:未用插值字符串包裹的[int]$port会被直接当作文本内容传递给ssh命令,导致转发格式错误。

修改后的函数有两种可行写法:

写法一(推荐,变量边界更清晰)

function sshpc ([int]$port = 8888) {
    ssh -fNL "${port}:localhost:${port}" pc
}

写法二(简洁版)

function sshpc ([int]$port = 8888) {
    ssh -fNL "$port:localhost:$port" pc
}

关键说明

  • PowerShell中,双引号包裹的字符串会自动解析变量,单引号则会原样输出内容。你之前的写法没有用引号包裹参数,PowerShell无法识别$port是变量,反而把[int]$port当成了命令参数的一部分,才出现[Int][Int]8888的错误。
  • 函数参数已经声明为[int]$port,内部直接使用$port即可,无需再次强制类型转换。

测试验证:执行sshpc会默认使用8888端口,执行sshpc -port 9999会切换为9999端口,均可生成正确的转发参数格式。

内容的提问来源于stack exchange,提问作者João Bravo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 11:05:55