该设备不断尝试连接到特定已知端口上的远程服务器。
在远程服务器上,除了打开的 TCP 端口之外什么都没有。
我想将远程服务器的端口转发到我的电脑并打开一个 TCP 服务器来读取数据。
最终,我想使用 Python 来实现这一点,
但与此同时,我正在尝试使用 ssh 来执行此操作:ssh -N -R 10000:localhost:10000 username@hostname
,
并且在我这边(我的电脑),我试图打开一个套接字(使用 python)来收听10000端口,尝试打开Hercules模拟TCP服务器,但没有收到任何数据。
显然,缺少了什么,它是什么?
ps 在远程服务器上打开 TCP 服务器将获取数据,
但我需要控制来自 My Pc 的连接。
以下是关于
-R
inssh
手册页的相关部分:远程服务器上的侦听套接字仅在本地主机上侦听,因此来自 UNIT 的连接被拒绝(即:它是“关闭的”)。
因此,如果服务器已经允许它,只需使用它就可以了:
请注意
:
前面有“一个空的 bind_address”(也可以使用实际的远程服务器面向 UNIT 的 IP 地址)。这应该改进为:以防止错误地运行它两次。
但是默认情况下通常不允许使用这种类型的绑定地址,需要更改远程服务器的sshd配置。
GatewayPorts
在远程服务器上,配置文件通常/etc/ssh/sshd_config
应该被修改为有一个(未注释的)条目,如下所示:并且应该重新加载 ssh 守护程序以使用其新配置。