<div class="row">
    <div class="col-md-12">
        <div class="tile">
            <iframe src="https://ghbtns.com/github-btn.html?user=cnlh&repo=nps&type=star&count=true&size=large"
                    frameborder="0" scrolling="0" width="160px" height="30px"></iframe>
            <iframe src="https://ghbtns.com/github-btn.html?user=cnlh&repo=nps&type=watch&count=true&size=large&v=2"
                    frameborder="0" scrolling="0" width="160px" height="30px"></iframe>
            <iframe src="https://ghbtns.com/github-btn.html?user=cnlh&repo=nps&type=fork&count=true&size=large"
                    frameborder="0" scrolling="0" width="158px" height="30px"></iframe>
        </div>
    </div>
</div>
<div class="row">

    <div class="col-md-12">
        <div class="tile">
            <h3 class="tile-title">域名代理模式</h3>
            <p>
                <b>适用范围：</b> 小程序开发、微信公众号开发、产品演示
            </p>
            <p>
                <b>假设场景：</b>
            <li>有一个域名proxy.com，有一台公网机器ip为{{.ip}}</li>
            <li>两个内网开发站点127.0.0.1:81，127.0.0.1:82</li>
            <li>想通过a.proxy.com访问127.0.0.1:81，通过b.proxy.com访问127.0.0.1:82</li>
            </p>
            <p><b>使用步骤：</b></p>
            <ul>
                <li>将*.proxy.com解析到公网服务器{{.ip}}</li>
                <li>在客户端管理中创建一个客户端，记录下验证密钥</li>
                <li>点击该客户端的域名管理，添加两条规则规则：1、域名：a.proxy.com，内网目标：127.0.0.1:81，2、域名：b.proxy.com，内网目标：127.0.0.1:82</li>
                <li>内网客户端运行<code>
                    <pre>./npc -server={{.ip}}:{{.p}} -vkey=客户端的密钥</pre>
                </code></pre></li>
                <li>现在访问a.proxy.com，b.proxy.com即可成功</li>
            </ul>
            <p>注：上文中提到公网ip（{{.ip}}）为系统自动识别，如果是在测试环境中请自行对应，<b>如需使用https请在配置文件中将https端口设置为443，和将对应的证书文件路径添加到配置文件中
            </b></p>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <div class="tile">
            <h3 class="tile-title">tcp隧道模式</h3>
            <p>
                <b>适用范围：</b> ssh、远程桌面等tcp连接场景
            </p>
            <p>
                <b>假设场景：</b> 想通过访问公网服务器{{.ip}}的8001端口，连接内网机器10.1.50.101的22端口，实现ssh连接
            </p>
            <p><b>使用步骤：</b></p>
            <ul>
                <li>在客户端管理中创建一个客户端，记录下验证密钥</li>
                <li>内网客户端运行<code>
                    <pre>./npc -server={{.ip}}:{{.p}} -vkey=客户端的密钥</pre>
                </code></pre>
                </li>
                <li>在该客户端隧道管理中添加一条tcp隧道，填写监听的端口（8001）、内网目标ip和目标端口（10.1.50.101:22），选择压缩方式，保存。</li>
                <li>访问公网服务器ip（{{.ip}}）,填写的监听端口(8001)，相当于访问内网ip(10.1.50.101):目标端口(22)，例如：ssh -p 8001 root@{{.ip}}</li>
            </ul>
            <p>注：上文中提到公网ip（{{.ip}}）为系统自动识别，如果是在测试环境中请自行对应，默认内网客户端已经启动</p>
        </div>
    </div>
    <div class="col-md-6">
        <div class="tile">
            <h3 class="tile-title">udp隧道模式</h3>
            <p>
                <b>适用范围：</b> 内网dns解析等udp连接场景
            </p>
            <p>
                <b>假设场景：</b> 内网有一台dns（10.1.50.102:53），在非内网环境下想使用该dns，公网服务器为{{.ip}}
            </p>
            <p><b>使用步骤：</b></p>
            <ul>
                <li>在客户端管理中创建一个客户端，记录下验证密钥</li>
                <li>内网客户端运行<code>
                    <pre>./npc -server={{.ip}}:{{.p}} -vkey=客户端的密钥</pre>
                </code></pre>
                </li>
                <li>在该客户端的隧道管理中添加一条udp隧道，填写监听的端口（53）、内网目标ip和目标端口（10.1.50.102:53），选择压缩方式，保存。</li>
                <li>修改本机dns为{{.ip}}，则相当于使用10.1.50.202作为dns服务器</li>
            </ul>
            <p>注：上文中提到公网ip（{{.ip}}）为系统自动识别，如果是在测试环境中请自行对应，默认内网客户端已经启动</p>
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-6">
        <div class="tile">
            <h3 class="tile-title">socks5代理模式</h3>
            <p>
                <b>适用范围：</b> 在外网环境下如同使用vpn一样访问内网设备或者资源
            </p>
            <p>
                <b>假设场景：</b> 想将公网服务器{{.ip}}的8003端口作为socks5代理，达到访问内网任意设备或者资源的效果
            </p>
            <p><b>使用步骤：</b></p>
            <ul>
                <li>在客户端管理中创建一个客户端，记录下验证密钥</li>
                <li>内网客户端运行<code>
                    <pre>./npc -server={{.ip}}:{{.p}} -vkey=客户端的密钥</pre>
                </code></pre>
                </li>
                <li>在该客户端隧道管理中添加一条socks5代理，填写监听的端口（8003），验证用户名和密码自行选择（建议先不填，部分客户端不支持，proxifer支持），选择压缩方式，保存。</li>
                <li>在外网环境的本机配置socks5代理，ip为公网服务器ip（{{.ip}}），端口为填写的监听端口(8003)，即可畅享内网了</li>
            </ul>
            <p>注：上文中提到公网ip（{{.ip}}）为系统自动识别，如果是在测试环境中请自行对应，默认内网客户端已经启动</p>
        </div>
    </div>
    <div class="col-md-6">
        <div class="tile">
            <h3 class="tile-title">http代理模式</h3>
            <p>
                <b>适用范围：</b> 在外网环境下访问内网站点
            </p>
            <p>
                <b>假设场景：</b> 想将公网服务器{{.ip}}的8004端口作为http代理，访问内网网站
            </p>
            <p><b>使用步骤：</b></p>
            <ul>
                <li>在客户端管理中创建一个客户端，记录下验证密钥</li>
                <li>内网客户端运行<code>
                    <pre>./npc -server={{.ip}}:{{.p}} -vkey=客户端的密钥</pre>
                </code></pre>
                </li>
                <li>在该客户端隧道管理中添加一条http代理，填写监听的端口（8004），选择压缩方式，保存。</li>
                <li>在外网环境的本机配置http代理，ip为公网服务器ip（{{.ip}}），端口为填写的监听端口(8004)，即可访问了</li>
            </ul>
            <p>注：上文中提到公网ip（{{.ip}}）为系统自动识别，如果是在测试环境中请自行对应，默认内网客户端已经启动</p>
        </div>
    </div>
    <div class="col-md-12">
        <div class="tile">
            <p><b>单个客户端可以添加多条隧道或者域名解析</b></p>
        </div>
    </div>
</div>
