ssh隧道应用实例

by pxz


发布于: 2015-03-17 所属分类: 工具 linux 标签: ssh隧道  586


<p>ssh 隧道分为三种, 分别为</p> <h3 id="h3--ssh-d-socks-"><a name="一 . ssh -D 动态端口转发(Socks 代理)" class="reference-link"></a><span class="header-link octicon octicon-link"></span>一 . ssh -D 动态端口转发(Socks 代理)</h3><p>应用1: 用于翻墙使用谷歌, facebook, youtube等服务, 以下是用法:</p> <p>1) 建立动态端口转发: <code>ssh -p1335 -N -D *:7070 <a href="mailto:boa@63.141.248">boa@63.141.248</a>.218</code><br>2) 使用代理软件设置代理指向127.0.0.1的7070端口, 更加具体的操作详见 <a href="http://www.sgzhang.com/article/58.html">[详细]</a></p> <h3 id="h3--ssh-l-"><a name="二. ssh -L 本地端口转发" class="reference-link"></a><span class="header-link octicon octicon-link"></span>二. ssh -L 本地端口转发</h3><p>应用1: 本地机器访问外网数据库</p> <p>通常为了数据库的安全,服务器的mysql不会暴露给外网通过ip访问的, 但是有时候, 我们需要在内网的机器访问外网服务器的数据库,这个时候,可以通过ssh隧道进行访问, 一切在隧道中传输的数据都是被加密的, 这样既方便了内网机器对外网的数据访问, 又保证了数据的安全. </p> <p>以下是用法:</p> <p>1) 执行<code>ssh -Nf -L 23306:127.0.0.1:3306 <a href="mailto:root@122.122.122">root@122.122.122</a>.122</code>建立本地端口转发<br>2) 使用mysql连接 <code>mysql -h127.0.0.1 -P23306 -uroot -p123456</code>, 该命令连接后实际上使用的是服务器122.122.122.122的外网数据库</p> <h3 id="h3--ssh-r-"><a name="三. ssh -R 远端端口转发" class="reference-link"></a><span class="header-link octicon octicon-link"></span>三. ssh -R 远端端口转发</h3><p><strong>应用1. 结合svn进行代码发布,版本发布, 具体做法如下:</strong></p> <p>1) 在内网服务器执行 <code>ssh -N -R 23690<img src="http://www.emoji-cheat-sheet.com/graphics/emojis/localhost.png" class="emoji" title=":localhost:" alt=":localhost:" />3690 <a href="mailto:root@122.122.122">root@122.122.122</a>.122</code> 建立远程端口转发命令<br>2) 在外网服务器检出svn目录: <code>svn co svn://localhost:23690/www.tt.com</code></p> <p><strong>应用2. 在家里访问公司内网电脑, 具体做法如下:</strong></p> <p>1) 在公司电脑执行 <code>ssh -o TCPKeepAlive=yes -o ServerAliveInterval=5 -o ServerAliveCountMax=5 -N -R 2022<img src="http://www.emoji-cheat-sheet.com/graphics/emojis/localhost.png" class="emoji" title=":localhost:" alt=":localhost:" />22 <a href="mailto:root@122.122.122">root@122.122.122</a>.122</code> 建立远程端口转发, 其中122.122.122.122为外网的一台中转服务器, 这里是把外网122.122.122.122服务器的2202端口转发到公司电脑的22端口<br>2)在家里连接公司电脑方法: <code>ssh -p2022 <a href="mailto:root@122.122.122">root@122.122.122</a>.122</code><br>通过 -p指定2202端口, 连接的实际上是公司电脑, 而不是外网服务器</p> <h3 id="h3--"><a name="四. 一些小技巧" class="reference-link"></a><span class="header-link octicon octicon-link"></span>四. 一些小技巧</h3><p>1 . 检查端口监听情况: netstat -an | grep 23306<br>2 . 为了在网络环境不好的情况下保持隧道通畅, 可在ssh 后面加参数 ServerAliveInterval=5 -o ServerAliveCountMax=5, 并结合daemontools进程监控工具实现断开重连<br>ServerAliveInterval=5 -o ServerAliveCountMax=5 设置后客户端每5秒会与服务器进行一次通信, 如果通信失败超过5次, 客户端程序退出, 这时可被进程监控程序daemontools监控到并重新启动ssh连接<br>3 . daemontools 安装使用方法见 <a href="http://www.sgzhang.com/article/63.html">[详细]</a></p>

发表评论

暂无评论

搜索
用户登陆