我有一个 VPS 设置为我的 socket5 代理,安装了 Firefox 插件 AutoProxy。
ssh -p 2034 -D 127.0.0.1:1080 root@vps_ip
我的VPS上的端口是2034。
该命令可以工作一段时间,也许10分钟或20分钟,在这段时间里,我用我的Firefox打开了很多网页,突然,连接被阻止,并显示错误信息。
channel 8: open failed: administratively prohibited
channel 9: open failed: administratively prohibited
channel 10: open failed: administratively prohibited
我在stackoverflow上搜索过这个问题,例如:SSH 隧道错误:“通道 1:打开失败:管理禁止:打开失败”
我的问题与此不同!
- 我每次都能正确创建 ssh 隧道。
- 当ssh隧道创建后,我可以浏览网页一段时间,大约10或20分钟。
- 当我的火狐浏览器打开很多网页后,隧道就被打破了。
- 如果我关闭 Firefox 和控制台一段时间,我可以再次创建隧道。
它将继续循环。
我的 VPS 和 ssh 服务出了什么问题?我的系统是debian8.1,ssh日志文件在哪里?我的debian中没有/var/log/secure。也许ssh日志文件可以说明更多事实。
答案1
听起来您遇到了 SSH 服务器对每个连接同时会话数的限制。与远程服务器的命令行会话是一个会话,每个单独转发的 TCP 连接是另一个会话。
MaxSessions
您可以通过以下参数更改服务器的限制服务器的sshd_config
文件:
最大会话数
指定每个网络连接允许的最大打开会话数。默认值为 10。
您可以像这样更新 sshd_config:
- 找到该文件。通常是
/etc/ssh/sshd_config
。 - 以 root 身份编辑它。
- 在文件中查找现有
MaxSessions
设置(如果有)。否则,添加新行。将数字设置为 15 左右。保存新文件。 - 重新启动 sshd 以使其重新读取该文件。
- 建立新的 ssh 连接并查看行为是否发生变化。
答案2
尝试不同的 DNS 服务器(OpenDNS 或 google)。
我遇到了这个问题,并且增加 MaxSessions 没有帮助。
我/var/log/auth.log
发现许多错误如下:
sshd[24976]: error: connect_to p.ebaystatic.com: unknown host (Name or service not known)
即使我可以 ping 所有主机并且发现它们没有问题。对我来说,从 google DNS 切换到 OpenDNS 解决了这个问题(目前)。 (也许最终原因是我的 Internet 连接上的数据包丢失导致 DNS 超时。不确定。)
无论如何,当您尝试通过socks代理连接到DNS无法找到的主机时,我认为这是导致“管理禁止”错误消息的原因之一。
答案3
是的,可能您点击了 MaxSessions + 请务必检查您的 FireFox about:config 设置中的 network.http.pipelined.maxrequests + 记下此值。
默认值通常为 5。
如果您同时访问多个站点,意味着您点击了新页面或新选项卡,则在等待第一页呈现时,请将 MaxSessions 目标设置为 - network.http.pipelined.maxrequests * 您随时可能进行的同时访问次数。
然后将此值加倍或三倍以考虑后台 AJAX 连接,例如如果您登录 WordPress,这会导致您的浏览器不断发送 AJAX ping 请求。
可能您可以在 sshd + ssh 隧道命令中打开一些深度调试,以查看是否超过 MaxSessions + 如果超过,只需增加更多即可。