我依靠tunnel.sh
其他人编写的以下脚本来保持ssh隧道的生命:
#!/bin/bash
export SSH_HOST=tim@server
if [ ! -f /tmp/.tunnel ]
then
echo "Creat SSH tunnel"
ssh -f -D 9999 $SSH_HOST "if [ -f ~/.tunnel ]; then rm ~/.tunnel; fi; while [ ! -f ~/.tunnel ]; do echo > /dev/null; done" &
touch /tmp/.tunnel
else
echo "Close SSH tunnel"
ssh $SSH_HOST "touch ~/.tunnel"
rm /tmp/.tunnel
fi
exit
要创建持久的ssh隧道,我只需发出tunnel.sh
。直到tunnel.sh
再次发出通知,隧道才会关闭。
我想知道如何验证ssh隧道是否确实创建成功?
隧道的主要用途是将文档打印到与服务器位于同一LAN中的某些打印机,并且只能从LAN内访问打印机。创建隧道后,现在打印不会报告任何问题,但是由于我不在那儿,所以我无法检查文档是否确实已打印。
我以为由于隧道的缘故,由于我现在在局域网中,所以我的外部IP应该与服务器的IP相同。但实际上它们并不相同(我通过找到了它们wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
)。我想知道为什么?当我通过隧道连接到Internet上的某个网站时,由于我和服务器之间的隧道,服务器不是我和互联网网站之间的中间点吗?