我正在尝试使用ssh隧道程序,但似乎不再使用的端口仍然无法使用。 隧道结构的一个例子:
第一个隧道:本地端口 - > 22,Local-IP:1.2.3.4,user ...,pw ...,tunnelport - > 5000
下一个隧道:本地端口 - > 5000,Local-IP:localhost,user ...,pw ..,tunnelport - > 5001
下一个隧道:本地端口 - > 5001,Local-IP:localhost,user ...,pw ..,tunnelport - > 5002
到目前为止一切顺利。 现在这里是我尝试关闭所有隧道的代码:
private void sortiiii(Map<Session, Integer> sessions) throws JSchException{
Map<Session, Integer> map = sessions;
ValueComparator bvc = new ValueComparator(map);
TreeMap<Session, Integer> sorted_map = new TreeMap(bvc);
sorted_map.putAll(map);
for (Session key : sorted_map.keySet()) {
System.out.println(sorted_map.get(key));
String [] alle = key.getPortForwardingL();
for (int i=0; i<alle.length; ++i){
System.out.println(alle[i]);
}
key.delPortForwardingL(sorted_map.get(key));
key.disconnect();
}
}
地图是排序的,因为一个隧道需要之前的那个,依此类推......
有人可以想象为什么我清理连接后没有端口5000,5001,5002 ......?