my-pc ssh-server another-app-server
-----------------------------------------------------------------------
127.0.0.1:12345 ----> x.x.x.x:22 ----> y.y.y.y:8080 [only accessed by ssh-server]
实际上,我想这样做,并且我的-pc运行windows10。
from sshtunnel import SSHTunnelForwarder
from time import sleep
with SSHTunnelForwarder(
(x.x.x.x),
ssh_username=MY_SSH_SERVER_USER,
ssh_private_key=MY_KEY_PATH,
remote_bind_address=(y.y.y.y, 8080),
local_bind_address=('127.0.0.1', 12345)
) as server :
server.start()
sleep(60)
当我运行时,它总是告诉我ERROR | Problem setting SSH Forwarder up: Couldn't open tunnel 127.0.0.1:12345 <> y.y.y.y:8080 might be in use or destination not reachable ....
,并且我使用下面的代码,它是工作的。
from sshtunnel import SSHTunnelForwarder
from time import sleep
with SSHTunnelForwarder(
(x.x.x.x),
ssh_username=MY_SSH_SERVER_USER,
ssh_private_key=MY_KEY_PATH,
remote_bind_address=(y.y.y.y, 8080),
) as server :
server.start()
print(server.local_bind_port) # RANDOM PORT !! I HATE RANDOM!!
sleep(60)
但是我只想要绑定12345作为端口(我确信它现在已经被使用了),我能做什么呢?
发布于 2022-06-08 04:13:57
要检查端口12345是否已经使用,请执行以下操作:
netstat -aof | findstr :12345
如果该命令返回任何进程,这意味着它正在使用中。您可以换到其他端口,如5000
、1080
、3000
等。
https://stackoverflow.com/questions/72539580
复制相似问题