我的情况:我想用 gdbserver 和 eclipse 远程调试我的 C++ 应用程序。Eclipse 在我的本地工作站(在 192.168.0.0 网络中)上运行,而 gdbserver 在 10.0.0.0 网络中的集群机器上运行。我可以通过两个网络中的机器 ssh 访问 clustermachine。
如何设置隧道以便我的 eclipse 可以访问 gdbserver?我没有管理员权限/root/sudo 访问权限。
所有的机器都是带有openssh的linux/Unix。
我正在使用端口转发来利用远程机器上的代理服务器。
远程机器主机名是remotemachine. 代理正在侦听 8118 端口。我正在将此端口转换为本地端口 5223。
ssh -vvv -N remotemachine -L 5223:localhost:8118
Run Code Online (Sandbox Code Playgroud)
如果我不使用超过 10 个同时连接,当 ssh 冻结时,一切都很好。它不再通过端口转发发送数据。
即ab -c 10 -t 5 -X 'localhost:5223' 'http://www.google.ru/'工作,但ab -c 20 -t 5 -X 'localhost:5223' 'http://www.google.ru/'导致 ssh 冻结
MaxSessions 30参数 in/etc/ssh/sshd_config根本没有帮助。
我该怎么做才能消除这 10 个连接限制?
-vvv输出中没有什么有趣的=(
我正在尝试通过 SSH 使用端口转发连接到远程 MySQL 服务器(TCP 访问仅限于特定 IP),但仍然没有弄清楚如何去做。
这是我打算做的:
Local[A] ---> Proxy[B] ---> Remote MySQL[C]
Run Code Online (Sandbox Code Playgroud)
[A] 装有 Windows 的本地机器
[B] IP 为 123.123.123.1 的 CentOS 机器(运行自己的 MySQL,顺便说一句)
[C] 在端口 3306 上授权 IP 123.123.123.1 的远程 MySQL 服务器
如何实现这一目标?
提前致谢。
我正在使用防火墙后面的服务器。我已经建立了一个到互联网中间服务器的 ssh 隧道,如下所示:
remoteuser@behind_fw$ ssh -N -f -R 10002:localhost:22 middleuser@middle
Run Code Online (Sandbox Code Playgroud)
但是我无法直接通过此服务器连接,这不起作用:
user@local$ ssh remoteuser@middle -p 10002
Run Code Online (Sandbox Code Playgroud)
我必须分两步连接:
user@local$ ssh middleuser@middle
middleuser@middle$ ssh remoteuser@localhost -p 10002
Run Code Online (Sandbox Code Playgroud)
netstat -l中间的输出:
tcp 0 0 localhost:10002 *:* LISTEN
Run Code Online (Sandbox Code Playgroud)
但它应该是这样的:
tcp 0 0 *:10002 *:* LISTEN
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我想建立从家里到工作中的 Windows 机器的 VNC 连接。无法从外部访问 Windows 机器,但是有一个 Linux 机器确实打开了端口 22,因此似乎可以做到这一点。
我怀疑这只是一个将 Linux 机器上端口 22 的连接“转发”到 Windows 机器的命令?只是找不到一个可以做到这一点的例子
提前致谢!
我正在使用autossh私钥打开反向 SSH 隧道。隧道用户的 shell 已经rssh并被验证为工作正常。
我遇到的问题是这样的,无论 ClientAliveInterval ( 15) 和 ClientAliveCountMax ( 3) (sshd默认值)如何,在客户端,隧道是通过以下方式打开的:
exec autossh -N \
-o "ServerAliveInterval 60" \
-o "ServerAliveCountMax 3" \
-o "StrictHostKeyChecking no" \
-R ${tunnel_port}:localhost:22 \
-i ./tunnel \
-v \
tunnel@directory.mytunnelhost.com
Run Code Online (Sandbox Code Playgroud)
在${tunnel_port}来自一个小curl的呼叫看起来隧道主机上的空闲端口,该端口不会改变(它是基于请求对话框的MAC地址分配)
问题是在TERM启动隧道客户端时,端口在主机上一直被占用,而 sshd 进程继续运行:

我也无法通过隧道登录机器:
ubuntu@ip-10-252-138-233:~$ ssh -p 39777 pi@localhost
ssh: connect to host localhost port 39777: Connection refused
Run Code Online (Sandbox Code Playgroud)
我想知道我能做些什么来使隧道更可靠,以确保当任一端发生故障时,它已经完全死机,被拆除并且不能进入“损坏”状态。
如果我通过端口 80 或类似端口建立隧道,我可以编写一个check脚本(这个守护进程runit以,我不知道客户如何知道隧道是否真的 …
我正在使用 RDP 从一台 Windows 机器连接到另一台机器。我想localhost:81通过本地 IP 地址上的内部网络将流向远程机器的流量转发到远程机器可访问的机器,比方说10.90.228.163。所以我想要 TCP 流量:
client --> localhost:81 --> [rdphost] --> 10.90.228.163:81 --> server
Run Code Online (Sandbox Code Playgroud)
使用 OpenSSH 和 PuTTY,我可以使用本地端口转发来做到这一点;将本地端口转发81到10.90.228.163:123. 有没有办法用 RDP 来做到这一点?
我正在使用这个 ssh 命令:
ssh -fnN -L $LOCALPORT:$REMOTEHOST:$REMOTEPORT $HOST
这会在后台创建我的 ssh 连接,并通过另一台主机将该端口转发到远程主机。这很棒,并且允许我通过连接到可以访问两个网络的服务器来在防火墙后面使用我的服务。
完成后我需要停止此 ssh 连接,但我不确定如何。
我正在运行ssh -N -f -R127.0.2.3:23000:127.1.2.3:23000 user@remote,我希望远程上的隧道已在 上打开127.0.2.3:23000,但它只在 上打开127.0.0.1:23000,这很不方便,因为我需要在远程上打开多个隧道,但监听相同的 tcp 端口。
在本地机器中,隧道指向正确的 IP 地址 (127.1.2.3:23000)。
我尝试在远程创建几个环回设备,但无济于事。
Linux 和 Freebsd 服务器(openbsd-ssh)也是如此
那么,为什么 ssh -R 没有绑定到远程 127.0.0.1 以外的环回 IP?
谢谢你。
(抱歉编辑不好:)
我使用跳转主机通过 SSH 连接到远程服务器。
我使用以下线性命令进行连接。
ssh -J jumpuser@jumphost:2455 remoteuser@remotehost
效果很好。
但对于新服务器我需要设置无密码 SSH,所以我尝试使用以下命令:
ssh-copy-id -J jumpuser@jumphost:2455 remoteuser@new-remotehost
但它会抛出错误:
/usr/bin/ssh-copy-id: ERROR: invalid option (-J)
很明显,我不能将 -J 与ssh-copy-id命令一起使用,但我想知道是否有其他方法。
我知道如何手动将密钥添加到远程服务器,但我想节省时间和精力(懒惰)。