我写了一个small bash script它需要一个 ssh 隧道来从远程服务器提取数据,因此它会提示用户:
echo "Please open an ssh tunnel using 'ssh -L 6000:localhost:5432 example.com'"
我想检查用户是否打开了该隧道,如果不存在隧道,则退出并显示错误消息。有没有办法查询 ssh 隧道,即检查本地端口 6000 是否真的通过隧道连接到该服务器?
最佳答案
Netcat 是你的 friend :
nc -z localhost 6000 || echo "no tunnel open"
关于ssh:检查隧道是否处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998297/