#nps
#npc
#frp
#反向代理
为什么选择nps而不是frp:
- frp的语法一直在变动,小白配置很容易出错
- nps服务端提供了网页的管理配置界面,更加容易上手。而frps的网页只能查看,无法配置
使用 nps 和 npc 进行反向代理部署教程
nps 是一款轻量级的反向代理工具,支持内网穿透,结合客户端 npc 使用可以方便地将内网服务暴露到公网。
一、前置要求
1、一台公网服务器(运行 nps 服务端)
系统:Linux(建议 Ubuntu、Debian 或 CentOS)。
具有公网 IP。
2、内网机器(运行 npc 客户端)
系统:Windows、Linux 或其他常见操作系统。
部署了需要被外网访问的服务。
二、下载与安装
1、下载 nps 服务端
官方下载地址:nps Releases
选择适合公网服务器的版本(例如 Linux x64),下载后解压。
直接在github搜nps下载对应版本即可
wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
tar -zxvf linux_amd64_server.tar.gz
cd nps
三、配置 nps 服务端
1、 生成默认配置文件 进入解压后的 nps 文件夹,运行以下命令生成配置文件:
./nps install
配置文件路径默认位于 /etc/nps/conf/nps.conf。
2、 修改配置文件 打开配置文件进行编辑:
nano /etc/nps/conf/nps.conf
以下为关键配置项说明:
# 服务运行的端口
http_proxy_port=80 # HTTP 代理端口
https_proxy_port=443 # HTTPS 代理端口
bridge_port=8024 # 客户端与服务端通信的端口
# 服务端登录的用户名和密码(管理面板)
web_username=admin
web_password=yourpassword
# 管理面板的访问地址
web_port=8080 # 默认 8080
保存并关闭文件。
3、 启动 nps 服务端 运行以下命令启动服务:
sudo systemctl start nps
验证服务是否正常运行:
curl http://<你的公网服务器IP>:8080
使用 web_username 和 web_password 登录管理面板。
四、配置 npc 客户端
1、获取客户端配置文件 登录 nps 服务端的管理面板:
地址:http://<你的公网服务器IP>:8080
登录后,进入 客户端管理,添加一个新的客户端,记录生成的密钥。
我使用的绿联dxp4800,直接ssh连接设置即可。
2、修改 npc 配置文件 在内网机器的 npc 文件夹中,编辑 npc.conf
文件:
nano npc.conf
以下为配置文件示例:
# 服务端的公网 IP 和通信端口
server=你的公网服务器IP:8024
# 客户端密钥
vkey=刚刚生成的密钥
# 本地需要暴露的服务
[test]
type=tcp
local_port=80 # 本地服务端口
remote_port=8081 # 公网访问的端口
3、启动 npc 客户端
运行以下命令启动 npc:
./npc-config=npc.conf
五、测试访问
在公网通过以下地址访问内网服务,验证是否成功: http://<你的公网服务器IP>:8081
六、设置开机自启
【nps 服务端】 :运行以下命令设置开机自启:
sudo systemctl enable nps
【npc 客户端】: 为 npc 创建一个 systemd 服务文件:
sudo nano/etc/systemd/system/npc.service
以下为nas上npc的配置服务文件内容:
[common]
server_addr=xxxxx
conn_type=tcp
vkey=xxxxx
auto_reconnection=true
max_conn=1000
flow_limit=1000
rate_limit=1000
web_username=xxxxx
web_password=xxxxx
crypt=true
compress=true
#pprof_addr=0.0.0.0:9999
disconnect_timeout=60[health_check_test]
health_check_timeout=1
health_check_max_failed=3
health_check_interval=1
health_check_type=tcp
health_check_target=127.0.0.1:8083,127.0.0.1:8082[qb]
target_addr=127.0.0.1:38091
server_port=38091[iyuu]
type=tcp
target_addr=127.0.0.1:30002
server_port=40402
保存并启动服务:
sudo systemctl enable npc
sudo systemctl start npc
七、常见问题
端口被占用
确保服务端配置的 http_proxy_port、https_proxy_port 和 bridge_port 未被其他服务占用。 检查客户端配置的 remote_port 是否冲突。
防火墙问题
确保公网服务器开放了 nps 服务端所需的端口(如 8024、80、443)。 在内网机器上,确保本地服务端口(如 80)可以被访问。
客户端无法连接
确保服务端与客户端的密钥一致。 检查服务端与客户端的网络连通性。 至此,nps 和 npc 的反向代理部署已完成。如果有其他问题,可以参考官方文档或寻求社区支持。
原创 Rare 图比fire