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

CGNAT及多层NAT下的Linux节点如何配置支持公网Windows服务器SSH访问

实现方案:SSH远程端口转发访问CGNAT后Linux节点

前置准备

  • 公网Windows服务器开启SSH服务:Windows 10 1809+/Server 2019+可直接在「设置-应用-可选功能」中安装OpenSSH服务器,低版本可手动安装OpenSSH for Windows
  • 所有Linux节点预装OpenSSH客户端,主流发行版默认已自带
  • 公网Windows服务器防火墙放行后续要用到的转发端口段(例如10000-10100)的入站规则

核心原理

每个处于CGNAT后的Linux节点主动向公网Windows服务器发起SSH远程端口转发,将自身本地22端口(SSH默认服务端口)绑定到公网Windows服务器的指定本地端口上,后续在Windows服务器上访问对应绑定的本地端口,即可连通对应Linux节点的SSH服务。

操作步骤

1. Linux节点临时转发配置(仅当前会话生效,断开后失效)

在Linux节点执行以下命令,替换对应占位符即可:
ssh -fN -R <Windows侧绑定端口>:localhost:22 <Windows服务器用户名>@<Windows公网IP>
参数说明:

  • -f:SSH连接成功后转入后台运行
  • -N:不执行远程命令,仅做端口转发
  • -R:启用远程端口转发规则
  • <Windows侧绑定端口>:每个节点分配唯一的1024以上未被占用端口,例如节点1用10001、节点2用10002
  • <Windows服务器用户名>:Windows服务器的SSH登录账号
  • <Windows公网IP>:公网Windows服务器的公网地址

执行后按提示输入Windows服务器的SSH登录密码即可完成转发配置。

2. 公网Windows服务器发起SSH连接

配置完成后,在Windows服务器上执行以下命令即可访问对应Linux节点:
ssh <Linux节点用户名>@localhost -p <该节点绑定的Windows侧端口>
例如节点1绑定了10001端口,Linux节点用户名是root,执行命令为ssh root@localhost -p 10001

3. Linux节点持久化配置(开机自启、断线自动重连)

临时配置在网络波动、节点重启后会失效,可通过systemd配置服务实现持久化:

  1. 先配置Linux节点SSH密钥免密登录公网Windows服务器,避免每次连接需要输入密码:
    执行ssh-keygen一路回车生成密钥对,再执行ssh-copy-id <Windows服务器用户名>@<Windows公网IP>,输入Windows SSH密码完成密钥上传。
  2. 新建systemd服务文件:sudo nano /etc/systemd/system/ssh-forward.service
    写入以下内容,替换对应占位符:
[Unit]
Description=SSH Remote Port Forward to Public Windows Server
After=network.target

[Service]
User=<Linux节点本地用户名>
ExecStart=/usr/bin/ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -o ExitOnForwardFailure=yes -fN -R <Windows侧绑定端口>:localhost:22 <Windows服务器用户名>@<Windows公网IP>
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. 启动服务并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl start ssh-forward.service
sudo systemctl enable ssh-forward.service

注意事项

  • 每个Linux节点需绑定不同的Windows侧端口,避免端口冲突导致转发失败
  • 若需要其他公网设备无需登录Windows服务器即可直接访问Linux节点,可修改Windows侧C:\ProgramData\ssh\sshd_config文件,将GatewayPorts参数改为yes后重启Windows的sshd服务,后续直接通过Windows公网IP+绑定端口即可访问对应节点。安全提示:开启该配置后转发端口会暴露在公网,建议配置Windows防火墙仅放行可信IP访问这些端口,避免被暴力破解
  • 若转发频繁断线,可调整systemd服务配置中的ServerAliveInterval(心跳发送间隔,单位秒)和RestartSec(断线后重连等待时间,单位秒)参数,适配网络环境。

内容的提问来源于stack exchange,提问作者ivbsd1

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:36:01