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 登录正常,但代理转发完全不通。
# ❌ 通过 NAS 代理访问失败curl --proxy socks5h://127.0.0.1:1082 https://ifconfig.me
# ✅ 自己的代理正常curl --proxy socks5h://127.0.0.1:1080 https://ifconfig.meSSH 服务器默认禁止了端口转发(AllowTcpForwarding no),导致 -D 建立的 SOCKS 请求被服务端拒绝。
关键特征:SSH 连得上,但代理不能用 — SSH 登录会话与端口转发权限是独立的。
1. ssh -vvv 日志出现:
channel 1: open failed: administratively prohibited: open failed这不是目标网站超时,而是服务端策略拒绝。
2. 远端配置查到:
/etc/ssh/sshd_config:88 AllowTcpForwarding noStep 1:确认远端实际生效配置
Section titled “Step 1:确认远端实际生效配置”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 yesStep 3:重载 SSH 服务
Section titled “Step 3:重载 SSH 服务”# 标准 Linuxsudo systemctl reload sshd
# Synology 群辉(专用命令)sudo synosystemctl restart sshdStep 4:重新建立隧道并验证
Section titled “Step 4:重新建立隧道并验证”curl --proxy socks5h://127.0.0.1:1082 https://ifconfig.me# 应返回代理出口 IP实际解决方案
Section titled “实际解决方案”在群辉 /etc/ssh/sshd_config 末尾添加:
Match User yomiya AllowTcpForwarding yes PermitOpen any PermitTunnel yes执行重启:
sudo synosystemctl restart sshd| 现象 | 原因 |
|---|---|
| SSH 登录正常,SOCKS 代理不通 | AllowTcpForwarding no |
| curl 无响应而非立即报错 | 请求到达服务端后被策略拒绝 |
群辉无法用 systemctl | 需要用 synosystemctl |