NPS 是一款轻量级、高性能、功能强大的内网穿透代理服务器。支持 tcp、udp、socks5、http 等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网 dns 解析、内网 socks5 代理等等,并带有功能强大的web管理端。
首先我们需要了解一下什么是内网穿透?
举个简单例子,我们有两个不同的 network-A
和 network-B
,两个网络之间是无法直接通信的。在 network-A
中我们部署了 3
个服务,如果 network-B
中的客户机想要访问 network-A
的服务该怎么办呢?
很显然我们需要一个中间人,也就是一台公网服务器, network-B
的客户机请求先发送到服务器,再由服务器转发到 network-A
的内网服务,从而实现跨网服务访问,这个过程就可以简单理解为内网穿透。
看一个简单的图加深一下理解。
接下来就具体介绍一下如何实现。
准备材料 :内网服务(客户端)、公网服务器(服务端)。
这里我准备了一台Linux云服务器和本地Windows电脑用于演示。
一、准备工作
NPS
服务会用到 8024
和 8080
两个端口,我们的服务器需要提前在防火墙放行端口,命令如下:
# 永久开放 8024 端口
firewall-cmd --add-port=8024/tcp --zone=public --permanent
# 永久开放 8080 端口
firewall-cmd --add-port=8080/tcp --zone=public --permanent
# 重载文件使生效
firewall-cmd --reload
二、服务端
1. NPS安装
打开 NPS
官网选择相应版本进行下载,记得下载的是 Server
版本,NPS官网。
将下载的文件上传到你的服务器并解压,这里我选择放在 /usr/local/nps
,根据你的喜好自行更换。
cd /usr/local
mkdir nps
tar -xzvf linux_amd64_server.tar.gz # 解压文件
2. 配置修改
在启动服务之前我们需要修改一些默认配置,命令如下:
vim conf/nps.conf
如果你的服务器 80
端口和 443
端口已经部署其它服务则需要替换成其它端口,修改第二个红框中的登录用户信息。
3. 服务启动
在文件解压目录下执行如下命令:
./nps install
nps start # 启动服务
nps stop # 关闭服务
安装服务成功后会在/etc/nps
目录下生成conf web
两个文件夹。
服务启动日志路径:/var/log/nps.log
,如果出现异常可查看日志信息,启动服务之后就可以通过你的服务器 IP
地址加 8080
端口进行访问了。
4. 创建连接
(1) 服务新增
点击右侧客户端并点击新增
(2) 信息填写
橙色框内信息无效填写会自动生成,压缩和加密选是。
(3) 隧道添加
点击隧道并新增服务
(4) 端口信息
填写服务相关信息,服务端端口为之后你公网要访问的端口,目标填写你内网服务的 ID
加端口。
三、客户端
1. 服务下载
这里演示的客户端是 Window
服务,进入官网下载对应Client
版本.
2. 配置修改
解压下载的文件,修改conf/npc.conf
文件。把原文件内容全部删除,复制下面内容,记得 server_addr
替换成你自己的服务端IP
,vkey
为创建客户端时自动生成。
[common]
server_addr=[your ip]:8024
conn_type=tcp
vkey=jwep5wv3zcn8etn6
auto_reconnection=true
max_conn=1000
flow_limit=1000
rate_limit=1000
basic_username=11
basic_password=3
web_username=user
web_password=123
crypt=true
compress=true
3. 启动服务
双击npc.exe
文件即可,显示下图说明连接成功,此时就可以通过你的公网 IP
访问本地服务了。
4. 后台启动
上述步骤启动之后npc.exe
命令行窗口必须一直开着,如果我们将其注册成服务就可以后台运行了。
具体教程参考之前一篇文章:将Bat注册为服务。