<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dan Nanni &#8211; bhzhuOS爱好者(原StartOS爱好者)</title>
	<atom:link href="https://www.bhzhu203.com/tag/dan-nanni/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bhzhu203.com</link>
	<description>QQ群号125732839</description>
	<lastBuildDate>Thu, 28 Apr 2016 08:12:33 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>
	<item>
		<title>一个可以显示Linux命令运行进度的伟大工具</title>
		<link>https://www.bhzhu203.com/2016/04/28/%e4%b8%80%e4%b8%aa%e5%8f%af%e4%bb%a5%e6%98%be%e7%a4%balinux%e5%91%bd%e4%bb%a4%e8%bf%90%e8%a1%8c%e8%bf%9b%e5%ba%a6%e7%9a%84%e4%bc%9f%e5%a4%a7%e5%b7%a5%e5%85%b7/</link>
		
		<dc:creator><![CDATA[bhzhu203]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 08:04:54 +0000</pubDate>
				<category><![CDATA[linux知识]]></category>
		<category><![CDATA[Dan Nanni]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">http://www.bhzhu203.com/?p=224</guid>

					<description><![CDATA[Coreutils Viewer（cv）是一个简单的程序，它可以用于显示任何核心 [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="d">
<div id="article_content">
<p>Coreutils Viewer（<strong>cv</strong>）是一个简单的程序，它可以用于显示任何核心组件命令（如：cp、mv、dd、tar、gzip、gunzip、cat、grep、fgrep、egrep、cut、sort、xz、exiting）的进度。它使用文件描述信息来确定一个命令的进度，比如cp命令。<strong>cv</strong>之美在于，它能够和其它Linux命令一起使用，比如你所知道的watch以及I/O重定向命令。这样，你就可以在脚本中使用，或者你能想到的所有方式，别让你的想象力束缚住你。</p>
<p class="article_img"><img fetchpriority="high" decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201501/24/221941p7k1tt1au71pp3fo.jpg" alt="" width="500" height="300" /></p>
<p><a id="3_696" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_1">安装</h3>
<p>你可以从cv的<a class="ext" href="http://github.com/Xfennec/cv" target="_blank" rel="external nofollow">github仓库那儿</a>下载所需的源文件。把zip文件下载下来后，将它解压缩，然后进入到解压后的文件夹。</p>
<p>该程序需要<strong>ncurses library</strong>。如果你已经在你的Linux系统中安装了ncurses，那么cv的安装过程对你而言就是那么的轻松写意。</p>
<p>通过以下两个简单步骤来进行编译和安装吧。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ </span><span class="kwd">make</span></li>
<li class="L1"><span class="pln">$ </span><span class="kwd">sudo</span> <span class="kwd">make</span><span class="pln"> install</span></li>
</ol>
<p><a id="3_1246" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_2">运行cv</h3>
<p>要运行cv，只需要想其它程序一样，在命令行输入此命令即可。如果你没有执行make install，而选择从当前目录中去运行，那么你可以运行以下命令：</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ </span><span class="pun">./</span><span class="pln">cv</span></li>
</ol>
<p>否则，就运行以下命令吧。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ cv</span></li>
</ol>
<p>如果没有核心组件命令在运行，那么cv程序会退出，并告诉你：没有核心组件命令在运行。</p>
<p class="article_img"><img decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201501/24/221944m5wapc52wpbr35zi.png" alt="cv no command" /></p>
<p class="article_img_desc"><em>cv no command</em></p>
<p>要有效使用该程序，请在你系统上运行某个核心组件程序。在本例中，我们将使用<strong>cp</strong>命令。</p>
<p>当拷贝一个打文件时，你就可以看到当前进度了，以百分比显示。</p>
<p class="article_img"><img decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201501/24/221945fy3dyzessyd4deoy.png" alt="cv default" /></p>
<p class="article_img_desc"><em>cv default</em></p>
<p><a id="3_2238" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_3">添加选项到 cv</h3>
<p>你也可以添加几个选项到cv命令，就像其它命令一样。一个有用的选项是让你了解到拷贝或移动大文件时的预计剩余时间。</p>
<p>添加<strong>-w</strong>选项，它就会帮你显示预计的剩余时间。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ cv </span><span class="pun">&#8211;</span><span class="kwd">w</span></li>
</ol>
<p class="article_img"><img decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201501/24/221946xja22atafaabajbf.png" alt="cv estimated throughput" /></p>
<p class="article_img_desc"><em>cv estimated throughput</em></p>
<p>试着添加更多的命令选项吧。像下面这样添加其它选项：</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ cv </span><span class="pun">&#8211;</span><span class="pln">wq</span></li>
</ol>
<p><a id="3_2858" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_4">cv 和 watch 命令</h3>
<p>watch是一个用于周期性运行程序并显示输出结果的程序。有时候，你可能想要持续看看命令运行状况而不想将 cv 的结果存储到日志文件中。在这种情况下，watch就会派上用场了，它可以和cv一起使用。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ </span><span class="kwd">watch</span><span class="pln"> cv </span><span class="pun">&#8211;</span><span class="pln">qw</span></li>
</ol>
<p>该命令将会显示所有运行着的核心组件命令的实例。它也会显示进度和预计完成时间。</p>
<p class="article_img"><img decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201501/24/221948qmxvt2ptpqztttz2.png" alt="cv and watch" /></p>
<p class="article_img_desc"><em>cv and watch</em></p>
<p><a id="3_3475" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_5">在日志文件中查看输出结果</h3>
<p>正如其所承诺的那样，你可以使用cv来重定向它的输出结果到一个日志文件。这功能在命令运行太快而看不到任何有意义的内容时特别有用。</p>
<p>要在日志文件中查看进度，你仅仅需要重定向输出结果，就像下面这样。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ cv </span><span class="pun">&#8211;</span><span class="kwd">w</span> <span class="pun">&gt;&gt;</span><span class="pln"> log</span><span class="pun">.</span><span class="pln">txt</span></li>
</ol>
<p>要查看该命令的输出结果，请用你喜爱的文本编辑器打开日志文件，也可以用cat命令，就像下面这样：</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ </span><span class="kwd">cat</span><span class="pln"> log</span><span class="pun">.</span><span class="pln">txt</span></li>
</ol>
<p><a id="3_4101" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_6">获得帮助</h3>
<p>如果你在任何地方受到阻碍，你总是可以通过查阅手册页或使用help选项来获取帮助信息。 要获取帮助信息，可以使用带<strong>-h</strong>选项的cv命令。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ cv </span><span class="pun">&#8211;</span><span class="pln">h</span></li>
</ol>
<p>如果需要更多详细信息，那么手册页是个很不错的地方。</p>
<ol class="linenums">
<li class="L0"><span class="pln">$ </span><span class="kwd">man</span><span class="pln"> cv</span></li>
</ol>
<p>但是，要获取上述手册页，你必须执行make install来安装cv。</p>
<p>耶！现在，你的Linux工具箱中又多了个伟大的工具。 你学会么？亲自去试试吧~</p>
<hr />
<p>via: <a class="ext" href="http://linoxide.com/linux-command/tool-show-command-progress/" target="_blank" rel="external nofollow">http://linoxide.com/linux-command/tool-show-command-progress/</a></p>
<p>作者：<a class="ext" href="http://linoxide.com/author/allan/" target="_blank" rel="external nofollow">Allan Mbugua</a> 译者：<a class="ext" href="https://github.com/GOLinux" target="_blank" rel="external nofollow">GOLinux</a> 校对：<a class="ext" href="https://github.com/wxy" target="_blank" rel="external nofollow">wxy</a></p>
<p>本文由 <a class="ext" href="https://github.com/LCTT/TranslateProject" target="_blank" rel="external nofollow">LCTT</a> 原创翻译，<a href="https://linux.cn/article-4741-1.html">Linux中国</a> 荣誉推出</p>
</div>
</div>
<div class="b"></div>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>如何通过反向 SSH 隧道访问 NAT 后面的 Linux 服务器</title>
		<link>https://www.bhzhu203.com/2016/04/28/%e5%a6%82%e4%bd%95%e9%80%9a%e8%bf%87%e5%8f%8d%e5%90%91-ssh-%e9%9a%a7%e9%81%93%e8%ae%bf%e9%97%ae-nat-%e5%90%8e%e9%9d%a2%e7%9a%84-linux-%e6%9c%8d%e5%8a%a1%e5%99%a8/</link>
		
		<dc:creator><![CDATA[bhzhu203]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 08:03:03 +0000</pubDate>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Dan Nanni]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[NAT]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">http://www.bhzhu203.com/?p=222</guid>

					<description><![CDATA[转自：https://linux.cn/article-5975-1.html  [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>转自：https://linux.cn/article-5975-1.html</p>
<div id="article_content">
<p>你在家里运行着一台 Linux 服务器，它放在一个 NAT 路由器或者限制性防火墙后面。现在你想在外出时用 SSH 登录到这台服务器。你如何才能做到呢？SSH 端口转发当然是一种选择。但是，如果你需要处理多级嵌套的 NAT 环境，端口转发可能会变得非常棘手。另外，在多种 ISP 特定条件下可能会受到干扰，例如阻塞转发端口的限制性 ISP 防火墙、或者在用户间共享 IPv4 地址的运营商级 NAT。</p>
<p><a id="3_517" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_1">什么是反向 SSH 隧道？</h3>
<p>SSH 端口转发的一种替代方案是 <strong>反向 SSH 隧道</strong>。反向 SSH 隧道的概念非常简单。使用这种方案，在你的受限的家庭网络之外你需要另一台主机（所谓的“中继主机”），你能从当前所在地通过 SSH 登录到它。你可以用有公网 IP 地址的 <a class="ext" href="http://xmodulo.com/go/digitalocean" target="_blank" rel="external nofollow">VPS 实例</a> 配置一个中继主机。然后要做的就是从你的家庭网络服务器中建立一个到公网中继主机的永久 SSH 隧道。有了这个隧道，你就可以从中继主机中连接“回”家庭服务器（这就是为什么称之为 “反向” 隧道）。不管你在哪里、你的家庭网络中的 NAT 或 防火墙限制多么严格，只要你可以访问中继主机，你就可以连接到家庭服务器。</p>
<p class="article_img"><img decoding="async" src="https://dn-linuxcn.qbox.me/data/attachment/album/201508/07/235248bx5kxx52gg8yyty4.jpg" alt="" /></p>
<p><a id="3_1518" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_2">在 Linux 上设置反向 SSH 隧道</h3>
<p>让我们来看看怎样创建和使用反向 SSH 隧道。我们做如下假设：我们会设置一个从家庭服务器（homeserver）到中继服务器（relayserver）的反向 SSH 隧道，然后我们可以通过中继服务器从客户端计算机（clientcomputer） SSH 登录到家庭服务器。本例中的<strong>中继服务器</strong> 的公网 IP 地址是 1.1.1.1。</p>
<p>在家庭服务器上，按照以下方式打开一个到中继服务器的 SSH 连接。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">homeserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">ssh</span> <span class="pun">-</span><span class="pln">fN </span><span class="pun">-</span><span class="pln">R </span><span class="lit">10022</span><span class="pun">:</span><span class="pln">localhost</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> relayserver_user@1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1</span></code></li>
</ol>
<p>这里端口 10022 是任何你可以使用的端口数字。只需要确保中继服务器上不会有其它程序使用这个端口。</p>
<p>“-R 10022:localhost:22” 选项定义了一个反向隧道。它转发中继服务器 10022 端口的流量到家庭服务器的 22 号端口。</p>
<p>用 “-fN” 选项，当你成功通过 SSH 服务器验证时 SSH 会进入后台运行。当你不想在远程 SSH 服务器执行任何命令，就像我们的例子中只想转发端口的时候非常有用。</p>
<p>运行上面的命令之后，你就会回到家庭主机的命令行提示框中。</p>
<p>登录到中继服务器，确认其 127.0.0.1:10022 绑定到了 sshd。如果是的话就表示已经正确设置了反向隧道。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">sudo</span> <span class="kwd">netstat</span> <span class="pun">-</span><span class="pln">nap </span><span class="pun">|</span> <span class="kwd">grep</span> <span class="lit">10022</span></code></li>
</ol>
<hr />
<ol class="linenums">
<li class="L0"><code><span class="pln">tcp </span><span class="lit">0</span> <span class="lit">0</span> <span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">10022</span> <span class="lit">0.0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pun">:*</span><span class="pln"> LISTEN </span><span class="lit">8493</span><span class="pun">/</span><span class="kwd">sshd</span> </code></li>
</ol>
<p>现在就可以从任何其它计算机（客户端计算机）登录到中继服务器，然后按照下面的方法访问家庭服务器。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">ssh</span> <span class="pun">-</span><span class="pln">p </span><span class="lit">10022</span><span class="pln"> homeserver_user@localhost</span></code></li>
</ol>
<p>需要注意的一点是你在上面为localhost输入的 SSH 登录/密码应该是家庭服务器的，而不是中继服务器的，因为你是通过隧道的本地端点登录到家庭服务器，因此不要错误输入中继服务器的登录/密码。成功登录后，你就在家庭服务器上了。</p>
<p><a id="3_3810" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_3">通过反向 SSH 隧道直接连接到网络地址变换后的服务器</h3>
<p>上面的方法允许你访问 NAT 后面的 <strong>家庭服务器</strong>，但你需要登录两次：首先登录到 <strong>中继服务器</strong>，然后再登录到<strong>家庭服务器</strong>。这是因为中继服务器上 SSH 隧道的端点绑定到了回环地址（127.0.0.1）。</p>
<p>事实上，有一种方法可以只需要登录到中继服务器就能直接访问NAT之后的家庭服务器。要做到这点，你需要让中继服务器上的 sshd 不仅转发回环地址上的端口，还要转发外部主机的端口。这通过指定中继服务器上运行的 sshd 的 <strong>GatewayPorts</strong> 实现。</p>
<p>打开<strong>中继服务器</strong>的 /etc/ssh/sshd_conf 并添加下面的行。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">vi</span> <span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="kwd">ssh</span><span class="pun">/</span><span class="pln">sshd_conf</span></code></li>
</ol>
<hr />
<ol class="linenums">
<li class="L0"><code><span class="typ">GatewayPorts</span><span class="pln"> clientspecified</span></code></li>
</ol>
<p>重启 sshd。</p>
<p>基于 Debian 的系统：</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">sudo</span> <span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="kwd">init</span><span class="pun">.</span><span class="pln">d</span><span class="pun">/</span><span class="kwd">ssh</span><span class="pln"> restart</span></code></li>
</ol>
<p>基于红帽的系统：</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">sudo</span> <span class="kwd">systemctl</span><span class="pln"> restart </span><span class="kwd">sshd</span></code></li>
</ol>
<p>现在在家庭服务器中按照下面方式初始化一个反向 SSH 隧道。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">homeserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">ssh</span> <span class="pun">-</span><span class="pln">fN </span><span class="pun">-</span><span class="pln">R </span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">:</span><span class="lit">10022</span><span class="pun">:</span><span class="pln">localhost</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> relayserver_user@1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1</span></code></li>
</ol>
<p>登录到中继服务器然后用 netstat 命令确认成功建立的一个反向 SSH 隧道。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">relayserver</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">sudo</span> <span class="kwd">netstat</span> <span class="pun">-</span><span class="pln">nap </span><span class="pun">|</span> <span class="kwd">grep</span> <span class="lit">10022</span></code></li>
</ol>
<hr />
<ol class="linenums">
<li class="L0"><code><span class="pln">tcp </span><span class="lit">0</span> <span class="lit">0</span> <span class="lit">1.1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">:</span><span class="lit">10022</span> <span class="lit">0.0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pun">:*</span><span class="pln"> LISTEN </span><span class="lit">1538</span><span class="pun">/</span><span class="kwd">sshd</span><span class="pun">:</span><span class="pln"> dev </span></code></li>
</ol>
<p>不像之前的情况，现在隧道的端点是 1.1.1.1:10022（中继服务器的公网 IP 地址），而不是 127.0.0.1:10022。这就意味着从外部主机可以访问隧道的另一端。</p>
<p>现在在任何其它计算机（客户端计算机），输入以下命令访问网络地址变换之后的家庭服务器。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">clientcomputer</span><span class="pun">~</span><span class="pln">$ </span><span class="kwd">ssh</span> <span class="pun">-</span><span class="pln">p </span><span class="lit">10022</span><span class="pln"> homeserver_user@1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1</span></code></li>
</ol>
<p>在上面的命令中，1.1.1.1 是中继服务器的公共 IP 地址，homeserver_user必须是家庭服务器上的用户账户。这是因为你真正登录到的主机是家庭服务器，而不是中继服务器。后者只是中继你的 SSH 流量到家庭服务器。</p>
<p><a id="3_6437" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_4">在 Linux 上设置一个永久反向 SSH 隧道</h3>
<p>现在你已经明白了怎样创建一个反向 SSH 隧道，然后把隧道设置为 “永久”，这样隧道启动后就会一直运行（不管临时的网络拥塞、SSH 超时、中继主机重启，等等）。毕竟，如果隧道不是一直有效，你就不能可靠的登录到你的家庭服务器。</p>
<p>对于永久隧道，我打算使用一个叫 autossh 的工具。正如名字暗示的，这个程序可以让你的 SSH 会话无论因为什么原因中断都会自动重连。因此对于保持一个反向 SSH 隧道非常有用。</p>
<p>第一步，我们要设置从家庭服务器到中继服务器的<a href="https://linux.cn/article-5444-1.html">无密码 SSH 登录</a>。这样的话，autossh 可以不需要用户干预就能重启一个损坏的反向 SSH 隧道。</p>
<p>下一步，在建立隧道的家庭服务器上<a href="https://linux.cn/article-5459-1.html">安装 autossh</a>。</p>
<p>在家庭服务器上，用下面的参数运行 autossh 来创建一个连接到中继服务器的永久 SSH 隧道。</p>
<ol class="linenums">
<li class="L0"><code><span class="pln">homeserver</span><span class="pun">~</span><span class="pln">$ autossh </span><span class="pun">-</span><span class="pln">M </span><span class="lit">10900</span> <span class="pun">-</span><span class="pln">fN </span><span class="pun">-</span><span class="pln">o </span><span class="str">"PubkeyAuthentication=yes"</span> <span class="pun">-</span><span class="pln">o </span><span class="str">"StrictHostKeyChecking=false"</span> <span class="pun">-</span><span class="pln">o </span><span class="str">"PasswordAuthentication=no"</span> <span class="pun">-</span><span class="pln">o </span><span class="str">"ServerAliveInterval 60"</span> <span class="pun">-</span><span class="pln">o </span><span class="str">"ServerAliveCountMax 3"</span> <span class="pun">-</span><span class="pln">R </span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">:</span><span class="lit">10022</span><span class="pun">:</span><span class="pln">localhost</span><span class="pun">:</span><span class="lit">22</span><span class="pln"> relayserver_user@1</span><span class="pun">.</span><span class="lit">1.1</span><span class="pun">.</span><span class="lit">1</span></code></li>
</ol>
<p>“-M 10900” 选项指定中继服务器上的监视端口，用于交换监视 SSH 会话的测试数据。中继服务器上的其它程序不能使用这个端口。</p>
<p>“-fN” 选项传递给 ssh 命令，让 SSH 隧道在后台运行。</p>
<p>“-o XXXX” 选项让 ssh：</p>
<ul>
<li>使用密钥验证，而不是密码验证。</li>
<li>自动接受（未知）SSH 主机密钥。</li>
<li>每 60 秒交换 keep-alive 消息。</li>
<li>没有收到任何响应时最多发送 3 条 keep-alive 消息。</li>
</ul>
<p>其余 SSH 隧道相关的选项和之前介绍的一样。</p>
<p>如果你想系统启动时自动运行 SSH 隧道，你可以将上面的 autossh 命令添加到 /etc/rc.local。</p>
<p><a id="3_8639" class="target-fix ext" target="_blank" rel="external nofollow"></a></p>
<h3 id="toc_5">总结</h3>
<p>在这篇博文中，我介绍了你如何能从外部通过反向 SSH 隧道访问限制性防火墙或 NAT 网关之后的 Linux 服务器。这里我介绍了家庭网络中的一个使用事例，但在企业网络中使用时你尤其要小心。这样的一个隧道可能被视为违反公司政策，因为它绕过了企业的防火墙并 把企业网络暴露给外部攻击。这很可能被误用或者滥用。因此在使用之前一定要记住它的作用。</p>
<hr />
<p>via: <a class="ext" href="http://xmodulo.com/access-linux-server-behind-nat-reverse-ssh-tunnel.html" target="_blank" rel="external nofollow">http://xmodulo.com/access-linux-server-behind-nat-reverse-ssh-tunnel.html</a></p>
<p>作者：<a class="ext" href="http://xmodulo.com/author/nanni" target="_blank" rel="external nofollow">Dan Nanni</a> 译者：<a class="ext" href="https://github.com/ictlyh" target="_blank" rel="external nofollow">ictlyh</a> 校对：<a class="ext" href="https://github.com/wxy" target="_blank" rel="external nofollow">wxy</a></p>
<p>本文由 <a class="ext" href="https://github.com/LCTT/TranslateProject" target="_blank" rel="external nofollow">LCTT</a> 原创翻译，<a href="https://linux.cn/article-5975-1.html">Linux中国</a> 荣誉推出</p>
</div>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
