引言
说起内网穿透,大家首先想到的肯定是frp了,但是我当年也是个小白的时候,硬是没搞懂它是怎么个玩法。但是当我找到nps这个项目,看了几眼教程动手操作了一下,就轻轻松松搭建成功。而且最爽的一点就是,这个项目它安装好之后自己会写自启动和进程守护配置,根本不需要我们管。
注意:本项目客户端(npc)和服务端(nps)都支持几乎所有的系统,为了节省时间,本教程客户端和服务端皆以ubuntu 18.04 amd64系统部署作为参考。
要求:有一台带有公网ip的云服务器,什么系统的都可以,用作服务端
本项目开源地址:https://github.com/ehang-io/nps
本项目官方文档:https://ehang-io.github.io/nps
本项目web管理界面截图:
教程
服务端部署:
注意:搭建之前建议在服务器防火墙以及云服务厂商的安全组放通1-65535所有端口!
- 下载服务端并解压
sudo apt install tar wget sudo mkdir /opt/nps cd /opt/nps sudo wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz sudo tar -zxvf linux* sudo chmod 777 ./*
- 修改配置文件,使用sftp或者服务器管理面板打开 /opt/nps/conf/nps.conf 进行编辑
- 主要是修改以下几个变量
把这两个删掉:因为考虑到有些小伙伴没备案、有些小伙伴80和443端口已经在使用了,以及避免一些部署过程中不必要的错误,虽然nps带有http和https代理功能,但是本教程旨在部署成功以实现tcp代理和udp代理(将http代理删掉)。
bridge_port 修改为你想要的端口,该端口为连接端口,不是web界面访问的端口号!log_level 改为0。(注意:里面有一个 public_vkey 本教程用不到,但是建议修改为复杂的值)
web_username web_password web_port 分别对应 web界面管理员用户名 web界面管理员密码 web管理界面访问端口,修改为自己想要的即可。
- 修改之后保存文件,然后执行以下代码,服务端就算是安装完成啦。
sudo /opt/nps/nps install sudo nps start
打开http://你的服务端ip:你的服务端web端口(上面修改的)就可以看到我们的管理面板了,输入用户名和密码登录即可。
- 创建客户端
什么都不用改,直接新增即可。然后点击这个+号!
- 然后把这个客户端命令复制下来,并在 ./npc 和 -server 中间加一个 install,保存起来,我们等下要用
我们保存的命令是长这个样子的
sudo ./npc install -server=49.0.252.232:8024 -vkey=nihzee4l1wew0898 -type=tcp
客户端部署:
- 运行以下命令
sudo apt install tar wget sudo mkdir /opt/npc cd /opt/npc sudo wget https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz sudo tar -zxvf linux*
- 运行上面我们保存的那个命令
- 运行以下命令启动
sudo npc start
- 查看服务端管理面板出现 在线 亮了则代表连接成功了。
TCP穿透使用示例:
- 找到TCP隧道并点击新增
- 填写客户端ID、服务端端口、客户端IP:端口
如以上配置就是将客户端ID 2(第一个创建的客户端默认为2)、本地的5700端口穿透到服务器的5701端口,假如你在本地5700搭建了青龙的话,就可以用服务端ip:5701访问到本地的青龙面板。
- 点击新增之后客户端无需任何配置,如果出现端口冲突会有提示。
结语
nps是一个功能很多的内网穿透代理服务器,还有很多功能本教程没有介绍,比如说域名解析代理、http代理、管理面板多用户配置、客户端使用配置文件连接等等,可以自己看看官方文档琢磨琢磨。
安装成功后,如果需要修改服务端的配置文件,需要去/etc/nps/conf/nps.conf修改哦。
如果客户端是群晖的话,项目作者还准备了群晖套件
最后,祝各位都没有不通的网,哈哈哈。另外,如果对这个教程有什么问题的,可以直接联系我的QQ:1115211238,或者Telegram:https://t.me/iskycc 。也可以评论区留言以及给我发私信,我看到后会及时回复你的。
大佬666
大佬666
谢谢分享,学习了
谢谢分享,学习了
这真是个好文章,谢谢
systemctl enable nps systemctl daemon-reload systemctl restart nps 守护不了,需要开另外一个链接敲这些命令
谢谢你的分享
一个ip地址,多个容器,内网穿透怎么做到多?我新增两个,要么1在线,要么2离线;要不就是1离线,2在线,怎么做到同时在线?
牛呀大佬
辛苦了,学习一下
大佬牛逼!!!
继续加油哦,争取发表更多优秀帖子
辛苦了,学习一下
先看看,不明白的地方再问
大佬,求救。。。Ubuntu 20.14 部署nps 报错了,怎么解决啊???下载,解压了,改了con.f 并保存了。 安装的时候提示错误 web/static/webfonts/fa-solid-900.woff web/static/webfonts/fa-solid-900.eot web/static/webfonts/fa-solid-900.woff2 web/static/webfonts/fa-solid-900.svg nps root@23-8-10-1230:/opt/nps# ls conf linux_amd64_server.tar.gz nps web root@23-8-10-1230:/opt/nps# sudo /opt/nps/nps install /opt/nps/nps: /opt/nps/nps: cannot execute binary file 这个怎么解决啊??