跳转到内容

SSH SOCKS 代理转发失败:Synology NAS AllowTcpForwarding 配置

SSH SOCKS 代理转发失败:Synology NAS AllowTcpForwarding 配置

Section titled “SSH SOCKS 代理转发失败:Synology NAS AllowTcpForwarding 配置”

分类: 运维 / 网络代理
记录时间: 2026-03-18
环境: Synology 群辉 NAS + 远程云主机


远程服务器(云主机)尝试通过本地 NAS(群辉)建立 SSH SOCKS5 代理,SSH 登录正常,但代理转发完全不通。

Terminal window
# ❌ 通过 NAS 代理访问失败
curl --proxy socks5h://127.0.0.1:1082 https://ifconfig.me
# ✅ 自己的代理正常
curl --proxy socks5h://127.0.0.1:1080 https://ifconfig.me

SSH 服务器默认禁止了端口转发(AllowTcpForwarding no),导致 -D 建立的 SOCKS 请求被服务端拒绝。

关键特征:SSH 连得上,但代理不能用 — SSH 登录会话与端口转发权限是独立的。

1. ssh -vvv 日志出现:

channel 1: open failed: administratively prohibited: open failed

这不是目标网站超时,而是服务端策略拒绝。

2. 远端配置查到:

/etc/ssh/sshd_config:88 AllowTcpForwarding no

Terminal window
sshd -T | grep -E 'allowtcpforwarding|permitopen'

需要 root 权限。显示最终生效值(而非 sshd_config 文件内容,避免被 include 文件覆盖)。

Step 2:修改 sshd_config(最小权限原则)

Section titled “Step 2:修改 sshd_config(最小权限原则)”

推荐按用户开放,不要全局放开:

Match User <username>
AllowTcpForwarding yes
PermitOpen any
PermitTunnel yes

如果接受全局开放:

AllowTcpForwarding yes
Terminal window
# 标准 Linux
sudo systemctl reload sshd
# Synology 群辉(专用命令)
sudo synosystemctl restart sshd
Terminal window
curl --proxy socks5h://127.0.0.1:1082 https://ifconfig.me
# 应返回代理出口 IP

在群辉 /etc/ssh/sshd_config 末尾添加:

Match User yomiya
AllowTcpForwarding yes
PermitOpen any
PermitTunnel yes

执行重启:

Terminal window
sudo synosystemctl restart sshd

现象原因
SSH 登录正常,SOCKS 代理不通AllowTcpForwarding no
curl 无响应而非立即报错请求到达服务端后被策略拒绝
群辉无法用 systemctl需要用 synosystemctl