贰叁肆 - 穿透
type: channel
link: https://www.ersansi.top/index.php/tag/%E7%A9%BF%E9%80%8F/
items: NPS内网穿透
items: frp+nginx实现内网穿透以及不带端口访问

NPS内网穿透
type: item
date: 2022-07-29T19:26:00+08:00
description: 简介 现在我需要搭建一个自己的文件存储网站或者是博客，但是我没钱，买不起大容量的服务器，所以我需要在本地服务器上把服务搭建出来，然后在穿透出去，从而实现我在外网访问自己的服务器。 这个的作用和frp一样，这个有个优点就是管理是在服务端管理，80端口和443端口配置起来很简单，没有frp复杂。 准备工作 本地服务器一台 带公网IP的服务器一台 安装NPS服务端 NPS是一个开源的穿透服务，和FRP一样，都是免费的，但是我这里使用NPS是因为NPS对小白比较友好，客户端只要连接上服务端就可以，剩下的配置直接在可 视化界面上配置了，不需要像FRP一样每台客户端都需要手动去配置穿透服务器。 首先使用SSH工具连接到有公网IP的服务器，我这里使用的是FinalShell这个工具。 然后到Githun上找到对应自己服务器的服务端，NPS项目在Githun上的地址：https://github.com/ehang-io/nps 我这里使用的是linux_amd64_servicer.tar.gz这个，找到了之后右键，复制连接地址 然后回到服务器上输入wget粘贴刚刚复制的连接进行下载 下载完成后文件是在公网服务器上的ROOT目录下的，输入tar -zxvf文件名进行解压 解压完成后，我们可以看到root目录下面多出了三个文件，分别是conf、nps、web，这三个文件都是NPS的文件 输入下面命令进行安装 ./nps install 安装完成后输入下面命令服务端的启动 nps start 启动好了之后我们就可以在浏览器输入服务器地址加8080端口进行访问管理了 登录、配置服务 默认的登录名为admin,默认的密码为123，登录进去之后就可以看到NPS的管理界面了 首先我们先新增一个客户端，点击【客户端】，然后点击【新增】 【备注】随便填写，【允许客户端通过配置文件连接】我们可以选择【否】，这样可以方便管理，还有效避免了端口冲突，【唯一验证密钥】我们可以手动填写，也可以留空，留空则自动生成，填写完成后点击【新增】按钮 添加成功后我们就可以在【客户端】里面看到了，但是现在是离线状态，还没有连接 现在我需要添加一条TCP隧道，用于远程SSH连接我的内网服务器，首先点击【TCP隧道】，然后点击【新增】 客户端ID】这个需要和【客户端】里面的对应上，【备注】可以随便填，【服务端端口】需要填的是穿透出来后我们是通过那个端口访问，我这里填的是23端 口，意思就是我待会需要用SSH连接我内网服务器的时候我是通过公网服务器的23端口转过去的，目标IP可以直接填127.0.0.1:22，SSH默认的端口是22端口，本 机地址用127.0.0.1代替，填写完成后点击【新增】完成。 新增完成后就可以在TCP隧道里面看到刚刚新增的记录了 连接服务 服务器那边配置好之后就可以到客户端这边连接了 首先先到Github上下载对应自己电脑的客户端，我这里下载的是windows_amd64_claent.atr.gz这个 下载完成后解压。 进入解压出来的文件夹，继续解压，继续进入解压出来的文件夹，里面有一个conf文件夹和一个npc程序 我们进入conf文件夹，里面有两个conf文件，我们需要改的是npc.conf这个文件 用记事本打开文件，然后删除[health_check_test1]以下的配置 然后修改地址和连接密钥，然后保存 然后双击刚刚看到的NPC程序运行 这时候我们就可以在管理面板里面看到客户端是在线的了 刚刚我们穿透的是SSH服务，服务端端口填的是23，那么现在我就可以用公网IP加23端口访问我内网服务器的SSH了，但是因为我这里客户端是WINDOWS系统， 没有SSH服务，所以就不演示了，linux的客户端使用方法和这个是一样的，只是在配置文件配置好了之后使用./npc来启动客户端

frp+nginx实现内网穿透以及不带端口访问
type: item
date: 2022-07-27T16:21:00+08:00
description: 简介 早先时候，各大运营商还可以申请到公网ip，那时候是不需要内网穿透的，现在已经很难申请到公网ip了，所以只能曲线救国，使用内 网穿透来实现从外面访问家里的服务了。 我使用的是frp，一个开源的小工具，使用frp的话只有80和443端口是不用在浏览器里面输入端口直接访问的，如果有服务把这两个端 口占用，其他服务就只能使用ip+端口的方式访问了，这时候就需要利用到了nginx来进行端口复用了。 二、准备工作 一台用公网ip的服务器 一台内网机 三、安装frps frps的安装我这里使用的是一键安装脚本。 使用ssh工具连接到公网服务器 复制下面命令到公网服务器上按回车开始执行 wget https://raw.githubusercontent.com/MvsCode/frps-onekey/master/install-frps.sh -O ./install-frps.sh chmod 700 ./install-frps.sh ./install-frps.sh install 选择脚本的源，这里有两个源，我选的是第二个 选择frpc和frps连接的端口，可以使用默认端口也可以自定义端口，我这里自定义为20050端口 选择http端口，默认为80，可以自定义，这里我们需要自定义，因为待会需要安装nginx，要用nginx来进行端口复用，http默认的是80端口，所以80端口不能被占用，要预留出来。我这个80端口已经被占用，默认会报错。我用的是30000端口。 选择https端口，默认为443，和80端口一样，预留出来，所以需要自定义，我选的是30001端口。 选择web面板的端口，我选20051端口。 输入登录web面板的用户名，默认为admin，我这里使用默认的，直接回车即可 输入登录web面板的密码，我这里是演示，直接输入123456 输入frpc连接frps的密码，我这里使用默认的，直接回车即可 输入服务器ip，直接回车 输入frps的最大连接数，默认50个，一个人用50个也是够了，最大两百个，我这里默认了 选择日志级别，默认即可 选择日志最大天数，默认3天，最大30天，我这里默认 选择日志文件，直接默认 下面的选项就一直默认回车即可，直到出现这个界面就配置完成了，直接回车就开始部署了 出现这个界面就部署完成了，frps就好了 可以尝试登录一下web控制面板看看能不能登录上去，在浏览器地址栏中输入服务器ip+20051端口,看到这个界面就是安装并运行成功了。 这个脚本是在github上找的，想要看详细的信息可以访问：https://github.com/MvsCode/frps-onekey查看。 四、安装和配置frpc 在github中搜索frp，第一个就是。 点击进入，点击tags 最顶部的是最新版，点击进入 然后找到对应自己内网机系统版本的frp下载，我这里使用的内网机是x86架构64位的centos7，依然是远程，所以我是复制下载链接，待会用wget命令下载。 使用ssh工具连接到内网机 使用wget命令下载刚刚复制下来的frp工具的地址 wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz 下载完成后可以使用ls命令查看下载的包，然后使用tar命令解压 tar -zxvf frp_0.44.0_linux_amd64.tar.gz 解压完成后进入解压出来的文件夹 cd frp_0.44.0_linux_amd64 使用ls命令查看里面的文件，使用vi frpc.ini编辑配置文件 按i开始编辑，配置文件第二行为服务器地址，这里把127.0.0.1替换成你外网服务器的地址，第三行为frpc连接frps的端口，刚刚我们设置的是20050，在第四行加一行token = f7DXNLlbwjni4jvV，等于号后面的密钥是不同的，可以在刚刚的安装完成的界面查看的. 下面是穿透的服务，[]里面的穿透的服务名称，这里就讲究使用ssh服务来做演示，第七行type = tcp为服务的类型，一般分为tcp和udp，第八行local_ip = 127.0.0.1是内网机的地址，直接使用127.0.0.1就可以，当然也可以改为内网机的ip地址，第九行local_port = 22是内网机的服务端口，ssh服务是22端口，这个地方就填22端口，如果你的是web服务，是80端口，这个地方就填80，第十行remote_port = 30003是穿透出去的端口。待会访问的时候就用外网服务器的ip+这个30003端口进行访问。配置好配置文件后按esc，然后输入:wq回车进行保存。 保存后输入./frpc开始…